summaryrefslogtreecommitdiffstats
path: root/webkit/glue/plugins/pepper_plugin_instance.cc
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/glue/plugins/pepper_plugin_instance.cc')
-rw-r--r--webkit/glue/plugins/pepper_plugin_instance.cc110
1 files changed, 10 insertions, 100 deletions
diff --git a/webkit/glue/plugins/pepper_plugin_instance.cc b/webkit/glue/plugins/pepper_plugin_instance.cc
index 5f054ee..65863f1 100644
--- a/webkit/glue/plugins/pepper_plugin_instance.cc
+++ b/webkit/glue/plugins/pepper_plugin_instance.cc
@@ -21,11 +21,14 @@
#include "third_party/WebKit/WebKit/chromium/public/WebPluginContainer.h"
#include "third_party/WebKit/WebKit/chromium/public/WebRect.h"
#include "webkit/glue/plugins/pepper_device_context_2d.h"
+#include "webkit/glue/plugins/pepper_event_conversion.h"
#include "webkit/glue/plugins/pepper_plugin_delegate.h"
#include "webkit/glue/plugins/pepper_plugin_module.h"
#include "webkit/glue/plugins/pepper_url_loader.h"
#include "webkit/glue/plugins/pepper_var.h"
+using WebKit::WebCanvas;
+using WebKit::WebCursorInfo;
using WebKit::WebFrame;
using WebKit::WebInputEvent;
using WebKit::WebPluginContainer;
@@ -39,76 +42,6 @@ void RectToPPRect(const gfx::Rect& input, PP_Rect* output) {
input.width(), input.height());
}
-PP_Event_Type ConvertEventTypes(WebInputEvent::Type wetype) {
- switch (wetype) {
- case WebInputEvent::MouseDown:
- return PP_Event_Type_MouseDown;
- case WebInputEvent::MouseUp:
- return PP_Event_Type_MouseUp;
- case WebInputEvent::MouseMove:
- return PP_Event_Type_MouseMove;
- case WebInputEvent::MouseEnter:
- return PP_Event_Type_MouseEnter;
- case WebInputEvent::MouseLeave:
- return PP_Event_Type_MouseLeave;
- case WebInputEvent::MouseWheel:
- return PP_Event_Type_MouseWheel;
- case WebInputEvent::RawKeyDown:
- return PP_Event_Type_RawKeyDown;
- case WebInputEvent::KeyDown:
- return PP_Event_Type_KeyDown;
- case WebInputEvent::KeyUp:
- return PP_Event_Type_KeyUp;
- case WebInputEvent::Char:
- return PP_Event_Type_Char;
- case WebInputEvent::Undefined:
- default:
- return PP_Event_Type_Undefined;
- }
-}
-
-void BuildKeyEvent(const WebInputEvent* event, PP_Event* pp_event) {
- const WebKit::WebKeyboardEvent* key_event =
- reinterpret_cast<const WebKit::WebKeyboardEvent*>(event);
- pp_event->u.key.modifier = key_event->modifiers;
- pp_event->u.key.normalizedKeyCode = key_event->windowsKeyCode;
-}
-
-void BuildCharEvent(const WebInputEvent* event, PP_Event* pp_event) {
- const WebKit::WebKeyboardEvent* key_event =
- reinterpret_cast<const WebKit::WebKeyboardEvent*>(event);
- pp_event->u.character.modifier = key_event->modifiers;
- // For consistency, check that the sizes of the texts agree.
- DCHECK(sizeof(pp_event->u.character.text) == sizeof(key_event->text));
- DCHECK(sizeof(pp_event->u.character.unmodifiedText) ==
- sizeof(key_event->unmodifiedText));
- for (size_t i = 0; i < WebKit::WebKeyboardEvent::textLengthCap; ++i) {
- pp_event->u.character.text[i] = key_event->text[i];
- pp_event->u.character.unmodifiedText[i] = key_event->unmodifiedText[i];
- }
-}
-
-void BuildMouseEvent(const WebInputEvent* event, PP_Event* pp_event) {
- const WebKit::WebMouseEvent* mouse_event =
- reinterpret_cast<const WebKit::WebMouseEvent*>(event);
- pp_event->u.mouse.modifier = mouse_event->modifiers;
- pp_event->u.mouse.button = mouse_event->button;
- pp_event->u.mouse.x = mouse_event->x;
- pp_event->u.mouse.y = mouse_event->y;
- pp_event->u.mouse.clickCount = mouse_event->clickCount;
-}
-
-void BuildMouseWheelEvent(const WebInputEvent* event, PP_Event* pp_event) {
- const WebKit::WebMouseWheelEvent* mouse_wheel_event =
- reinterpret_cast<const WebKit::WebMouseWheelEvent*>(event);
- pp_event->u.wheel.modifier = mouse_wheel_event->modifiers;
- pp_event->u.wheel.deltaX = mouse_wheel_event->deltaX;
- pp_event->u.wheel.deltaY = mouse_wheel_event->deltaY;
- pp_event->u.wheel.wheelTicksX = mouse_wheel_event->wheelTicksX;
- pp_event->u.wheel.wheelTicksY = mouse_wheel_event->wheelTicksY;
- pp_event->u.wheel.scrollByPage = mouse_wheel_event->scrollByPage;
-}
-
PP_Var GetWindowObject(PP_Instance instance_id) {
PluginInstance* instance = PluginInstance::FromPPInstance(instance_id);
if (!instance)
@@ -178,7 +111,7 @@ PP_Instance PluginInstance::GetPPInstance() {
return reinterpret_cast<intptr_t>(this);
}
-void PluginInstance::Paint(WebKit::WebCanvas* canvas,
+void PluginInstance::Paint(WebCanvas* canvas,
const gfx::Rect& plugin_rect,
const gfx::Rect& paint_rect) {
if (device_context_2d_)
@@ -271,35 +204,12 @@ bool PluginInstance::HandleDocumentLoad(URLLoader* loader) {
}
bool PluginInstance::HandleInputEvent(const WebKit::WebInputEvent& event,
- WebKit::WebCursorInfo* cursor_info) {
- PP_Event pp_event;
-
- pp_event.type = ConvertEventTypes(event.type);
- pp_event.size = sizeof(pp_event);
- pp_event.time_stamp_seconds = event.timeStampSeconds;
- switch (pp_event.type) {
- case PP_Event_Type_Undefined:
- return false;
- case PP_Event_Type_MouseDown:
- case PP_Event_Type_MouseUp:
- case PP_Event_Type_MouseMove:
- case PP_Event_Type_MouseEnter:
- case PP_Event_Type_MouseLeave:
- BuildMouseEvent(&event, &pp_event);
- break;
- case PP_Event_Type_MouseWheel:
- BuildMouseWheelEvent(&event, &pp_event);
- break;
- case PP_Event_Type_RawKeyDown:
- case PP_Event_Type_KeyDown:
- case PP_Event_Type_KeyUp:
- BuildKeyEvent(&event, &pp_event);
- break;
- case PP_Event_Type_Char:
- BuildCharEvent(&event, &pp_event);
- break;
- }
- return instance_interface_->HandleEvent(GetPPInstance(), &pp_event);
+ WebCursorInfo* cursor_info) {
+ scoped_ptr<PP_Event> pp_event(CreatePP_Event(event));
+ if (!pp_event.get())
+ return false;
+
+ return instance_interface_->HandleEvent(GetPPInstance(), pp_event.get());
}
PP_Var PluginInstance::GetInstanceObject() {