| Index: content/browser/plugin_service.cc
|
| ===================================================================
|
| --- content/browser/plugin_service.cc (revision 115169)
|
| +++ content/browser/plugin_service.cc (working copy)
|
| @@ -97,7 +97,7 @@
|
| webkit::npapi::PluginList::Singleton()->RefreshPlugins();
|
| BrowserThread::PostTask(
|
| BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&PluginService::PurgePluginListCache,
|
| + base::Bind(&content::PluginService::PurgePluginListCache,
|
| static_cast<content::BrowserContext*>(NULL), false));
|
| }
|
|
|
| @@ -109,8 +109,26 @@
|
| };
|
| #endif
|
|
|
| +namespace content {
|
| // static
|
| PluginService* PluginService::GetInstance() {
|
| + return ::PluginService::GetInstance();
|
| +}
|
| +
|
| +void PluginService::PurgePluginListCache(BrowserContext* browser_context,
|
| + bool reload_pages) {
|
| + for (RenderProcessHost::iterator it = RenderProcessHost::AllHostsIterator();
|
| + !it.IsAtEnd(); it.Advance()) {
|
| + RenderProcessHost* host = it.GetCurrentValue();
|
| + if (!browser_context || host->GetBrowserContext() == browser_context)
|
| + host->Send(new ViewMsg_PurgePluginListCache(reload_pages));
|
| + }
|
| +}
|
| +
|
| +} // namespace content
|
| +
|
| +// static
|
| +PluginService* PluginService::GetInstance() {
|
| return Singleton<PluginService>::get();
|
| }
|
|
|
| @@ -139,12 +157,12 @@
|
| if (!plugin_list_)
|
| plugin_list_ = webkit::npapi::PluginList::Singleton();
|
|
|
| - plugin_list()->set_will_load_plugins_callback(
|
| + plugin_list_->set_will_load_plugins_callback(
|
| base::Bind(&WillLoadPluginsCallback));
|
|
|
| RegisterPepperPlugins();
|
|
|
| - content::GetContentClient()->AddNPAPIPlugins(plugin_list());
|
| + content::GetContentClient()->AddNPAPIPlugins(plugin_list_);
|
|
|
| // Load any specified on the command line as well.
|
| const CommandLine* command_line = CommandLine::ForCurrentProcess();
|
| @@ -153,7 +171,7 @@
|
| AddExtraPluginPath(path);
|
| path = command_line->GetSwitchValuePath(switches::kExtraPluginDir);
|
| if (!path.empty())
|
| - plugin_list()->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
|
| @@ -193,7 +211,7 @@
|
| // 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;
|
| - plugin_list()->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.
|
| @@ -438,8 +456,8 @@
|
| std::vector<webkit::WebPluginInfo>* plugins,
|
| std::vector<std::string>* actual_mime_types) {
|
| bool use_stale = false;
|
| - plugin_list()->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;
|
| }
|
|
|
| @@ -486,7 +504,7 @@
|
| bool PluginService::GetPluginInfoByPath(const FilePath& plugin_path,
|
| webkit::WebPluginInfo* info) {
|
| std::vector<webkit::WebPluginInfo> plugins;
|
| - plugin_list()->GetPluginsIfNoRefreshNeeded(&plugins);
|
| + plugin_list_->GetPluginsIfNoRefreshNeeded(&plugins);
|
|
|
| for (std::vector<webkit::WebPluginInfo>::iterator it = plugins.begin();
|
| it != plugins.end();
|
| @@ -510,7 +528,7 @@
|
| target_loop, callback));
|
| #else
|
| std::vector<webkit::WebPluginInfo> cached_plugins;
|
| - if (plugin_list()->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));
|
| @@ -536,7 +554,7 @@
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
|
|
|
| std::vector<webkit::WebPluginInfo> plugins;
|
| - plugin_list()->GetPlugins(&plugins);
|
| + plugin_list_->GetPlugins(&plugins);
|
|
|
| target_loop->PostTask(FROM_HERE,
|
| base::Bind(&RunGetPluginsCallback, callback, plugins));
|
| @@ -551,7 +569,7 @@
|
| hklm_key_.StartWatching();
|
| }
|
|
|
| - plugin_list()->RefreshPlugins();
|
| + plugin_list_->RefreshPlugins();
|
| PurgePluginListCache(NULL, false);
|
| #else
|
| // This event should only get signaled on a Windows machine.
|
| @@ -572,18 +590,6 @@
|
| NOTREACHED();
|
| }
|
|
|
| -void PluginService::PurgePluginListCache(
|
| - content::BrowserContext* browser_context,
|
| - bool reload_pages) {
|
| - for (content::RenderProcessHost::iterator it =
|
| - content::RenderProcessHost::AllHostsIterator();
|
| - !it.IsAtEnd(); it.Advance()) {
|
| - content::RenderProcessHost* host = it.GetCurrentValue();
|
| - if (!browser_context || host->GetBrowserContext() == browser_context)
|
| - host->Send(new ViewMsg_PurgePluginListCache(reload_pages));
|
| - }
|
| -}
|
| -
|
| void PluginService::RegisterPepperPlugins() {
|
| // TODO(abarth): It seems like the PepperPluginRegistry should do this work.
|
| PepperPluginRegistry::ComputeList(&ppapi_plugins_);
|
| @@ -630,20 +636,28 @@
|
| }
|
| #endif
|
|
|
| +void PluginService::SetFilter(content::PluginServiceFilter* filter) {
|
| + filter_ = filter;
|
| +}
|
| +
|
| +content::PluginServiceFilter* PluginService::GetFilter() {
|
| + return filter_;
|
| +}
|
| +
|
| void PluginService::RefreshPlugins() {
|
| - plugin_list()->RefreshPlugins();
|
| + plugin_list_->RefreshPlugins();
|
| }
|
|
|
| void PluginService::AddExtraPluginPath(const FilePath& path) {
|
| - plugin_list()->AddExtraPluginPath(path);
|
| + plugin_list_->AddExtraPluginPath(path);
|
| }
|
|
|
| void PluginService::RemoveExtraPluginPath(const FilePath& path) {
|
| - plugin_list()->RemoveExtraPluginPath(path);
|
| + plugin_list_->RemoveExtraPluginPath(path);
|
| }
|
|
|
| void PluginService::UnregisterInternalPlugin(const FilePath& path) {
|
| - plugin_list()->UnregisterInternalPlugin(path);
|
| + plugin_list_->UnregisterInternalPlugin(path);
|
| }
|
|
|
| void PluginService::SetPluginListForTesting(
|
| @@ -652,9 +666,13 @@
|
| }
|
|
|
| void PluginService::RegisterInternalPlugin(const webkit::WebPluginInfo& info) {
|
| - plugin_list()->RegisterInternalPlugin(info);
|
| + plugin_list_->RegisterInternalPlugin(info);
|
| }
|
|
|
| string16 PluginService::GetPluginGroupName(const std::string& plugin_name) {
|
| - return plugin_list()->GetPluginGroupName(plugin_name);
|
| + return plugin_list_->GetPluginGroupName(plugin_name);
|
| }
|
| +
|
| +webkit::npapi::PluginList* PluginService::GetPluginList() {
|
| + return plugin_list_;
|
| +}
|
|
|