Index: webkit/glue/plugins/plugin_list.cc |
diff --git a/webkit/glue/plugins/plugin_list.cc b/webkit/glue/plugins/plugin_list.cc |
index 60ec567c18d618f8633c02536f77907ac17abcb5..78cf51661ad0b36f52e8d237acba7055f472b1b6 100644 |
--- a/webkit/glue/plugins/plugin_list.cc |
+++ b/webkit/glue/plugins/plugin_list.cc |
@@ -470,7 +470,6 @@ void PluginList::GetPlugins(bool refresh, std::vector<WebPluginInfo>* plugins) { |
void PluginList::GetEnabledPlugins(bool refresh, |
std::vector<WebPluginInfo>* plugins) { |
LoadPlugins(refresh); |
- |
plugins->clear(); |
AutoLock lock(lock_); |
for (std::vector<WebPluginInfo*>::const_iterator it = plugins_.begin(); |
@@ -607,10 +606,12 @@ void PluginList::GetPluginGroups( |
std::vector<PluginGroup>* plugin_groups) { |
if (load_if_necessary) |
LoadPlugins(false); |
+ AutoLock lock(lock_); |
plugin_groups->clear(); |
for (PluginGroup::PluginMap::const_iterator it = plugin_groups_.begin(); |
it != plugin_groups_.end(); ++it) { |
- plugin_groups->push_back(*it->second); |
+ if (!it->second->IsEmpty()) |
+ plugin_groups->push_back(*it->second); |
} |
} |
@@ -641,6 +642,7 @@ void PluginList::AddHardcodedPluginGroups() { |
for (size_t i = 0; i < GetPluginGroupDefinitionsSize(); ++i) { |
PluginGroup* definition_group = PluginGroup::FromPluginGroupDefinition( |
definitions[i]); |
+ PostInitPluginGroup(definition_group); |
std::string identifier = definition_group->identifier(); |
DCHECK(plugin_groups_.find(identifier) == plugin_groups_.end()); |
plugin_groups_.insert(std::make_pair(identifier, definition_group)); |
@@ -657,6 +659,7 @@ PluginGroup* PluginList::AddToPluginGroups( |
} |
if (!group) { |
group = PluginGroup::FromWebPluginInfo(web_plugin_info); |
+ PostInitPluginGroup(group); |
std::string identifier = group->identifier(); |
// If the identifier is not unique, use the full path. This means that we |
// probably won't be able to search for this group by identifier, but at |