diff options
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/glue/plugins/plugin_lib.cc | 29 | ||||
-rw-r--r-- | webkit/glue/plugins/plugin_list.cc | 4 | ||||
-rw-r--r-- | webkit/glue/plugins/plugin_list.h | 2 |
3 files changed, 29 insertions, 6 deletions
diff --git a/webkit/glue/plugins/plugin_lib.cc b/webkit/glue/plugins/plugin_lib.cc index 9e1bb54..b435f3f 100644 --- a/webkit/glue/plugins/plugin_lib.cc +++ b/webkit/glue/plugins/plugin_lib.cc @@ -45,13 +45,26 @@ PluginLib* PluginLib::CreatePluginLib(const std::wstring& filename) { if (iter != loaded_libs_->end()) return iter->second; - static const InternalPluginInfo activex_shim_info = { + static const InternalPluginInfo activex_shim_info_generic = { {kActiveXShimFileName, L"ActiveX Plug-in", L"ActiveX Plug-in provides a shim to support ActiveX controls", L"1, 0, 0, 1", - L"application/x-oleobject|application/oleobject|" - L"application/x-ms-wmp|application/asx|video/x-ms-asf-plugin|" + L"application/x-oleobject|application/oleobject", + L"*|*", + L"" + }, + activex_shim::ActiveX_Shim_NP_GetEntryPoints, + activex_shim::ActiveX_Shim_NP_Initialize, + activex_shim::ActiveX_Shim_NP_Shutdown + }; + + static const InternalPluginInfo activex_shim_windows_media_player = { + {kActivexShimFileNameForMediaPlayer, + kActivexShimFileNameForMediaPlayer, + L"Windows Media Player", + L"1, 0, 0, 1", + L"application/x-ms-wmp|application/asx|video/x-ms-asf-plugin|" L"application/x-mplayer2|video/x-ms-asf|video/x-ms-wm|audio/x-ms-wma|" L"audio/x-ms-wax|video/x-ms-wmv|video/x-ms-wvx", L"*|*|*|*|*|*|asf,asx,*|wm,*|wma,*|wax,*|wmv,*|wvx,*", @@ -78,9 +91,13 @@ PluginLib* PluginLib::CreatePluginLib(const std::wstring& filename) { WebPluginInfo* info = NULL; const InternalPluginInfo* internal_plugin_info = NULL; - if (filename == activex_shim_info.version_info.file_name) { - info = CreateWebPluginInfo(activex_shim_info.version_info); - internal_plugin_info = &activex_shim_info; + if (filename == activex_shim_info_generic.version_info.file_name) { + info = CreateWebPluginInfo(activex_shim_info_generic.version_info); + internal_plugin_info = &activex_shim_info_generic; + } else if (filename == + activex_shim_windows_media_player.version_info.file_name) { + info = CreateWebPluginInfo(activex_shim_windows_media_player.version_info); + internal_plugin_info = &activex_shim_windows_media_player; } else if (filename == default_null_plugin_info.version_info.file_name) { info = CreateWebPluginInfo(default_null_plugin_info.version_info); internal_plugin_info = &default_null_plugin_info; diff --git a/webkit/glue/plugins/plugin_list.cc b/webkit/glue/plugins/plugin_list.cc index e10bfc7..e8e4ea7 100644 --- a/webkit/glue/plugins/plugin_list.cc +++ b/webkit/glue/plugins/plugin_list.cc @@ -217,6 +217,10 @@ void PluginList::LoadInternalPlugins() { scoped_refptr<PluginLib> new_plugin = PluginLib::CreatePluginLib( kActiveXShimFileName); plugins_.push_back(new_plugin); + + new_plugin = PluginLib::CreatePluginLib( + kActivexShimFileNameForMediaPlayer); + plugins_.push_back(new_plugin); } } diff --git a/webkit/glue/plugins/plugin_list.h b/webkit/glue/plugins/plugin_list.h index 1eac95a..af8c5fc 100644 --- a/webkit/glue/plugins/plugin_list.h +++ b/webkit/glue/plugins/plugin_list.h @@ -27,6 +27,8 @@ namespace NPAPI #define kNoNativeActiveXShimSwitch L"no-activex" // Internal file name for activex shim, used as a unique identifier. #define kActiveXShimFileName L"activex-shim" +// Internal file name for windows media player. +#define kActivexShimFileNameForMediaPlayer L"windows media" #define kDefaultPluginDllName L"default_plugin" |