diff options
author | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-07 12:01:33 +0000 |
---|---|---|
committer | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-07 12:01:33 +0000 |
commit | bcd8d711b6c159925e14fb55fadb3d14bfdb37fb (patch) | |
tree | f05ef336e6d73e85c030e98f0cd4d42b7a7c8f51 /webkit/plugins/npapi/plugin_list.cc | |
parent | d7cfd26afd16360eee7062b51cbfd662c0658961 (diff) | |
download | chromium_src-bcd8d711b6c159925e14fb55fadb3d14bfdb37fb.zip chromium_src-bcd8d711b6c159925e14fb55fadb3d14bfdb37fb.tar.gz chromium_src-bcd8d711b6c159925e14fb55fadb3d14bfdb37fb.tar.bz2 |
Correctly match plugins to their definitions.
BUG=71781
TEST=PluginListTest.HardcodedGroups
Review URL: http://codereview.chromium.org/6286081
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73984 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/plugins/npapi/plugin_list.cc')
-rw-r--r-- | webkit/plugins/npapi/plugin_list.cc | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/webkit/plugins/npapi/plugin_list.cc b/webkit/plugins/npapi/plugin_list.cc index 102289d..31172e4 100644 --- a/webkit/plugins/npapi/plugin_list.cc +++ b/webkit/plugins/npapi/plugin_list.cc @@ -327,7 +327,7 @@ PluginList::PluginList() plugins_need_refresh_(false), disable_outdated_plugins_(false) { PlatformInit(); - AddHardcodedPluginGroups(); + AddHardcodedPluginGroups(&plugin_groups_); } void PluginList::LoadPluginsInternal(ScopedVector<PluginGroup>* plugin_groups) { @@ -395,6 +395,7 @@ void PluginList::LoadPlugins(bool refresh) { } ScopedVector<PluginGroup> new_plugin_groups; + AddHardcodedPluginGroups(&new_plugin_groups); // Do the actual loading of the plugins. LoadPluginsInternal(&new_plugin_groups); @@ -691,14 +692,12 @@ std::string PluginList::GetPluginGroupIdentifier( return group->identifier(); } -void PluginList::AddHardcodedPluginGroups() { +void PluginList::AddHardcodedPluginGroups(ScopedVector<PluginGroup>* groups) { base::AutoLock lock(lock_); const PluginGroupDefinition* definitions = GetPluginGroupDefinitions(); - for (size_t i = 0; i < GetPluginGroupDefinitionsSize(); ++i) { - PluginGroup* definition_group = PluginGroup::FromPluginGroupDefinition( - definitions[i]); - plugin_groups_.push_back(definition_group); - } + size_t num_definitions = GetPluginGroupDefinitionsSize(); + for (size_t i = 0; i < num_definitions; ++i) + groups->push_back(PluginGroup::FromPluginGroupDefinition(definitions[i])); } PluginGroup* PluginList::AddToPluginGroups( @@ -731,11 +730,8 @@ PluginGroup* PluginList::AddToPluginGroups( group->AddPlugin(web_plugin_info); // If group is scheduled for disabling do that now and remove it from the // list. - if (groups_to_disable_.find(group->GetGroupName()) != - groups_to_disable_.end()) { - group->EnableGroup(false); - groups_to_disable_.erase(group->GetGroupName()); - } + if (groups_to_disable_.erase(group->GetGroupName())) + group->EnableGroup(false); return group; } @@ -758,7 +754,6 @@ bool PluginList::DisablePlugin(const FilePath& filename) { } // Non existing plugin is being disabled. Queue the plugin so that on the next // load plugins call they will be disabled. - // Check if we already have this one to avoid double inclusion. plugins_to_disable_.insert(filename); return true; } |