summaryrefslogtreecommitdiffstats
path: root/webkit/plugins
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-19 19:33:55 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-19 19:33:55 +0000
commitaa0c865d8f2824f60013ace1c60b3e5fa4c2210a (patch)
treed8124920b63ea2466fb9642a19471bf0c14fe06c /webkit/plugins
parentafa3c18d08b411bda2975a5ae6f33a4ed939875f (diff)
downloadchromium_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.cc29
-rw-r--r--webkit/plugins/ppapi/resource_creation_impl.cc77
-rw-r--r--webkit/plugins/ppapi/resource_creation_impl.h22
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_;