diff options
Diffstat (limited to 'webkit/glue/plugins/npapi_extension_thunk.cc')
-rw-r--r-- | webkit/glue/plugins/npapi_extension_thunk.cc | 551 |
1 files changed, 0 insertions, 551 deletions
diff --git a/webkit/glue/plugins/npapi_extension_thunk.cc b/webkit/glue/plugins/npapi_extension_thunk.cc deleted file mode 100644 index 05a9c5d..0000000 --- a/webkit/glue/plugins/npapi_extension_thunk.cc +++ /dev/null @@ -1,551 +0,0 @@ -// Copyright (c) 2010 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. - -#include "webkit/glue/plugins/npapi_extension_thunk.h" - -#include "base/logging.h" -#include "base/string_util.h" -#include "base/utf_string_conversions.h" -#include "third_party/npapi/bindings/npapi_extensions.h" -#include "webkit/glue/plugins/plugin_instance.h" -#include "webkit/glue/plugins/webplugin.h" -#include "webkit/glue/plugins/webplugin_delegate.h" -#include "webkit/glue/webkit_glue.h" - -// FindInstance() -// Finds a PluginInstance from an NPP. -// The caller must take a reference if needed. -static NPAPI::PluginInstance* FindInstance(NPP id) { - if (id == NULL) { - NOTREACHED(); - return NULL; - } - return static_cast<NPAPI::PluginInstance*>(id->ndata); -} - -// 2D device API --------------------------------------------------------------- - -static NPError Device2DQueryCapability(NPP id, int32_t capability, - int32_t* value) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - plugin->webplugin()->delegate()->Device2DQueryCapability(capability, value); - return NPERR_NO_ERROR; - } else { - return NPERR_GENERIC_ERROR; - } -} - -static NPError Device2DQueryConfig(NPP id, - const NPDeviceConfig* request, - NPDeviceConfig* obtain) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device2DQueryConfig( - static_cast<const NPDeviceContext2DConfig*>(request), - static_cast<NPDeviceContext2DConfig*>(obtain)); - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device2DInitializeContext(NPP id, - const NPDeviceConfig* config, - NPDeviceContext* context) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device2DInitializeContext( - static_cast<const NPDeviceContext2DConfig*>(config), - static_cast<NPDeviceContext2D*>(context)); - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device2DSetStateContext(NPP id, - NPDeviceContext* context, - int32_t state, - intptr_t value) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device2DSetStateContext( - static_cast<NPDeviceContext2D*>(context), state, value); - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device2DGetStateContext(NPP id, - NPDeviceContext* context, - int32_t state, - intptr_t* value) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device2DGetStateContext( - static_cast<NPDeviceContext2D*>(context), state, value); - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device2DFlushContext(NPP id, - NPDeviceContext* context, - NPDeviceFlushContextCallbackPtr callback, - void* user_data) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - NPError err = plugin->webplugin()->delegate()->Device2DFlushContext( - id, static_cast<NPDeviceContext2D*>(context), callback, user_data); - - // Invoke the callback to inform the caller the work was done. - // TODO(brettw) this is probably not how we want this to work, this should - // happen when the frame is painted so the plugin knows when it can draw - // the next frame. - if (callback != NULL) - (*callback)(id, context, err, user_data); - - // Return any errors. - return err; - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device2DDestroyContext(NPP id, - NPDeviceContext* context) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device2DDestroyContext( - static_cast<NPDeviceContext2D*>(context)); - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device2DCreateBuffer(NPP id, - NPDeviceContext* context, - size_t size, - int32_t* buffer_id) { - return NPERR_GENERIC_ERROR; -} - -static NPError Device2DDestroyBuffer(NPP id, - NPDeviceContext* context, - int32_t buffer_id) { - return NPERR_GENERIC_ERROR; -} - -static NPError Device2DMapBuffer(NPP id, - NPDeviceContext* context, - int32_t buffer_id, - NPDeviceBuffer* buffer) { - return NPERR_GENERIC_ERROR; -} - -// 3D device API --------------------------------------------------------------- - -static NPError Device3DQueryCapability(NPP id, int32_t capability, - int32_t* value) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - plugin->webplugin()->delegate()->Device3DQueryCapability(capability, value); - return NPERR_NO_ERROR; - } else { - return NPERR_GENERIC_ERROR; - } -} - -static NPError Device3DQueryConfig(NPP id, - const NPDeviceConfig* request, - NPDeviceConfig* obtain) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device3DQueryConfig( - static_cast<const NPDeviceContext3DConfig*>(request), - static_cast<NPDeviceContext3DConfig*>(obtain)); - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device3DInitializeContext(NPP id, - const NPDeviceConfig* config, - NPDeviceContext* context) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device3DInitializeContext( - static_cast<const NPDeviceContext3DConfig*>(config), - static_cast<NPDeviceContext3D*>(context)); - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device3DSetStateContext(NPP id, - NPDeviceContext* context, - int32_t state, - intptr_t value) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device3DSetStateContext( - static_cast<NPDeviceContext3D*>(context), state, value); - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device3DGetStateContext(NPP id, - NPDeviceContext* context, - int32_t state, - intptr_t* value) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device3DGetStateContext( - static_cast<NPDeviceContext3D*>(context), state, value); - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device3DFlushContext(NPP id, - NPDeviceContext* context, - NPDeviceFlushContextCallbackPtr callback, - void* user_data) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device3DFlushContext( - id, static_cast<NPDeviceContext3D*>(context), callback, user_data); - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device3DDestroyContext(NPP id, - NPDeviceContext* context) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device3DDestroyContext( - static_cast<NPDeviceContext3D*>(context)); - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device3DCreateBuffer(NPP id, - NPDeviceContext* context, - size_t size, - int32_t* buffer_id) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device3DCreateBuffer( - static_cast<NPDeviceContext3D*>(context), size, buffer_id); - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device3DDestroyBuffer(NPP id, - NPDeviceContext* context, - int32_t buffer_id) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device3DDestroyBuffer( - static_cast<NPDeviceContext3D*>(context), buffer_id); - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device3DMapBuffer(NPP id, - NPDeviceContext* context, - int32_t buffer_id, - NPDeviceBuffer* buffer) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device3DMapBuffer( - static_cast<NPDeviceContext3D*>(context), buffer_id, buffer); - } - return NPERR_GENERIC_ERROR; -} - -// Experimental 3D device API -------------------------------------------------- - -static NPError Device3DGetNumConfigs(NPP id, int32_t* num_configs) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device3DGetNumConfigs(num_configs); - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device3DGetConfigAttribs(NPP id, - int32_t config, - int32_t* attrib_list) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device3DGetConfigAttribs( - config, - attrib_list); - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device3DCreateContext(NPP id, - int32_t config, - const int32_t* attrib_list, - NPDeviceContext** context) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device3DCreateContext( - config, - attrib_list, - reinterpret_cast<NPDeviceContext3D**>(context)); - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device3DSynchronizeContext( - NPP id, - NPDeviceContext* context, - NPDeviceSynchronizationMode mode, - const int32_t* input_attrib_list, - int32_t* output_attrib_list, - NPDeviceSynchronizeContextCallbackPtr callback, - void* callback_data) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device3DSynchronizeContext( - id, - static_cast<NPDeviceContext3D*>(context), - mode, - input_attrib_list, - output_attrib_list, - callback, - callback_data); - } - return NPERR_GENERIC_ERROR; -} - -static NPError Device3DRegisterCallback( - NPP id, - NPDeviceContext* context, - int32_t callback_type, - NPDeviceGenericCallbackPtr callback, - void* callback_data) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->Device3DRegisterCallback( - id, - static_cast<NPDeviceContext3D*>(context), - callback_type, - callback, - callback_data); - } - return NPERR_GENERIC_ERROR; -} - -// Audio device API ------------------------------------------------------------ - -static NPError DeviceAudioQueryCapability(NPP id, int32_t capability, - int32_t* value) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - plugin->webplugin()->delegate()->DeviceAudioQueryCapability(capability, - value); - return NPERR_NO_ERROR; - } else { - return NPERR_GENERIC_ERROR; - } -} - -static NPError DeviceAudioQueryConfig(NPP id, - const NPDeviceConfig* request, - NPDeviceConfig* obtain) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->DeviceAudioQueryConfig( - static_cast<const NPDeviceContextAudioConfig*>(request), - static_cast<NPDeviceContextAudioConfig*>(obtain)); - } - return NPERR_GENERIC_ERROR; -} - -static NPError DeviceAudioInitializeContext(NPP id, - const NPDeviceConfig* config, - NPDeviceContext* context) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->DeviceAudioInitializeContext( - static_cast<const NPDeviceContextAudioConfig*>(config), - static_cast<NPDeviceContextAudio*>(context)); - } - return NPERR_GENERIC_ERROR; -} - -static NPError DeviceAudioSetStateContext(NPP id, - NPDeviceContext* context, - int32_t state, - intptr_t value) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - return plugin->webplugin()->delegate()->DeviceAudioSetStateContext( - static_cast<NPDeviceContextAudio*>(context), state, value); - } - return NPERR_GENERIC_ERROR; -} - -static NPError DeviceAudioGetStateContext(NPP id, - NPDeviceContext* context, - int32_t state, - intptr_t* value) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - return plugin->webplugin()->delegate()->DeviceAudioGetStateContext( - static_cast<NPDeviceContextAudio*>(context), state, value); -} - -static NPError DeviceAudioFlushContext(NPP id, - NPDeviceContext* context, - NPDeviceFlushContextCallbackPtr callback, - void* user_data) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - return plugin->webplugin()->delegate()->DeviceAudioFlushContext( - id, static_cast<NPDeviceContextAudio*>(context), callback, user_data); -} - -static NPError DeviceAudioDestroyContext(NPP id, - NPDeviceContext* context) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - return plugin->webplugin()->delegate()->DeviceAudioDestroyContext( - static_cast<NPDeviceContextAudio*>(context)); -} -// ----------------------------------------------------------------------------- - -static NPDevice* AcquireDevice(NPP id, NPDeviceID device_id) { - static NPDevice device_2d = { - Device2DQueryCapability, - Device2DQueryConfig, - Device2DInitializeContext, - Device2DSetStateContext, - Device2DGetStateContext, - Device2DFlushContext, - Device2DDestroyContext, - Device2DCreateBuffer, - Device2DDestroyBuffer, - Device2DMapBuffer, - NULL, - NULL, - NULL, - NULL, - NULL, - }; - static NPDevice device_3d = { - Device3DQueryCapability, - Device3DQueryConfig, - Device3DInitializeContext, - Device3DSetStateContext, - Device3DGetStateContext, - Device3DFlushContext, - Device3DDestroyContext, - Device3DCreateBuffer, - Device3DDestroyBuffer, - Device3DMapBuffer, - Device3DGetNumConfigs, - Device3DGetConfigAttribs, - Device3DCreateContext, - Device3DRegisterCallback, - Device3DSynchronizeContext, - }; - static NPDevice device_audio = { - DeviceAudioQueryCapability, - DeviceAudioQueryConfig, - DeviceAudioInitializeContext, - DeviceAudioSetStateContext, - DeviceAudioGetStateContext, - DeviceAudioFlushContext, - DeviceAudioDestroyContext, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - }; - - switch (device_id) { - case NPPepper2DDevice: - return const_cast<NPDevice*>(&device_2d); - case NPPepper3DDevice: - return const_cast<NPDevice*>(&device_3d); - case NPPepperAudioDevice: - return const_cast<NPDevice*>(&device_audio); - default: - return NULL; - } -} - -static NPError ChooseFile(NPP id, - const char* mime_types, - NPChooseFileMode mode, - NPChooseFileCallback callback, - void* user_data) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (!plugin) - return NPERR_GENERIC_ERROR; - - if (!plugin->webplugin()->delegate()->ChooseFile(mime_types, - static_cast<int>(mode), - callback, user_data)) - return NPERR_GENERIC_ERROR; - - return NPERR_NO_ERROR; -} - -static void NumberOfFindResultsChanged(NPP id, int total, bool final_result) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) { - plugin->webplugin()->delegate()->NumberOfFindResultsChanged( - total, final_result); - } -} - -static void SelectedFindResultChanged(NPP id, int index) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (plugin) - plugin->webplugin()->delegate()->SelectedFindResultChanged(index); -} - -static NPWidgetExtensions* GetWidgetExtensions(NPP id) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (!plugin) - return NULL; - - return plugin->webplugin()->delegate()->GetWidgetExtensions(); -} - -static NPError NPSetCursor(NPP id, NPCursorType type) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (!plugin) - return NPERR_GENERIC_ERROR; - - return plugin->webplugin()->delegate()->SetCursor(type) ? - NPERR_NO_ERROR : NPERR_GENERIC_ERROR; -} - -static NPFontExtensions* GetFontExtensions(NPP id) { - scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id)); - if (!plugin) - return NULL; - - return plugin->webplugin()->delegate()->GetFontExtensions(); -} - -namespace NPAPI { - -NPError GetPepperExtensionsFunctions(void* value) { - static const NPNExtensions kExtensions = { - &AcquireDevice, - &NumberOfFindResultsChanged, - &SelectedFindResultChanged, - &ChooseFile, - &GetWidgetExtensions, - &NPSetCursor, - &GetFontExtensions, - }; - - // Return a pointer to the canonical function table. - NPNExtensions* extensions = const_cast<NPNExtensions*>(&kExtensions); - NPNExtensions** exts = reinterpret_cast<NPNExtensions**>(value); - *exts = extensions; - return NPERR_NO_ERROR; -} - -} // namespace NPAPI |