Chromium Code Reviews| Index: webkit/plugins/ppapi/ppapi_plugin_instance.h |
| =================================================================== |
| --- webkit/plugins/ppapi/ppapi_plugin_instance.h (revision 90976) |
| +++ webkit/plugins/ppapi/ppapi_plugin_instance.h (working copy) |
| @@ -24,6 +24,7 @@ |
| #include "ppapi/c/pp_var.h" |
| #include "ppapi/c/ppp_instance.h" |
| #include "ppapi/shared_impl/function_group_base.h" |
| +#include "ppapi/shared_impl/instance_impl.h" |
| #include "ppapi/thunk/ppb_instance_api.h" |
| #include "third_party/skia/include/core/SkBitmap.h" |
| #include "third_party/skia/include/core/SkRefCnt.h" |
| @@ -36,6 +37,7 @@ |
| struct PPB_Messaging; |
| struct PPB_Zoom_Dev; |
| struct PPP_Find_Dev; |
| +struct PPP_InputEvent; |
| struct PPP_Instance_Private; |
| struct PPP_Messaging; |
| struct PPP_Pdf; |
| @@ -77,7 +79,8 @@ |
| // ResourceTracker. |
| class PluginInstance : public base::RefCounted<PluginInstance>, |
| public ::ppapi::FunctionGroupBase, |
| - public ::ppapi::thunk::PPB_Instance_FunctionAPI { |
| + public ::ppapi::thunk::PPB_Instance_FunctionAPI, |
| + public ::ppapi::InstanceImpl { |
| public: |
| struct PPP_Instance_Combined; |
| @@ -288,9 +291,16 @@ |
| virtual PP_Bool SetFullscreen(PP_Instance instance, |
| PP_Bool fullscreen) OVERRIDE; |
| virtual PP_Bool GetScreenSize(PP_Instance instance, PP_Size* size) OVERRIDE; |
| + virtual int32_t RequestInputEvents(PP_Instance instance, |
| + uint32_t event_classes) OVERRIDE; |
| + virtual int32_t RequestFilteringInputEvents(PP_Instance instance, |
| + uint32_t event_classes) OVERRIDE; |
| + virtual void ClearInputEventRequest(PP_Instance instance, |
| + uint32_t event_classes) OVERRIDE; |
| private: |
| bool LoadFindInterface(); |
| + bool LoadInputEventInterface(); |
| bool LoadMessagingInterface(); |
| bool LoadPdfInterface(); |
| bool LoadSelectionInterface(); |
| @@ -383,13 +393,15 @@ |
| // The plugin-provided interfaces. |
| const PPP_Find_Dev* plugin_find_interface_; |
| const PPP_Messaging* plugin_messaging_interface_; |
| + const PPP_InputEvent* plugin_input_event_interface_; |
| + const PPP_Instance_Private* plugin_private_interface_; |
| const PPP_Pdf* plugin_pdf_interface_; |
| - const PPP_Instance_Private* plugin_private_interface_; |
| const PPP_Selection_Dev* plugin_selection_interface_; |
| const PPP_Zoom_Dev* plugin_zoom_interface_; |
| - // A flag to indicate whether we have asked this plugin instance for its |
| - // messaging interface, so that we can ask only once. |
| + // Flags indicating whether we have asked this plugin instance for the |
| + // corresponding intefaces, so that we can ask only once. |
|
dmichael (off chromium)
2011/07/01 20:04:19
intefaces->interfaces
|
| + bool checked_for_plugin_input_event_interface_; |
| bool checked_for_plugin_messaging_interface_; |
| // This is only valid between a successful PrintBegin call and a PrintEnd |
| @@ -483,6 +495,11 @@ |
| typedef std::map<NPObject*, ObjectVar*> NPObjectToObjectVarMap; |
| NPObjectToObjectVarMap np_object_to_object_var_; |
| + // Classes of events that the plugin has registered for, both for filtering |
| + // and not. The bits are PP_INPUTEVENT_CLASS_*. |
| + uint32_t input_event_mask_; |
| + uint32_t filtered_input_event_mask_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(PluginInstance); |
| }; |