diff options
-rw-r--r-- | chrome/renderer/webplugin_delegate_pepper.cc | 17 | ||||
-rw-r--r-- | chrome/renderer/webplugin_delegate_pepper.h | 1 | ||||
-rw-r--r-- | third_party/npapi/bindings/npapi.h | 155 | ||||
-rw-r--r-- | webkit/glue/pepper/pepper.h | 164 | ||||
-rw-r--r-- | webkit/glue/plugins/nphostapi.h | 1 | ||||
-rw-r--r-- | webkit/glue/plugins/plugin_host.cc | 1 | ||||
-rw-r--r-- | webkit/glue/webplugin_delegate.h | 1 |
7 files changed, 178 insertions, 162 deletions
diff --git a/chrome/renderer/webplugin_delegate_pepper.cc b/chrome/renderer/webplugin_delegate_pepper.cc index 6e7e9f0..30d29b7 100644 --- a/chrome/renderer/webplugin_delegate_pepper.cc +++ b/chrome/renderer/webplugin_delegate_pepper.cc @@ -18,6 +18,7 @@ #include "base/string_util.h" #include "webkit/api/public/WebInputEvent.h" #include "webkit/glue/glue_util.h" +#include "webkit/glue/pepper/pepper.h" #include "webkit/glue/plugins/plugin_constants_win.h" #include "webkit/glue/plugins/plugin_instance.h" #include "webkit/glue/plugins/plugin_lib.h" @@ -280,10 +281,10 @@ void WebPluginDelegatePepper::InstallMissingPlugin() { } void WebPluginDelegatePepper::SetFocus() { - NPEvent npevent; + NPPepperEvent npevent; npevent.type = NPEventType_Focus; - npevent.size = sizeof(NPEvent); + npevent.size = sizeof(npevent); // TODO(sehr): what timestamp should this have? npevent.timeStampSeconds = 0.0; // Currently this API only supports gaining focus. @@ -321,14 +322,14 @@ NPEventTypes ConvertEventTypes(WebInputEvent::Type wetype) { } } -void BuildKeyEvent(const WebInputEvent* event, NPEvent* npevent) { +void BuildKeyEvent(const WebInputEvent* event, NPPepperEvent* npevent) { const WebKeyboardEvent* key_event = reinterpret_cast<const WebKeyboardEvent*>(event); npevent->u.key.modifier = key_event->modifiers; npevent->u.key.normalizedKeyCode = key_event->windowsKeyCode; } -void BuildCharEvent(const WebInputEvent* event, NPEvent* npevent) { +void BuildCharEvent(const WebInputEvent* event, NPPepperEvent* npevent) { const WebKeyboardEvent* key_event = reinterpret_cast<const WebKeyboardEvent*>(event); npevent->u.character.modifier = key_event->modifiers; @@ -342,7 +343,7 @@ void BuildCharEvent(const WebInputEvent* event, NPEvent* npevent) { } } -void BuildMouseEvent(const WebInputEvent* event, NPEvent* npevent) { +void BuildMouseEvent(const WebInputEvent* event, NPPepperEvent* npevent) { const WebMouseEvent* mouse_event = reinterpret_cast<const WebMouseEvent*>(event); npevent->u.mouse.modifier = mouse_event->modifiers; @@ -352,7 +353,7 @@ void BuildMouseEvent(const WebInputEvent* event, NPEvent* npevent) { npevent->u.mouse.clickCount = mouse_event->clickCount; } -void BuildMouseWheelEvent(const WebInputEvent* event, NPEvent* npevent) { +void BuildMouseWheelEvent(const WebInputEvent* event, NPPepperEvent* npevent) { const WebMouseWheelEvent* mouse_wheel_event = reinterpret_cast<const WebMouseWheelEvent*>(event); npevent->u.wheel.modifier = mouse_wheel_event->modifiers; @@ -366,10 +367,10 @@ void BuildMouseWheelEvent(const WebInputEvent* event, NPEvent* npevent) { bool WebPluginDelegatePepper::HandleInputEvent(const WebInputEvent& event, WebCursorInfo* cursor_info) { - NPEvent npevent; + NPPepperEvent npevent; npevent.type = ConvertEventTypes(event.type); - npevent.size = sizeof(NPEvent); + npevent.size = sizeof(npevent); npevent.timeStampSeconds = event.timeStampSeconds; switch (npevent.type) { case NPEventType_Undefined: diff --git a/chrome/renderer/webplugin_delegate_pepper.h b/chrome/renderer/webplugin_delegate_pepper.h index 9374268..214ff43 100644 --- a/chrome/renderer/webplugin_delegate_pepper.h +++ b/chrome/renderer/webplugin_delegate_pepper.h @@ -20,6 +20,7 @@ #include "chrome/common/transport_dib.h" #include "skia/ext/platform_canvas.h" #include "third_party/npapi/bindings/npapi.h" +#include "webkit/glue/pepper/pepper.h" #include "webkit/glue/webcursor.h" #include "webkit/glue/webplugin_delegate.h" diff --git a/third_party/npapi/bindings/npapi.h b/third_party/npapi/bindings/npapi.h index f997953..cb75db4 100644 --- a/third_party/npapi/bindings/npapi.h +++ b/third_party/npapi/bindings/npapi.h @@ -437,14 +437,6 @@ typedef enum { #endif , NPNVsupportsCocoaBool = 3001 /* TRUE if the browser supports the Cocoa event model */ #endif -#ifdef PEPPER_APIS_ENABLED - /* - * Note: these APIs have not been ratified by Mozilla, et al. - * Until they are, they need to be distinct values from other enum - * elements here. - */ - , NPNVPepperExtensions = 4000 /* A pointer to an NPPepperExtensions structure */ -#endif } NPNVariable; typedef enum { @@ -615,7 +607,6 @@ typedef enum { NPCoordinateSpaceFlippedScreen } NPCoordinateSpace; -#if !defined(PEPPER_APIS_ENABLED) #if defined(XP_MAC) || defined(XP_MACOSX) #ifndef NP_NO_CARBON @@ -746,155 +737,11 @@ enum NPEventType { #endif /* XP_MACOSX */ +#if !defined(PEPPER_APIS_ENABLED) /* Stub typedefs for interfaces requiring Pepper types. */ typedef int NPRenderType; typedef struct _NPRenderContext NPRenderContext; typedef struct _NPPepperExtensions NPPepperExtensions; - -#else /* defined(PEPPER_APIS_ENABLED) */ -typedef enum { - NPMouseButton_None = -1, - NPMouseButton_Left = 0, - NPMouseButton_Middle = 1, - NPMouseButton_Right = 2, -} NPMouseButtons; - -typedef enum { - NPEventType_Undefined = -1, - NPEventType_MouseDown = 0, - NPEventType_MouseUp = 1, - NPEventType_MouseMove = 2, - NPEventType_MouseEnter = 3, - NPEventType_MouseLeave = 4, - NPEventType_MouseWheel = 5, - NPEventType_RawKeyDown = 6, - NPEventType_KeyDown = 7, - NPEventType_KeyUp = 8, - NPEventType_Char = 9, - NPEventType_Minimize = 10, - NPEventType_Focus = 11, - NPEventType_Device = 12 -} NPEventTypes; - -typedef enum { - NPEventModifier_ShiftKey = 1 << 0, - NPEventModifier_ControlKey = 1 << 1, - NPEventModifier_AltKey = 1 << 2, - NPEventModifier_MetaKey = 1 << 3, - NPEventModifier_IsKeyPad = 1 << 4, - NPEventModifier_IsAutoRepeat = 1 << 5, - NPEventModifier_LeftButtonDown = 1 << 6, - NPEventModifier_MiddleButtonDown = 1 << 7, - NPEventModifier_RightButtonDown = 1 << 8 -} NPEventModifiers; - -typedef struct _NPKeyEvent -{ - uint32 modifier; - uint32 normalizedKeyCode; -} NPKeyEvent; - -typedef struct _NPCharacterEvent -{ - uint32 modifier; - uint16 text[4]; - uint16 unmodifiedText[4]; -} NPCharacterEvent; - -typedef struct _NPMouseEvent -{ - uint32 modifier; - int32 button; - int32 x; - int32 y; - int32 clickCount; -} NPMouseEvent; - -typedef struct _NPMouseWheelEvent -{ - uint32 modifier; - float deltaX; - float deltaY; - float wheelTicksX; - float wheelTicksY; - uint32 scrollByPage; -} NPMouseWheelEvent; - -typedef struct _NPDeviceEvent { - uint32 device_uid; - uint32 subtype; - /* uint8 generic[0]; */ -} NPDeviceEvent; - -typedef struct _NPMinimizeEvent { - int32 value; -} NPMinimizeEvent; - -typedef struct _NPFocusEvent { - int32 value; -} NPFocusEvent; - -typedef struct _NPEvent -{ - uint32 size; - int32 type; - double timeStampSeconds; - union { - NPKeyEvent key; - NPCharacterEvent character; - NPMouseEvent mouse; - NPMouseWheelEvent wheel; - NPMinimizeEvent minimize; - NPFocusEvent focus; - NPDeviceEvent device; - } u; -} NPEvent; - -typedef struct _NPRegion -{ - int32 x; - int32 y; - int32 w; - int32 h; -} NPRegion; - -typedef enum _NPRenderType -{ - NPRenderGraphicsRGBA -} NPRenderType; - -typedef struct _NPRenderContext -{ - union { - struct { - void* region; - int32 stride; - } graphicsRgba; - } u; -} NPRenderContext; - -typedef void (*NPFlushRenderContextCallbackPtr)(NPRenderContext* context, - NPError err, - void* userData); -typedef NPError (*NPInitializeRenderContextPtr)(NPP instance, - NPRenderType type, - NPRenderContext* context); -typedef NPError (*NPFlushRenderContextPtr)(NPP instance, - NPRenderContext* context, - NPFlushRenderContextCallbackPtr callback, - void* userData); -typedef NPError (*NPDestroyRenderContextPtr)(NPP instance, - NPRenderContext* context); - -typedef struct _NPPepperExtensions -{ - /* Renderer extensions */ - NPInitializeRenderContextPtr initializeRender; - NPFlushRenderContextPtr flushRender; - NPDestroyRenderContextPtr destroyRender; - /* Shared memory extensions */ -} NPPepperExtensions; - #endif /* defined(PEPPER_APIS_ENABLED) */ /* diff --git a/webkit/glue/pepper/pepper.h b/webkit/glue/pepper/pepper.h new file mode 100644 index 0000000..901109b --- /dev/null +++ b/webkit/glue/pepper/pepper.h @@ -0,0 +1,164 @@ +// Copyright (c) 2006-2009 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_GLUE_PEPPER_PEPPER_H_ +#define WEBKIT_GLUE_PEPPER_PEPPER_H_ + +#ifdef PEPPER_APIS_ENABLED + +#include "base/basictypes.h" +#include "third_party/npapi/bindings/npapi.h" + +/* + * A fake "enum" value for getting Pepper extensions. + * The variable returns a pointer to an NPPepperExtensions structure + */ +#define NPNVPepperExtensions ((NPNVariable) 4000) + +typedef enum { + NPMouseButton_None = -1, + NPMouseButton_Left = 0, + NPMouseButton_Middle = 1, + NPMouseButton_Right = 2, +} NPMouseButtons; + +typedef enum { + NPEventType_Undefined = -1, + NPEventType_MouseDown = 0, + NPEventType_MouseUp = 1, + NPEventType_MouseMove = 2, + NPEventType_MouseEnter = 3, + NPEventType_MouseLeave = 4, + NPEventType_MouseWheel = 5, + NPEventType_RawKeyDown = 6, + NPEventType_KeyDown = 7, + NPEventType_KeyUp = 8, + NPEventType_Char = 9, + NPEventType_Minimize = 10, + NPEventType_Focus = 11, + NPEventType_Device = 12 +} NPEventTypes; + +typedef enum { + NPEventModifier_ShiftKey = 1 << 0, + NPEventModifier_ControlKey = 1 << 1, + NPEventModifier_AltKey = 1 << 2, + NPEventModifier_MetaKey = 1 << 3, + NPEventModifier_IsKeyPad = 1 << 4, + NPEventModifier_IsAutoRepeat = 1 << 5, + NPEventModifier_LeftButtonDown = 1 << 6, + NPEventModifier_MiddleButtonDown = 1 << 7, + NPEventModifier_RightButtonDown = 1 << 8 +} NPEventModifiers; + +typedef struct _NPKeyEvent +{ + uint32 modifier; + uint32 normalizedKeyCode; +} NPKeyEvent; + +typedef struct _NPCharacterEvent +{ + uint32 modifier; + uint16 text[4]; + uint16 unmodifiedText[4]; +} NPCharacterEvent; + +typedef struct _NPMouseEvent +{ + uint32 modifier; + int32 button; + int32 x; + int32 y; + int32 clickCount; +} NPMouseEvent; + +typedef struct _NPMouseWheelEvent +{ + uint32 modifier; + float deltaX; + float deltaY; + float wheelTicksX; + float wheelTicksY; + uint32 scrollByPage; +} NPMouseWheelEvent; + +typedef struct _NPDeviceEvent { + uint32 device_uid; + uint32 subtype; + /* uint8 generic[0]; */ +} NPDeviceEvent; + +typedef struct _NPMinimizeEvent { + int32 value; +} NPMinimizeEvent; + +typedef struct _NPFocusEvent { + int32 value; +} NPFocusEvent; + +typedef struct _NPPepprEvent +{ + uint32 size; + int32 type; + double timeStampSeconds; + union { + NPKeyEvent key; + NPCharacterEvent character; + NPMouseEvent mouse; + NPMouseWheelEvent wheel; + NPMinimizeEvent minimize; + NPFocusEvent focus; + NPDeviceEvent device; + } u; +} NPPepperEvent; + +typedef struct _NPPepperRegion +{ + int32 x; + int32 y; + int32 w; + int32 h; +} NPPepperRegion; + +typedef enum _NPRenderType +{ + NPRenderGraphicsRGBA +} NPRenderType; + +typedef struct _NPRenderContext +{ + union { + struct { + void* region; + int32 stride; + } graphicsRgba; + } u; +} NPRenderContext; + +typedef void (*NPFlushRenderContextCallbackPtr)(NPRenderContext* context, + NPError err, + void* userData); +typedef NPError (*NPInitializeRenderContextPtr)(NPP instance, + NPRenderType type, + NPRenderContext* context); +typedef NPError (*NPFlushRenderContextPtr)(NPP instance, + NPRenderContext* context, + NPFlushRenderContextCallbackPtr callback, + void* userData); +typedef NPError (*NPDestroyRenderContextPtr)(NPP instance, + NPRenderContext* context); + +typedef struct _NPPepperExtensions +{ + /* Renderer extensions */ + NPInitializeRenderContextPtr initializeRender; + NPFlushRenderContextPtr flushRender; + NPDestroyRenderContextPtr destroyRender; + /* Shared memory extensions */ +} NPPepperExtensions; + +#endif /* PEPPER_APIS_ENABLED */ + +#endif /* WEBKIT_GLUE_PEPPER_PEPPER_H_ */ diff --git a/webkit/glue/plugins/nphostapi.h b/webkit/glue/plugins/nphostapi.h index 8463838c..f840954 100644 --- a/webkit/glue/plugins/nphostapi.h +++ b/webkit/glue/plugins/nphostapi.h @@ -8,6 +8,7 @@ #define WEBKIT_GLUE_PLUGIN_NPHOSTAPI_H__ #include "base/port.h" +#include "webkit/glue/pepper/pepper.h" #include "third_party/npapi/bindings/npapi.h" #include "third_party/npapi/bindings/npruntime.h" diff --git a/webkit/glue/plugins/plugin_host.cc b/webkit/glue/plugins/plugin_host.cc index e0d2a85..5385dda 100644 --- a/webkit/glue/plugins/plugin_host.cc +++ b/webkit/glue/plugins/plugin_host.cc @@ -20,6 +20,7 @@ #include "webkit/glue/webplugininfo.h" #include "webkit/glue/webplugin_delegate.h" #include "webkit/glue/webkit_glue.h" +#include "webkit/glue/pepper/pepper.h" #include "webkit/glue/plugins/plugin_instance.h" #include "webkit/glue/plugins/plugin_lib.h" #include "webkit/glue/plugins/plugin_list.h" diff --git a/webkit/glue/webplugin_delegate.h b/webkit/glue/webplugin_delegate.h index 016f699..a2df27f 100644 --- a/webkit/glue/webplugin_delegate.h +++ b/webkit/glue/webplugin_delegate.h @@ -12,6 +12,7 @@ #include "base/string16.h" #include "build/build_config.h" #include "third_party/npapi/bindings/npapi.h" +#include "webkit/glue/pepper/pepper.h" #include "webkit/api/public/WebCanvas.h" class FilePath; |