diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-19 19:33:55 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-19 19:33:55 +0000 |
commit | aa0c865d8f2824f60013ace1c60b3e5fa4c2210a (patch) | |
tree | d8124920b63ea2466fb9642a19471bf0c14fe06c /webkit/plugins | |
parent | afa3c18d08b411bda2975a5ae6f33a4ed939875f (diff) | |
download | chromium_src-aa0c865d8f2824f60013ace1c60b3e5fa4c2210a.zip chromium_src-aa0c865d8f2824f60013ace1c60b3e5fa4c2210a.tar.gz chromium_src-aa0c865d8f2824f60013ace1c60b3e5fa4c2210a.tar.bz2 |
Allow creation of input events. Revert changes to testing interface for
creating keyboard events.
TEST=manual
Review URL: http://codereview.chromium.org/7443005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93076 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/plugins')
-rw-r--r-- | webkit/plugins/ppapi/plugin_module.cc | 29 | ||||
-rw-r--r-- | webkit/plugins/ppapi/resource_creation_impl.cc | 77 | ||||
-rw-r--r-- | webkit/plugins/ppapi/resource_creation_impl.h | 22 |
3 files changed, 100 insertions, 28 deletions
diff --git a/webkit/plugins/ppapi/plugin_module.cc b/webkit/plugins/ppapi/plugin_module.cc index cb9d192..dd4d663 100644 --- a/webkit/plugins/ppapi/plugin_module.cc +++ b/webkit/plugins/ppapi/plugin_module.cc @@ -73,7 +73,6 @@ #include "ppapi/c/trusted/ppb_file_io_trusted.h" #include "ppapi/c/trusted/ppb_image_data_trusted.h" #include "ppapi/c/trusted/ppb_url_loader_trusted.h" -#include "ppapi/shared_impl/input_event_impl.h" #include "ppapi/shared_impl/time_conversion.h" #include "ppapi/thunk/enter.h" #include "ppapi/thunk/thunk.h" @@ -108,7 +107,6 @@ using ppapi::thunk::EnterResource; using ppapi::thunk::PPB_Graphics2D_API; -using ppapi::InputEventData; using ppapi::TimeTicksToPPTimeTicks; using ppapi::TimeToPPTime; @@ -211,36 +209,11 @@ uint32_t GetLiveObjectsForInstance(PP_Instance instance_id) { return ResourceTracker::Get()->GetLiveObjectsForInstance(instance_id); } -PP_Resource CreateKeyboardInputEvent(PP_Instance pp_instance, - PP_InputEvent_Type type, - PP_TimeTicks ticks, - uint32_t modifiers, - uint32_t key_code, - struct PP_Var char_text) { - PluginInstance* instance = ResourceTracker::Get()->GetInstance(pp_instance); - if (!instance) - return 0; - - InputEventData data; - data.event_type = type; - data.event_time_stamp = ticks; - data.event_modifiers = modifiers; - data.key_code = key_code; - - if (char_text.type == PP_VARTYPE_STRING) { - scoped_refptr<StringVar> char_text_string(StringVar::FromPPVar(char_text)); - if (char_text_string.get()) - data.character_text = char_text_string->value(); - } - return PPB_InputEvent_Impl::Create(instance, data); -} - const PPB_Testing_Dev testing_interface = { &ReadImageData, &RunMessageLoop, &QuitMessageLoop, - &GetLiveObjectsForInstance, - &CreateKeyboardInputEvent + &GetLiveObjectsForInstance }; // GetInterface ---------------------------------------------------------------- diff --git a/webkit/plugins/ppapi/resource_creation_impl.cc b/webkit/plugins/ppapi/resource_creation_impl.cc index e79195d..cadb4db 100644 --- a/webkit/plugins/ppapi/resource_creation_impl.cc +++ b/webkit/plugins/ppapi/resource_creation_impl.cc @@ -5,6 +5,7 @@ #include "webkit/plugins/ppapi/resource_creation_impl.h" #include "ppapi/c/pp_size.h" +#include "ppapi/shared_impl/input_event_impl.h" #include "webkit/plugins/ppapi/common.h" #include "webkit/plugins/ppapi/ppb_audio_impl.h" #include "webkit/plugins/ppapi/ppb_broker_impl.h" @@ -21,6 +22,7 @@ #include "webkit/plugins/ppapi/ppb_graphics_2d_impl.h" #include "webkit/plugins/ppapi/ppb_graphics_3d_impl.h" #include "webkit/plugins/ppapi/ppb_image_data_impl.h" +#include "webkit/plugins/ppapi/ppb_input_event_impl.h" #include "webkit/plugins/ppapi/ppb_scrollbar_impl.h" #include "webkit/plugins/ppapi/ppb_surface_3d_impl.h" #include "webkit/plugins/ppapi/ppb_transport_impl.h" @@ -28,6 +30,9 @@ #include "webkit/plugins/ppapi/ppb_url_request_info_impl.h" #include "webkit/plugins/ppapi/ppb_video_decoder_impl.h" #include "webkit/plugins/ppapi/ppb_video_layer_impl.h" +#include "webkit/plugins/ppapi/var.h" + +using ppapi::InputEventData; namespace webkit { namespace ppapi { @@ -198,6 +203,60 @@ PP_Resource ResourceCreationImpl::CreateImageData(PP_Instance pp_instance, return PPB_ImageData_Impl::Create(instance_, format, size, init_to_zero); } +PP_Resource ResourceCreationImpl::CreateKeyboardInputEvent( + PP_Instance instance, + PP_InputEvent_Type type, + PP_TimeTicks time_stamp, + uint32_t modifiers, + uint32_t key_code, + struct PP_Var character_text) { + if (type != PP_INPUTEVENT_TYPE_RAWKEYDOWN && + type != PP_INPUTEVENT_TYPE_KEYDOWN && + type != PP_INPUTEVENT_TYPE_KEYUP && + type != PP_INPUTEVENT_TYPE_CHAR) + return 0; + + InputEventData data; + data.event_type = type; + data.event_time_stamp = time_stamp; + data.event_modifiers = modifiers; + data.key_code = key_code; + if (character_text.type == PP_VARTYPE_STRING) { + scoped_refptr<StringVar> string_var(StringVar::FromPPVar(character_text)); + if (!string_var.get()) + return 0; + data.character_text = string_var->value(); + } + + return PPB_InputEvent_Impl::Create(instance_, data); +} + +PP_Resource ResourceCreationImpl::CreateMouseInputEvent( + PP_Instance instance, + PP_InputEvent_Type type, + PP_TimeTicks time_stamp, + uint32_t modifiers, + PP_InputEvent_MouseButton mouse_button, + PP_Point mouse_position, + int32_t click_count) { + if (type != PP_INPUTEVENT_TYPE_MOUSEDOWN && + type != PP_INPUTEVENT_TYPE_MOUSEUP && + type != PP_INPUTEVENT_TYPE_MOUSEMOVE && + type != PP_INPUTEVENT_TYPE_MOUSEENTER && + type != PP_INPUTEVENT_TYPE_MOUSELEAVE) + return 0; + + InputEventData data; + data.event_type = type; + data.event_time_stamp = time_stamp; + data.event_modifiers = modifiers; + data.mouse_button = mouse_button; + data.mouse_position = mouse_position; + data.mouse_click_count = click_count; + + return PPB_InputEvent_Impl::Create(instance_, data); +} + PP_Resource ResourceCreationImpl::CreateScrollbar(PP_Instance instance, PP_Bool vertical) { return ReturnResource(new PPB_Scrollbar_Impl(instance_, PP_ToBool(vertical))); @@ -233,5 +292,23 @@ PP_Resource ResourceCreationImpl::CreateVideoLayer(PP_Instance instance, return PPB_VideoLayer_Impl::Create(instance_, mode); } +PP_Resource ResourceCreationImpl::CreateWheelInputEvent( + PP_Instance instance, + PP_TimeTicks time_stamp, + uint32_t modifiers, + PP_FloatPoint wheel_delta, + PP_FloatPoint wheel_ticks, + PP_Bool scroll_by_page) { + InputEventData data; + data.event_type = PP_INPUTEVENT_TYPE_MOUSEWHEEL; + data.event_time_stamp = time_stamp; + data.event_modifiers = modifiers; + data.wheel_delta = wheel_delta; + data.wheel_ticks = wheel_ticks; + data.wheel_scroll_by_page = PP_ToBool(scroll_by_page); + + return PPB_InputEvent_Impl::Create(instance_, data); +} + } // namespace ppapi } // namespace webkit diff --git a/webkit/plugins/ppapi/resource_creation_impl.h b/webkit/plugins/ppapi/resource_creation_impl.h index 68a88a1..b49146d 100644 --- a/webkit/plugins/ppapi/resource_creation_impl.h +++ b/webkit/plugins/ppapi/resource_creation_impl.h @@ -75,6 +75,21 @@ class ResourceCreationImpl : public ::ppapi::FunctionGroupBase, PP_ImageDataFormat format, const PP_Size& size, PP_Bool init_to_zero) OVERRIDE; + virtual PP_Resource CreateKeyboardInputEvent( + PP_Instance instance, + PP_InputEvent_Type type, + PP_TimeTicks time_stamp, + uint32_t modifiers, + uint32_t key_code, + struct PP_Var character_text) OVERRIDE; + virtual PP_Resource CreateMouseInputEvent( + PP_Instance instance, + PP_InputEvent_Type type, + PP_TimeTicks time_stamp, + uint32_t modifiers, + PP_InputEvent_MouseButton mouse_button, + PP_Point mouse_position, + int32_t click_count) OVERRIDE; virtual PP_Resource CreateScrollbar(PP_Instance instance, PP_Bool vertical) OVERRIDE; virtual PP_Resource CreateSurface3D(PP_Instance instance, @@ -88,6 +103,13 @@ class ResourceCreationImpl : public ::ppapi::FunctionGroupBase, virtual PP_Resource CreateVideoDecoder(PP_Instance instance) OVERRIDE; virtual PP_Resource CreateVideoLayer(PP_Instance instance, PP_VideoLayerMode_Dev mode) OVERRIDE; + virtual PP_Resource CreateWheelInputEvent( + PP_Instance instance, + PP_TimeTicks time_stamp, + uint32_t modifiers, + PP_FloatPoint wheel_delta, + PP_FloatPoint wheel_ticks, + PP_Bool scroll_by_page) OVERRIDE; private: PluginInstance* instance_; |