Index: webkit/plugins/npapi/plugin_list.cc |
diff --git a/webkit/plugins/npapi/plugin_list.cc b/webkit/plugins/npapi/plugin_list.cc |
index 45160fcaa32578073940d6873064738c0ac6f147..a7f6dd44829629eda5c2a71fe1a9e72e6517074f 100644 |
--- a/webkit/plugins/npapi/plugin_list.cc |
+++ b/webkit/plugins/npapi/plugin_list.cc |
@@ -230,7 +230,6 @@ void PluginList::RegisterInternalPlugin(const FilePath& filename, |
plugin.info.name = ASCIIToUTF16(name); |
plugin.info.version = ASCIIToUTF16("1"); |
plugin.info.desc = ASCIIToUTF16(description); |
- plugin.info.enabled = webkit::WebPluginInfo::USER_ENABLED_POLICY_UNMANAGED; |
webkit::WebPluginMimeType mime_type; |
mime_type.mime_type = mime_type_str; |
@@ -408,51 +407,6 @@ void PluginList::LoadPlugins() { |
LoadPluginsInternal(&new_plugin_groups); |
base::AutoLock lock(lock_); |
- // Grab all plugins that were found before to copy enabled statuses. |
- std::vector<webkit::WebPluginInfo> old_plugins; |
- for (size_t i = 0; i < plugin_groups_.size(); ++i) { |
- const std::vector<webkit::WebPluginInfo>& gr_plugins = |
- plugin_groups_[i]->web_plugins_info(); |
- old_plugins.insert(old_plugins.end(), gr_plugins.begin(), gr_plugins.end()); |
- } |
- // Disable all of the plugins and plugin groups that are disabled by policy. |
- for (size_t i = 0; i < new_plugin_groups.size(); ++i) { |
- PluginGroup* group = new_plugin_groups[i]; |
- string16 group_name = group->GetGroupName(); |
- |
- std::vector<webkit::WebPluginInfo>& gr_plugins = |
- group->GetPluginsContainer(); |
- for (size_t j = 0; j < gr_plugins.size(); ++j) { |
- int plugin_found = -1; |
- for (size_t k = 0; k < old_plugins.size(); ++k) { |
- if (gr_plugins[j].path == old_plugins[k].path) { |
- plugin_found = k; |
- break; |
- } |
- } |
- if (plugin_found >= 0) |
- gr_plugins[j].enabled = old_plugins[plugin_found].enabled; |
- // Set the disabled flag of all plugins scheduled for disabling. |
- if (plugins_to_disable_.find(gr_plugins[j].path) != |
- plugins_to_disable_.end()) { |
- group->DisablePlugin(gr_plugins[j].path); |
- } |
- } |
- |
- if (group->IsEmpty()) { |
- new_plugin_groups.erase(new_plugin_groups.begin() + i); |
- --i; |
- continue; |
- } |
- |
- group->EnforceGroupPolicy(); |
- } |
- // We flush the list of prematurely disabled plugins after the load has |
- // finished. If for some reason a plugin reappears on a second load it is |
- // going to be loaded normally. This is only true for non-policy controlled |
- // plugins though. |
- plugins_to_disable_.clear(); |
- |
plugin_groups_.swap(new_plugin_groups); |
} |
@@ -493,7 +447,7 @@ void PluginList::GetPlugins(std::vector<WebPluginInfo>* plugins) { |
base::AutoLock lock(lock_); |
for (size_t i = 0; i < plugin_groups_.size(); ++i) { |
const std::vector<webkit::WebPluginInfo>& gr_plugins = |
- plugin_groups_[i]->web_plugins_info(); |
+ plugin_groups_[i]->web_plugin_infos(); |
plugins->insert(plugins->end(), gr_plugins.begin(), gr_plugins.end()); |
} |
} |
@@ -522,7 +476,7 @@ void PluginList::GetPluginInfoArray( |
// Add in plugins by mime type. |
for (size_t i = 0; i < plugin_groups_.size(); ++i) { |
const std::vector<webkit::WebPluginInfo>& plugins = |
- plugin_groups_[i]->web_plugins_info(); |
+ plugin_groups_[i]->web_plugin_infos(); |
for (size_t i = 0; i < plugins.size(); ++i) { |
if (SupportsType(plugins[i], mime_type, allow_wildcard)) { |
FilePath path = plugins[i].path; |
@@ -544,7 +498,7 @@ void PluginList::GetPluginInfoArray( |
std::string actual_mime_type; |
for (size_t i = 0; i < plugin_groups_.size(); ++i) { |
const std::vector<webkit::WebPluginInfo>& plugins = |
- plugin_groups_[i]->web_plugins_info(); |
+ plugin_groups_[i]->web_plugin_infos(); |
for (size_t i = 0; i < plugins.size(); ++i) { |
if (SupportsExtension(plugins[i], extension, &actual_mime_type)) { |
FilePath path = plugins[i].path; |
@@ -569,9 +523,9 @@ void PluginList::GetPluginInfoArray( |
if (plugin_groups_[i]->identifier().compare( |
kDefaultPluginLibraryName) == 0) { |
#endif |
- DCHECK_NE(0U, plugin_groups_[i]->web_plugins_info().size()); |
+ DCHECK_NE(0U, plugin_groups_[i]->web_plugin_infos().size()); |
const webkit::WebPluginInfo& default_info = |
- plugin_groups_[i]->web_plugins_info()[0]; |
+ plugin_groups_[i]->web_plugin_infos()[0]; |
if (SupportsType(default_info, mime_type, allow_wildcard)) { |
info->push_back(default_info); |
if (actual_mime_types) |
@@ -587,7 +541,7 @@ bool PluginList::GetPluginInfoByPath(const FilePath& plugin_path, |
base::AutoLock lock(lock_); |
for (size_t i = 0; i < plugin_groups_.size(); ++i) { |
const std::vector<webkit::WebPluginInfo>& plugins = |
- plugin_groups_[i]->web_plugins_info(); |
+ plugin_groups_[i]->web_plugin_infos(); |
for (size_t i = 0; i < plugins.size(); ++i) { |
if (plugins[i].path == plugin_path) { |
*info = plugins[i]; |
@@ -614,10 +568,10 @@ void PluginList::GetPluginGroups( |
} |
} |
-const PluginGroup* PluginList::GetPluginGroup( |
+PluginGroup* PluginList::GetPluginGroup( |
const webkit::WebPluginInfo& web_plugin_info) { |
base::AutoLock lock(lock_); |
- return AddToPluginGroups(web_plugin_info, &plugin_groups_); |
+ return new PluginGroup(*AddToPluginGroups(web_plugin_info, &plugin_groups_)); |
} |
string16 PluginList::GetPluginGroupName(const std::string& identifier) { |
@@ -670,60 +624,9 @@ PluginGroup* PluginList::AddToPluginGroups( |
plugin_groups->push_back(group); |
} |
group->AddPlugin(web_plugin_info); |
- // If group is scheduled for disabling do that now and remove it from the |
- // list. |
- if (groups_to_disable_.erase(group->GetGroupName())) |
- group->EnableGroup(false); |
return group; |
} |
-bool PluginList::EnablePlugin(const FilePath& filename) { |
- base::AutoLock lock(lock_); |
- for (size_t i = 0; i < plugin_groups_.size(); ++i) { |
- if (plugin_groups_[i]->ContainsPlugin(filename)) |
- return plugin_groups_[i]->EnablePlugin(filename); |
- } |
- // Non existing plugin is being enabled. Check if it has been disabled before |
- // and remove it. |
- return (plugins_to_disable_.erase(filename) != 0); |
-} |
- |
-bool PluginList::DisablePlugin(const FilePath& filename) { |
- base::AutoLock lock(lock_); |
- for (size_t i = 0; i < plugin_groups_.size(); ++i) { |
- if (plugin_groups_[i]->ContainsPlugin(filename)) |
- return plugin_groups_[i]->DisablePlugin(filename); |
- } |
- // Non existing plugin is being disabled. Queue the plugin so that on the next |
- // load plugins call they will be disabled. |
- plugins_to_disable_.insert(filename); |
- return true; |
-} |
- |
-bool PluginList::EnableGroup(bool enable, const string16& group_name) { |
- base::AutoLock lock(lock_); |
- PluginGroup* group = NULL; |
- for (size_t i = 0; i < plugin_groups_.size(); ++i) { |
- if (!plugin_groups_[i]->IsEmpty() && |
- plugin_groups_[i]->GetGroupName().find(group_name) != string16::npos) { |
- group = plugin_groups_[i]; |
- break; |
- } |
- } |
- if (!group) { |
- // Non existing group is being enabled. Queue the group so that on the next |
- // load plugins call they will be disabled. |
- if (!enable) { |
- groups_to_disable_.insert(group_name); |
- return true; |
- } else { |
- return (groups_to_disable_.erase(group_name) != 0); |
- } |
- } |
- |
- return group->EnableGroup(enable); |
-} |
- |
bool PluginList::SupportsType(const webkit::WebPluginInfo& plugin, |
const std::string& mime_type, |
bool allow_wildcard) { |