Index: content/browser/plugin_service.cc |
diff --git a/content/browser/plugin_service.cc b/content/browser/plugin_service.cc |
index b59c64e2287a3d0c5518d7a5de35c613f835fb65..5e0e910656076fa2394cec4f57f871b1f52a079b 100644 |
--- a/content/browser/plugin_service.cc |
+++ b/content/browser/plugin_service.cc |
@@ -116,19 +116,21 @@ PluginService::PluginService() |
: ui_locale_( |
content::GetContentClient()->browser()->GetApplicationLocale()), |
filter_(NULL) { |
- webkit::npapi::PluginList::Singleton()->set_will_load_plugins_callback( |
+ plugin_list()->set_will_load_plugins_callback( |
base::Bind(&WillLoadPluginsCallback)); |
RegisterPepperPlugins(); |
+ content::GetContentClient()->AddNPAPIPlugins(plugin_list()); |
+ |
// Load any specified on the command line as well. |
const CommandLine* command_line = CommandLine::ForCurrentProcess(); |
FilePath path = command_line->GetSwitchValuePath(switches::kLoadPlugin); |
if (!path.empty()) |
- webkit::npapi::PluginList::Singleton()->AddExtraPluginPath(path); |
+ AddExtraPluginPath(path); |
path = command_line->GetSwitchValuePath(switches::kExtraPluginDir); |
if (!path.empty()) |
- webkit::npapi::PluginList::Singleton()->AddExtraPluginDir(path); |
+ plugin_list()->AddExtraPluginDir(path); |
#if defined(OS_MACOSX) |
// We need to know when the browser comes forward so we can bring modal plugin |
@@ -182,8 +184,7 @@ void PluginService::StartWatchingPlugins() { |
// Get the list of all paths for registering the FilePathWatchers |
// that will track and if needed reload the list of plugins on runtime. |
std::vector<FilePath> plugin_dirs; |
- webkit::npapi::PluginList::Singleton()->GetPluginDirectories( |
- &plugin_dirs); |
+ plugin_list()->GetPluginDirectories(&plugin_dirs); |
for (size_t i = 0; i < plugin_dirs.size(); ++i) { |
// FilePathWatcher can not handle non-absolute paths under windows. |
@@ -428,8 +429,8 @@ bool PluginService::GetPluginInfoArray( |
std::vector<webkit::WebPluginInfo>* plugins, |
std::vector<std::string>* actual_mime_types) { |
bool use_stale = false; |
- webkit::npapi::PluginList::Singleton()->GetPluginInfoArray( |
- url, mime_type, allow_wildcard, &use_stale, plugins, actual_mime_types); |
+ plugin_list()->GetPluginInfoArray(url, mime_type, allow_wildcard, |
+ &use_stale, plugins, actual_mime_types); |
return use_stale; |
} |
@@ -476,8 +477,7 @@ bool PluginService::GetPluginInfo(int render_process_id, |
bool PluginService::GetPluginInfoByPath(const FilePath& plugin_path, |
webkit::WebPluginInfo* info) { |
std::vector<webkit::WebPluginInfo> plugins; |
- webkit::npapi::PluginList::Singleton()->GetPluginsIfNoRefreshNeeded( |
- &plugins); |
+ plugin_list()->GetPluginsIfNoRefreshNeeded(&plugins); |
for (std::vector<webkit::WebPluginInfo>::iterator it = plugins.begin(); |
it != plugins.end(); |
@@ -491,10 +491,6 @@ bool PluginService::GetPluginInfoByPath(const FilePath& plugin_path, |
return false; |
} |
-void PluginService::RefreshPluginList() { |
- webkit::npapi::PluginList::Singleton()->RefreshPlugins(); |
-} |
- |
void PluginService::GetPlugins(const GetPluginsCallback& callback) { |
scoped_refptr<base::MessageLoopProxy> target_loop( |
MessageLoop::current()->message_loop_proxy()); |
@@ -505,8 +501,7 @@ void PluginService::GetPlugins(const GetPluginsCallback& callback) { |
target_loop, callback)); |
#else |
std::vector<webkit::WebPluginInfo> cached_plugins; |
- if (webkit::npapi::PluginList::Singleton()->GetPluginsIfNoRefreshNeeded( |
- &cached_plugins)) { |
+ if (plugin_list()->GetPluginsIfNoRefreshNeeded(&cached_plugins)) { |
// Can't assume the caller is reentrant. |
target_loop->PostTask(FROM_HERE, |
base::Bind(&RunGetPluginsCallback, callback, cached_plugins)); |
@@ -532,7 +527,7 @@ void PluginService::GetPluginsInternal( |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
std::vector<webkit::WebPluginInfo> plugins; |
- webkit::npapi::PluginList::Singleton()->GetPlugins(&plugins); |
+ plugin_list()->GetPlugins(&plugins); |
target_loop->PostTask(FROM_HERE, |
base::Bind(&RunGetPluginsCallback, callback, plugins)); |
@@ -547,7 +542,7 @@ void PluginService::OnWaitableEventSignaled( |
hklm_key_.StartWatching(); |
} |
- webkit::npapi::PluginList::Singleton()->RefreshPlugins(); |
+ plugin_list()->RefreshPlugins(); |
PurgePluginListCache(NULL, false); |
#else |
// This event should only get signaled on a Windows machine. |
@@ -583,8 +578,7 @@ void PluginService::RegisterPepperPlugins() { |
// TODO(abarth): It seems like the PepperPluginRegistry should do this work. |
PepperPluginRegistry::ComputeList(&ppapi_plugins_); |
for (size_t i = 0; i < ppapi_plugins_.size(); ++i) { |
- webkit::npapi::PluginList::Singleton()->RegisterInternalPlugin( |
- ppapi_plugins_[i].ToWebPluginInfo()); |
+ RegisterInternalPlugin(ppapi_plugins_[i].ToWebPluginInfo()); |
} |
} |
@@ -625,3 +619,31 @@ void PluginService::RegisterFilePathWatcher( |
DCHECK(result); |
} |
#endif |
+ |
+void PluginService::RefreshPlugins() { |
+ plugin_list()->RefreshPlugins(); |
+} |
+ |
+void PluginService::AddExtraPluginPath(const FilePath& path) { |
+ plugin_list()->AddExtraPluginPath(path); |
+} |
+ |
+void PluginService::RemoveExtraPluginPath(const FilePath& path) { |
+ plugin_list()->RemoveExtraPluginPath(path); |
+} |
+ |
+void PluginService::UnregisterInternalPlugin(const FilePath& path) { |
+ plugin_list()->UnregisterInternalPlugin(path); |
+} |
+ |
+webkit::npapi::PluginList* PluginService::plugin_list() { |
+ return webkit::npapi::PluginList::Singleton(); |
+} |
+ |
+void PluginService::RegisterInternalPlugin(const webkit::WebPluginInfo& info) { |
+ plugin_list()->RegisterInternalPlugin(info); |
+} |
+ |
+string16 PluginService::GetPluginGroupName(const std::string& plugin_name) { |
+ return plugin_list()->GetPluginGroupName(plugin_name); |
+} |