diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-20 21:30:29 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-20 21:30:29 +0000 |
commit | b3c595afbf8e188d9496606a4c42bfecffad3b07 (patch) | |
tree | df698a83397f2bdd6785b93ee343465f2feedc84 /webkit/glue/plugins/plugin_list.cc | |
parent | 559fd2cc6db35d5dd473849836e5b31396936a73 (diff) | |
download | chromium_src-b3c595afbf8e188d9496606a4c42bfecffad3b07.zip chromium_src-b3c595afbf8e188d9496606a4c42bfecffad3b07.tar.gz chromium_src-b3c595afbf8e188d9496606a4c42bfecffad3b07.tar.bz2 |
Clean up how the default plugin is loaded so that InternalPluginInfo & PluginVersionInfo remain in the windows file, and other platforms can store this data in the most convenient form to them.
Review URL: http://codereview.chromium.org/18419
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8322 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/plugins/plugin_list.cc')
-rw-r--r-- | webkit/glue/plugins/plugin_list.cc | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/webkit/glue/plugins/plugin_list.cc b/webkit/glue/plugins/plugin_list.cc index 129dd3d..a32fe62 100644 --- a/webkit/glue/plugins/plugin_list.cc +++ b/webkit/glue/plugins/plugin_list.cc @@ -72,13 +72,8 @@ void PluginList::LoadPlugins(bool refresh) { LoadPlugin((*extra_plugin_paths_)[i]); } - if (webkit_glue::IsDefaultPluginEnabled()) { - WebPluginInfo info; - if (PluginLib::ReadWebPluginInfo(FilePath(kDefaultPluginLibraryName), - &info)) { - plugins_.push_back(info); - } - } + if (webkit_glue::IsDefaultPluginEnabled()) + LoadPlugin(FilePath(kDefaultPluginLibraryName)); base::TimeTicks end_time = base::TimeTicks::Now(); base::TimeDelta elapsed = end_time - start_time; @@ -87,24 +82,29 @@ void PluginList::LoadPlugins(bool refresh) { void PluginList::LoadPlugin(const FilePath &path) { WebPluginInfo plugin_info; - if (!PluginLib::ReadWebPluginInfo(path, &plugin_info)) + NP_GetEntryPointsFunc np_getentrypoints; + NP_InitializeFunc np_initialize; + NP_ShutdownFunc np_shutdown; + if (!PluginLib::ReadWebPluginInfo(path, &plugin_info, &np_getentrypoints, + &np_initialize, &np_shutdown)) { return; + } if (!ShouldLoadPlugin(plugin_info)) return; - for (size_t i = 0; i < plugin_info.mime_types.size(); ++i) { - // TODO: don't load global handlers for now. - // WebKit hands to the Plugin before it tries - // to handle mimeTypes on its own. - const std::string &mime_type = plugin_info.mime_types[i].mime_type; - if (mime_type == "*" ) { + if (path.value() != kDefaultPluginLibraryName #if defined(OS_WIN) && !defined(NDEBUG) - // Make an exception for NPSPY. - if (path.BaseName().value() == L"npspy.dll") - break; + && path.BaseName().value() != L"npspy.dll" // Make an exception for NPSPY #endif - return; + ) { + for (size_t i = 0; i < plugin_info.mime_types.size(); ++i) { + // TODO: don't load global handlers for now. + // WebKit hands to the Plugin before it tries + // to handle mimeTypes on its own. + const std::string &mime_type = plugin_info.mime_types[i].mime_type; + if (mime_type == "*" ) + return; } } |