| Index: content/browser/plugin_service.cc
|
| diff --git a/content/browser/plugin_service.cc b/content/browser/plugin_service.cc
|
| index 5e0e910656076fa2394cec4f57f871b1f52a079b..b0cbb7f8541d197993ecd71711b38af3b7b4d640 100644
|
| --- a/content/browser/plugin_service.cc
|
| +++ b/content/browser/plugin_service.cc
|
| @@ -113,9 +113,30 @@ PluginService* PluginService::GetInstance() {
|
| }
|
|
|
| PluginService::PluginService()
|
| - : ui_locale_(
|
| + : plugin_list_(NULL),
|
| + ui_locale_(
|
| content::GetContentClient()->browser()->GetApplicationLocale()),
|
| filter_(NULL) {
|
| +}
|
| +
|
| +PluginService::~PluginService() {
|
| +#if defined(OS_WIN)
|
| + // Release the events since they're owned by RegKey, not WaitableEvent.
|
| + hkcu_watcher_.StopWatching();
|
| + hklm_watcher_.StopWatching();
|
| + if (hkcu_event_.get())
|
| + hkcu_event_->Release();
|
| + if (hklm_event_.get())
|
| + hklm_event_->Release();
|
| +#endif
|
| + // Make sure no plugin channel requests have been leaked.
|
| + DCHECK(pending_plugin_clients_.empty());
|
| +}
|
| +
|
| +void PluginService::Init() {
|
| + if (!plugin_list_)
|
| + plugin_list_ = webkit::npapi::PluginList::Singleton();
|
| +
|
| plugin_list()->set_will_load_plugins_callback(
|
| base::Bind(&WillLoadPluginsCallback));
|
|
|
| @@ -140,20 +161,6 @@ PluginService::PluginService()
|
| #endif
|
| }
|
|
|
| -PluginService::~PluginService() {
|
| -#if defined(OS_WIN)
|
| - // Release the events since they're owned by RegKey, not WaitableEvent.
|
| - hkcu_watcher_.StopWatching();
|
| - hklm_watcher_.StopWatching();
|
| - if (hkcu_event_.get())
|
| - hkcu_event_->Release();
|
| - if (hklm_event_.get())
|
| - hklm_event_->Release();
|
| -#endif
|
| - // Make sure no plugin channel requests have been leaked.
|
| - DCHECK(pending_plugin_clients_.empty());
|
| -}
|
| -
|
| void PluginService::StartWatchingPlugins() {
|
| // Start watching for changes in the plugin list. This means watching
|
| // for changes in the Windows registry keys and on both Windows and POSIX
|
| @@ -640,6 +647,11 @@ webkit::npapi::PluginList* PluginService::plugin_list() {
|
| return webkit::npapi::PluginList::Singleton();
|
| }
|
|
|
| +void PluginService::SetPluginListForTesting(
|
| + webkit::npapi::PluginList* plugin_list) {
|
| + plugin_list_ = plugin_list;
|
| +}
|
| +
|
| void PluginService::RegisterInternalPlugin(const webkit::WebPluginInfo& info) {
|
| plugin_list()->RegisterInternalPlugin(info);
|
| }
|
|
|