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_; |
+} |