| Index: webkit/plugins/ppapi/ppapi_plugin_instance.cc
|
| diff --git a/webkit/plugins/ppapi/ppapi_plugin_instance.cc b/webkit/plugins/ppapi/ppapi_plugin_instance.cc
|
| index 6cd8b03e5bac1424b033f3c169e49a02e935766e..b3375d47e8fc4c1d859728e9c62ae0fd303dc250 100644
|
| --- a/webkit/plugins/ppapi/ppapi_plugin_instance.cc
|
| +++ b/webkit/plugins/ppapi/ppapi_plugin_instance.cc
|
| @@ -113,11 +113,13 @@ using ppapi::PpapiGlobals;
|
| using ppapi::PPB_InputEvent_Shared;
|
| using ppapi::PPB_View_Shared;
|
| using ppapi::PPP_Instance_Combined;
|
| +using ppapi::Resource;
|
| using ppapi::ScopedPPResource;
|
| using ppapi::StringVar;
|
| using ppapi::TrackedCallback;
|
| using ppapi::thunk::EnterResourceNoLock;
|
| using ppapi::thunk::PPB_Buffer_API;
|
| +using ppapi::thunk::PPB_Gamepad_API;
|
| using ppapi::thunk::PPB_Graphics2D_API;
|
| using ppapi::thunk::PPB_Graphics3D_API;
|
| using ppapi::thunk::PPB_ImageData_API;
|
| @@ -318,7 +320,12 @@ PluginInstance* PluginInstance::Create(PluginDelegate* delegate,
|
| }
|
|
|
| PluginInstance::GamepadImpl::GamepadImpl(PluginDelegate* delegate)
|
| - : delegate_(delegate) {
|
| + : Resource(::ppapi::Resource::Untracked()),
|
| + delegate_(delegate) {
|
| +}
|
| +
|
| +PPB_Gamepad_API* PluginInstance::GamepadImpl::AsPPB_Gamepad_API() {
|
| + return this;
|
| }
|
|
|
| void PluginInstance::GamepadImpl::Sample(PP_GamepadsSampleData* data) {
|
| @@ -355,7 +362,7 @@ PluginInstance::PluginInstance(
|
| checked_for_plugin_input_event_interface_(false),
|
| checked_for_plugin_messaging_interface_(false),
|
| checked_for_plugin_pdf_interface_(false),
|
| - gamepad_impl_(delegate),
|
| + gamepad_impl_(new GamepadImpl(delegate)),
|
| plugin_print_interface_(NULL),
|
| plugin_graphics_3d_interface_(NULL),
|
| always_on_top_(false),
|
| @@ -2124,23 +2131,23 @@ PP_Bool PluginInstance::GetScreenSize(PP_Instance instance, PP_Size* size) {
|
| return &flash_impl_;
|
| }
|
|
|
| -::ppapi::thunk::PPB_Flash_Clipboard_API*
|
| -PluginInstance::GetFlashClipboardAPI(PP_Instance /*instance*/) {
|
| - NOTIMPLEMENTED();
|
| - return NULL;
|
| -}
|
| +::ppapi::Resource* PluginInstance::GetSingletonResource(
|
| + PP_Instance instance,
|
| + ::ppapi::SingletonResourceID id) {
|
| + // Flash APIs aren't implemented in-process.
|
| + switch (id) {
|
| + case ::ppapi::FLASH_SINGLETON_ID:
|
| + case ::ppapi::FLASH_CLIPBOARD_SINGLETON_ID:
|
| + NOTIMPLEMENTED();
|
| + return NULL;
|
| + case ::ppapi::GAMEPAD_SINGLETON_ID:
|
| + return gamepad_impl_;
|
| + }
|
|
|
| -::ppapi::thunk::PPB_Flash_Functions_API*
|
| -PluginInstance::GetFlashFunctionsAPI(PP_Instance /*instance*/) {
|
| - NOTIMPLEMENTED();
|
| + NOTREACHED();
|
| return NULL;
|
| }
|
|
|
| -::ppapi::thunk::PPB_Gamepad_API* PluginInstance::GetGamepadAPI(
|
| - PP_Instance /* instance */) {
|
| - return &gamepad_impl_;
|
| -}
|
| -
|
| int32_t PluginInstance::RequestInputEvents(PP_Instance instance,
|
| uint32_t event_classes) {
|
| input_event_mask_ |= event_classes;
|
|
|