summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorkinaba@chromium.org <kinaba@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-29 04:23:09 +0000
committerkinaba@chromium.org <kinaba@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-29 04:23:09 +0000
commit2daba2f3623744b78f1880d8ebb0a673d03f52d3 (patch)
tree5bdad577cacfe4147ffceddcb1b1d0e1b6955232 /webkit
parent47d09f6e03e6d8ee179e479095c5afd9564921e0 (diff)
downloadchromium_src-2daba2f3623744b78f1880d8ebb0a673d03f52d3.zip
chromium_src-2daba2f3623744b78f1880d8ebb0a673d03f52d3.tar.gz
chromium_src-2daba2f3623744b78f1880d8ebb0a673d03f52d3.tar.bz2
Additional update on Pepper IME API and boilerplate thunk/proxy implementation.
BUG=59425 TEST=Check that ppapi_tests compile (with GYP_DEFINES=shared_library, too). This CL is the second (out of three) part for adding IME support for PPAPI. It reflects comments from James Su to the previous CL: http://codereview.chromium.org/7882004. - Renamed ..._COMPOSTION_START to _IME_COMPOSITON_START. - Changed to assure GetSegment to return a strictly increasing sequence of segmentation points from 0 to the length. and, - Added the mostly boilerplate code for interfacing with in-process & out-of-process plugins. The actual implementation of the IME support will come as the next and the last part of this series of patches. Review URL: http://codereview.chromium.org/8059006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103234 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/glue/webkit_glue.gypi2
-rw-r--r--webkit/plugins/ppapi/event_conversion.cc6
-rw-r--r--webkit/plugins/ppapi/plugin_module.cc1
-rw-r--r--webkit/plugins/ppapi/ppb_text_input_impl.cc59
-rw-r--r--webkit/plugins/ppapi/ppb_text_input_impl.h44
-rw-r--r--webkit/plugins/ppapi/resource_tracker.cc5
6 files changed, 113 insertions, 4 deletions
diff --git a/webkit/glue/webkit_glue.gypi b/webkit/glue/webkit_glue.gypi
index a6adf2b..e6ba8fd 100644
--- a/webkit/glue/webkit_glue.gypi
+++ b/webkit/glue/webkit_glue.gypi
@@ -274,6 +274,8 @@
'../plugins/ppapi/ppb_scrollbar_impl.h',
'../plugins/ppapi/ppb_surface_3d_impl.cc',
'../plugins/ppapi/ppb_surface_3d_impl.h',
+ '../plugins/ppapi/ppb_text_input_impl.cc',
+ '../plugins/ppapi/ppb_text_input_impl.h',
'../plugins/ppapi/ppb_uma_private_impl.cc',
'../plugins/ppapi/ppb_uma_private_impl.h',
'../plugins/ppapi/ppb_url_loader_impl.cc',
diff --git a/webkit/plugins/ppapi/event_conversion.cc b/webkit/plugins/ppapi/event_conversion.cc
index 80df1f6..cec3a64 100644
--- a/webkit/plugins/ppapi/event_conversion.cc
+++ b/webkit/plugins/ppapi/event_conversion.cc
@@ -302,9 +302,9 @@ WebInputEvent* CreateWebInputEvent(const InputEventData& event) {
case PP_INPUTEVENT_TYPE_CHAR:
web_input_event.reset(BuildCharEvent(event));
break;
- case PP_INPUTEVENT_TYPE_COMPOSITION_START:
- case PP_INPUTEVENT_TYPE_COMPOSITION_UPDATE:
- case PP_INPUTEVENT_TYPE_COMPOSITION_END:
+ case PP_INPUTEVENT_TYPE_IME_COMPOSITION_START:
+ case PP_INPUTEVENT_TYPE_IME_COMPOSITION_UPDATE:
+ case PP_INPUTEVENT_TYPE_IME_COMPOSITION_END:
case PP_INPUTEVENT_TYPE_IME_TEXT:
// TODO(kinaba) implement in WebKit an event structure to handle
// composition events.
diff --git a/webkit/plugins/ppapi/plugin_module.cc b/webkit/plugins/ppapi/plugin_module.cc
index a1f0c8c..43fbd6f 100644
--- a/webkit/plugins/ppapi/plugin_module.cc
+++ b/webkit/plugins/ppapi/plugin_module.cc
@@ -32,6 +32,7 @@
#include "ppapi/c/dev/ppb_scrollbar_dev.h"
#include "ppapi/c/dev/ppb_surface_3d_dev.h"
#include "ppapi/c/dev/ppb_testing_dev.h"
+#include "ppapi/c/dev/ppb_text_input_dev.h"
#include "ppapi/c/dev/ppb_transport_dev.h"
#include "ppapi/c/dev/ppb_url_util_dev.h"
#include "ppapi/c/dev/ppb_var_deprecated.h"
diff --git a/webkit/plugins/ppapi/ppb_text_input_impl.cc b/webkit/plugins/ppapi/ppb_text_input_impl.cc
new file mode 100644
index 0000000..fc02925
--- /dev/null
+++ b/webkit/plugins/ppapi/ppb_text_input_impl.cc
@@ -0,0 +1,59 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "webkit/plugins/ppapi/ppb_text_input_impl.h"
+
+#include "base/logging.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebTextInputType.h"
+#include "webkit/plugins/ppapi/ppapi_plugin_instance.h"
+
+namespace webkit {
+namespace ppapi {
+
+PPB_TextInput_Impl::PPB_TextInput_Impl(PluginInstance* instance)
+ : instance_(instance) {
+}
+
+::ppapi::thunk::PPB_TextInput_FunctionAPI*
+PPB_TextInput_Impl::AsPPB_TextInput_FunctionAPI() {
+ return this;
+}
+
+COMPILE_ASSERT(int(WebKit::WebTextInputTypeNone) == \
+ int(PP_TEXTINPUT_TYPE_NONE), mismatching_enums);
+COMPILE_ASSERT(int(WebKit::WebTextInputTypeText) == \
+ int(PP_TEXTINPUT_TYPE_TEXT), mismatching_enums);
+COMPILE_ASSERT(int(WebKit::WebTextInputTypePassword) == \
+ int(PP_TEXTINPUT_TYPE_PASSWORD), mismatching_enums);
+COMPILE_ASSERT(int(WebKit::WebTextInputTypeSearch) == \
+ int(PP_TEXTINPUT_TYPE_SEARCH), mismatching_enums);
+COMPILE_ASSERT(int(WebKit::WebTextInputTypeEmail) == \
+ int(PP_TEXTINPUT_TYPE_EMAIL), mismatching_enums);
+COMPILE_ASSERT(int(WebKit::WebTextInputTypeNumber) == \
+ int(PP_TEXTINPUT_TYPE_NUMBER), mismatching_enums);
+COMPILE_ASSERT(int(WebKit::WebTextInputTypeTelephone) == \
+ int(PP_TEXTINPUT_TYPE_TELEPHONE), mismatching_enums);
+COMPILE_ASSERT(int(WebKit::WebTextInputTypeURL) == \
+ int(PP_TEXTINPUT_TYPE_URL), mismatching_enums);
+
+void PPB_TextInput_Impl::SetTextInputType(PP_Instance instance,
+ PP_TextInput_Type type) {
+ // TODO(kinaba) the implementation is split to another CL for reviewing.
+ NOTIMPLEMENTED();
+}
+
+void PPB_TextInput_Impl::UpdateCaretPosition(PP_Instance instance,
+ const PP_Rect& caret,
+ const PP_Rect& bounding_box) {
+ // TODO(kinaba) the implementation is split to another CL for reviewing.
+ NOTIMPLEMENTED();
+}
+
+void PPB_TextInput_Impl::CancelCompositionText(PP_Instance instance) {
+ // TODO(kinaba) the implementation is split to another CL for reviewing.
+ NOTIMPLEMENTED();
+}
+
+} // namespace ppapi
+} // namespace webkit
diff --git a/webkit/plugins/ppapi/ppb_text_input_impl.h b/webkit/plugins/ppapi/ppb_text_input_impl.h
new file mode 100644
index 0000000..b6d25e1
--- /dev/null
+++ b/webkit/plugins/ppapi/ppb_text_input_impl.h
@@ -0,0 +1,44 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef WEBKIT_PLUGINS_PPAPI_PPB_TEXT_INPUT_IMPL_H_
+#define WEBKIT_PLUGINS_PPAPI_PPB_TEXT_INPUT_IMPL_H_
+
+#include "base/basictypes.h"
+#include "base/compiler_specific.h"
+#include "ppapi/shared_impl/function_group_base.h"
+#include "ppapi/thunk/ppb_text_input_api.h"
+
+namespace webkit {
+namespace ppapi {
+
+class PluginInstance;
+
+class PPB_TextInput_Impl
+ : public ::ppapi::FunctionGroupBase,
+ public ::ppapi::thunk::PPB_TextInput_FunctionAPI {
+ public:
+ PPB_TextInput_Impl(PluginInstance* instance);
+
+ // FunctionGroupBase overrides.
+ virtual ::ppapi::thunk::PPB_TextInput_FunctionAPI*
+ AsPPB_TextInput_FunctionAPI() OVERRIDE;
+
+ // PPB_TextInput_FunctionAPI implementation.
+ virtual void SetTextInputType(PP_Instance instance,
+ PP_TextInput_Type type) OVERRIDE;
+ virtual void UpdateCaretPosition(PP_Instance instance,
+ const PP_Rect& caret,
+ const PP_Rect& bounding_box) OVERRIDE;
+ virtual void CancelCompositionText(PP_Instance instance) OVERRIDE;
+
+ private:
+ PluginInstance* instance_;
+ DISALLOW_COPY_AND_ASSIGN(PPB_TextInput_Impl);
+};
+
+} // namespace ppapi
+} // namespace webkit
+
+#endif // WEBKIT_PLUGINS_PPAPI_PPB_TEXT_INPUT_IMPL_H_
diff --git a/webkit/plugins/ppapi/resource_tracker.cc b/webkit/plugins/ppapi/resource_tracker.cc
index c69fb5f..770384b 100644
--- a/webkit/plugins/ppapi/resource_tracker.cc
+++ b/webkit/plugins/ppapi/resource_tracker.cc
@@ -21,6 +21,7 @@
#include "webkit/plugins/ppapi/ppb_char_set_impl.h"
#include "webkit/plugins/ppapi/ppb_cursor_control_impl.h"
#include "webkit/plugins/ppapi/ppb_font_impl.h"
+#include "webkit/plugins/ppapi/ppb_text_input_impl.h"
#include "webkit/plugins/ppapi/resource_creation_impl.h"
#include "webkit/plugins/ppapi/resource_helper.h"
@@ -144,6 +145,9 @@ void ResourceTracker::CleanupInstanceData(PP_Instance instance,
case ::ppapi::proxy::INTERFACE_ID_PPB_FONT:
proxy.reset(new PPB_Font_FunctionImpl(instance));
break;
+ case ::ppapi::proxy::INTERFACE_ID_PPB_TEXT_INPUT:
+ proxy.reset(new PPB_TextInput_Impl(instance));
+ break;
case ::ppapi::proxy::INTERFACE_ID_RESOURCE_CREATION:
proxy.reset(new ResourceCreationImpl(instance));
break;
@@ -323,4 +327,3 @@ void ResourceTracker::ClearSingletonOverride() {
} // namespace ppapi
} // namespace webkit
-