Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1715)

Unified Diff: chrome/browser/plugins/plugin_prefs.cc

Issue 2518493002: Remove obsolete plugin state handling code. (Closed)
Patch Set: Removed unusued function. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/plugins/plugin_prefs.h ('k') | chrome/browser/plugins/plugin_prefs_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/plugins/plugin_prefs.cc
diff --git a/chrome/browser/plugins/plugin_prefs.cc b/chrome/browser/plugins/plugin_prefs.cc
index b6048e071cd0652e03fcfcca80ce3a2d43069a85..3f8c20c06bc9fdcc0df547aa999e67ff7522c7a5 100644
--- a/chrome/browser/plugins/plugin_prefs.cc
+++ b/chrome/browser/plugins/plugin_prefs.cc
@@ -11,7 +11,6 @@
#include <utility>
#include "base/bind.h"
-#include "base/command_line.h"
#include "base/location.h"
#include "base/metrics/histogram_macros.h"
#include "base/path_service.h"
@@ -32,7 +31,6 @@
#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_content_client.h"
#include "chrome/common/chrome_paths.h"
-#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
#include "components/content_settings/core/common/content_settings.h"
@@ -45,28 +43,11 @@
#include "content/public/common/content_constants.h"
#include "content/public/common/webplugininfo.h"
-#if !defined(DISABLE_NACL)
-#include "components/nacl/common/nacl_constants.h"
-#endif
-
using content::BrowserThread;
using content::PluginService;
namespace {
-bool IsComponentUpdatedPepperFlash(const base::FilePath& plugin) {
- if (plugin.BaseName().value() == chrome::kPepperFlashPluginFilename) {
- base::FilePath component_updated_pepper_flash_dir;
- if (PathService::Get(chrome::DIR_COMPONENT_UPDATED_PEPPER_FLASH_PLUGIN,
- &component_updated_pepper_flash_dir) &&
- component_updated_pepper_flash_dir.IsParent(plugin)) {
- return true;
- }
- }
-
- return false;
-}
-
bool IsPDFViewerPlugin(const base::string16& plugin_name) {
return plugin_name == base::ASCIIToUTF16(ChromeContentClient::kPDFPluginName);
}
@@ -79,41 +60,6 @@ bool IsAdobeFlashPlayerPlugin(const base::string16& plugin_name) {
} // namespace
-PluginPrefs::PluginState::PluginState() {
-}
-
-PluginPrefs::PluginState::~PluginState() {
-}
-
-bool PluginPrefs::PluginState::Get(const base::FilePath& plugin,
- bool* enabled) const {
- base::FilePath key = ConvertMapKey(plugin);
- std::map<base::FilePath, bool>::const_iterator iter = state_.find(key);
- if (iter != state_.end()) {
- *enabled = iter->second;
- return true;
- }
- return false;
-}
-
-void PluginPrefs::PluginState::Set(const base::FilePath& plugin, bool enabled) {
- state_[ConvertMapKey(plugin)] = enabled;
-}
-
-base::FilePath PluginPrefs::PluginState::ConvertMapKey(
- const base::FilePath& plugin) const {
- // Keep the state of component-updated and bundled Pepper Flash in sync.
- if (IsComponentUpdatedPepperFlash(plugin)) {
- base::FilePath bundled_pepper_flash;
- if (PathService::Get(chrome::FILE_PEPPER_FLASH_PLUGIN,
- &bundled_pepper_flash)) {
- return bundled_pepper_flash;
- }
- }
-
- return plugin;
-}
-
// static
scoped_refptr<PluginPrefs> PluginPrefs::GetForProfile(Profile* profile) {
return PluginPrefsFactory::GetPrefsForProfile(profile);
@@ -127,118 +73,6 @@ scoped_refptr<PluginPrefs> PluginPrefs::GetForTestingProfile(
profile, &PluginPrefsFactory::CreateForTestingProfile).get());
}
-void PluginPrefs::EnablePluginGroup(bool enabled,
- const base::string16& group_name) {
- PluginService::GetInstance()->GetPlugins(
- base::Bind(&PluginPrefs::EnablePluginGroupInternal,
- this, enabled, group_name));
-}
-
-void PluginPrefs::EnablePluginGroupInternal(
- bool enabled,
- const base::string16& group_name,
- const std::vector<content::WebPluginInfo>& plugins) {
- base::AutoLock auto_lock(lock_);
- PluginFinder* finder = PluginFinder::GetInstance();
-
- // Set the desired state for the group.
- plugin_group_state_[group_name] = enabled;
-
- // Update the state for all plugins in the group.
- for (size_t i = 0; i < plugins.size(); ++i) {
- std::unique_ptr<PluginMetadata> plugin(
- finder->GetPluginMetadata(plugins[i]));
- if (group_name != plugin->name())
- continue;
- plugin_state_.Set(plugins[i].path, enabled);
- }
-
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&PluginPrefs::OnUpdatePreferences, this, plugins));
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&PluginPrefs::NotifyPluginStatusChanged, this));
-}
-
-void PluginPrefs::EnablePlugin(
- bool enabled, const base::FilePath& path,
- const base::Callback<void(bool)>& callback) {
- PluginFinder* finder = PluginFinder::GetInstance();
- content::WebPluginInfo plugin;
- bool can_enable = true;
- if (PluginService::GetInstance()->GetPluginInfoByPath(path, &plugin)) {
- std::unique_ptr<PluginMetadata> plugin_metadata(
- finder->GetPluginMetadata(plugin));
- PolicyStatus plugin_status = PolicyStatusForPlugin(plugin.name);
- PolicyStatus group_status = PolicyStatusForPlugin(plugin_metadata->name());
- if (enabled) {
- if (plugin_status == POLICY_DISABLED || group_status == POLICY_DISABLED)
- can_enable = false;
- } else {
- if (plugin_status == POLICY_ENABLED || group_status == POLICY_ENABLED)
- can_enable = false;
- }
- } else {
- NOTREACHED();
- }
-
- if (!can_enable) {
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
- base::Bind(callback, false));
- return;
- }
-
- PluginService::GetInstance()->GetPlugins(
- base::Bind(&PluginPrefs::EnablePluginInternal, this,
- enabled, path, finder, callback));
-}
-
-void PluginPrefs::EnablePluginInternal(
- bool enabled,
- const base::FilePath& path,
- PluginFinder* plugin_finder,
- const base::Callback<void(bool)>& callback,
- const std::vector<content::WebPluginInfo>& plugins) {
- {
- // Set the desired state for the plugin.
- base::AutoLock auto_lock(lock_);
- plugin_state_.Set(path, enabled);
- }
-
- base::string16 group_name;
- for (size_t i = 0; i < plugins.size(); ++i) {
- if (plugins[i].path == path) {
- std::unique_ptr<PluginMetadata> plugin_metadata(
- plugin_finder->GetPluginMetadata(plugins[i]));
- // set the group name for this plugin.
- group_name = plugin_metadata->name();
- DCHECK_EQ(enabled, IsPluginEnabled(plugins[i]));
- break;
- }
- }
-
- bool all_disabled = true;
- for (size_t i = 0; i < plugins.size(); ++i) {
- std::unique_ptr<PluginMetadata> plugin_metadata(
- plugin_finder->GetPluginMetadata(plugins[i]));
- DCHECK(!plugin_metadata->name().empty());
- if (group_name == plugin_metadata->name()) {
- all_disabled = all_disabled && !IsPluginEnabled(plugins[i]);
- }
- }
-
- if (!group_name.empty()) {
- // Update the state for the corresponding plugin group.
- base::AutoLock auto_lock(lock_);
- plugin_group_state_[group_name] = !all_disabled;
- }
-
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&PluginPrefs::OnUpdatePreferences, this, plugins));
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&PluginPrefs::NotifyPluginStatusChanged, this));
- callback.Run(true);
-}
-
PluginPrefs::PolicyStatus PluginPrefs::PolicyStatusForPlugin(
const base::string16& name) const {
base::AutoLock auto_lock(lock_);
@@ -247,15 +81,6 @@ PluginPrefs::PolicyStatus PluginPrefs::PolicyStatusForPlugin(
if (IsPDFViewerPlugin(name) && always_open_pdf_externally_)
return POLICY_DISABLED;
- if (IsStringMatchedInSet(name, policy_enabled_plugin_patterns_))
- return POLICY_ENABLED;
-
- if (IsStringMatchedInSet(name, policy_disabled_plugin_patterns_) &&
- !IsStringMatchedInSet(
- name, policy_disabled_plugin_exception_patterns_)) {
- return POLICY_DISABLED;
- }
-
return NO_POLICY;
}
@@ -274,42 +99,10 @@ bool PluginPrefs::IsPluginEnabled(const content::WebPluginInfo& plugin) const {
if (plugin_status == POLICY_DISABLED || group_status == POLICY_DISABLED)
return false;
-#if !defined(DISABLE_NACL)
- // If enabling NaCl, make sure the plugin is also enabled. See bug
- // http://code.google.com/p/chromium/issues/detail?id=81010 for more
- // information.
- // TODO(dspringer): When NaCl is on by default, remove this code.
- if ((plugin.name == base::ASCIIToUTF16(nacl::kNaClPluginName)) &&
- base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kEnableNaCl)) {
- return true;
- }
-#endif
-
- base::AutoLock auto_lock(lock_);
- // Check user preferences for the plugin.
- bool plugin_enabled = false;
- if (plugin_state_.Get(plugin.path, &plugin_enabled))
- return plugin_enabled;
-
- // Check user preferences for the plugin group.
- std::map<base::string16, bool>::const_iterator group_it(
- plugin_group_state_.find(group_name));
- if (group_it != plugin_group_state_.end())
- return group_it->second;
-
// Default to enabled.
return true;
}
-void PluginPrefs::UpdatePatternsAndNotify(std::set<base::string16>* patterns,
- const std::string& pref_name) {
- base::AutoLock auto_lock(lock_);
- ListValueToStringSet(prefs_->GetList(pref_name.c_str()), patterns);
-
- NotifyPluginStatusChanged();
-}
-
void PluginPrefs::UpdatePdfPolicy(const std::string& pref_name) {
base::AutoLock auto_lock(lock_);
always_open_pdf_externally_ =
@@ -318,36 +111,6 @@ void PluginPrefs::UpdatePdfPolicy(const std::string& pref_name) {
NotifyPluginStatusChanged();
}
-/*static*/
-bool PluginPrefs::IsStringMatchedInSet(
- const base::string16& name,
- const std::set<base::string16>& pattern_set) {
- std::set<base::string16>::const_iterator pattern(pattern_set.begin());
- while (pattern != pattern_set.end()) {
- if (base::MatchPattern(name, *pattern))
- return true;
- ++pattern;
- }
-
- return false;
-}
-
-/* static */
-void PluginPrefs::ListValueToStringSet(const base::ListValue* src,
- std::set<base::string16>* dest) {
- DCHECK(src);
- DCHECK(dest);
- dest->clear();
- base::ListValue::const_iterator end(src->end());
- for (base::ListValue::const_iterator current(src->begin());
- current != end; ++current) {
- base::string16 plugin_name;
- if ((*current)->GetAsString(&plugin_name)) {
- dest->insert(plugin_name);
- }
- }
-}
-
void PluginPrefs::SetPrefs(PrefService* prefs) {
prefs_ = prefs;
bool update_internal_dir = false;
@@ -389,9 +152,6 @@ void PluginPrefs::SetPrefs(PrefService* prefs) {
->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS,
CONTENT_SETTING_BLOCK);
}
- // TODO(http://crbug.com/662002): Remove the enabled flag completely.
- enabled = true;
- plugin->SetBoolean("enabled", true);
plugins_migrated = true;
}
@@ -440,34 +200,13 @@ void PluginPrefs::SetPrefs(PrefService* prefs) {
plugin->SetString("path", path);
}
}
-
- plugin_state_.Set(plugin_path, enabled);
}
}
- } else {
- // If the saved plugin list is empty, then the call to UpdatePreferences()
- // below failed in an earlier run, possibly because the user closed the
- // browser too quickly.
-
- // Only want one PDF plugin enabled at a time. See http://crbug.com/50105
- // for background.
- plugin_group_state_[base::ASCIIToUTF16(
- PluginMetadata::kAdobeReaderGroupName)] = false;
}
} // Scoped update of prefs::kPluginsPluginsList.
UMA_HISTOGRAM_BOOLEAN("Plugin.EnabledStatusMigrationDone", plugins_migrated);
- // Build the set of policy enabled/disabled plugin patterns once and cache it.
- // Don't do this in the constructor, there's no profile available there.
- // TODO(http://crbug.com/662002): : Remove the prefs completely.
- ListValueToStringSet(prefs_->GetList(prefs::kPluginsDisabledPlugins),
- &policy_disabled_plugin_patterns_);
- ListValueToStringSet(
- prefs_->GetList(prefs::kPluginsDisabledPluginsExceptions),
- &policy_disabled_plugin_exception_patterns_);
- ListValueToStringSet(prefs_->GetList(prefs::kPluginsEnabledPlugins),
- &policy_enabled_plugin_patterns_);
always_open_pdf_externally_ =
prefs_->GetBoolean(prefs::kPluginsAlwaysOpenPdfExternally);
@@ -477,18 +216,6 @@ void PluginPrefs::SetPrefs(PrefService* prefs) {
// lifetime of |registrar_| (which we also own), we can bind their
// pointer values directly in the callbacks to avoid string-based
// lookups at notification time.
- registrar_.Add(prefs::kPluginsDisabledPlugins,
- base::Bind(&PluginPrefs::UpdatePatternsAndNotify,
- base::Unretained(this),
- &policy_disabled_plugin_patterns_));
- registrar_.Add(prefs::kPluginsDisabledPluginsExceptions,
- base::Bind(&PluginPrefs::UpdatePatternsAndNotify,
- base::Unretained(this),
- &policy_disabled_plugin_exception_patterns_));
- registrar_.Add(prefs::kPluginsEnabledPlugins,
- base::Bind(&PluginPrefs::UpdatePatternsAndNotify,
- base::Unretained(this),
- &policy_enabled_plugin_patterns_));
registrar_.Add(prefs::kPluginsAlwaysOpenPdfExternally,
base::Bind(&PluginPrefs::UpdatePdfPolicy,
base::Unretained(this)));
@@ -509,15 +236,6 @@ PluginPrefs::PluginPrefs() : always_open_pdf_externally_(false),
PluginPrefs::~PluginPrefs() {
}
-void PluginPrefs::SetPolicyEnforcedPluginPatternsForTests(
- const std::set<base::string16>& disabled_patterns,
- const std::set<base::string16>& disabled_exception_patterns,
- const std::set<base::string16>& enabled_patterns) {
- policy_disabled_plugin_patterns_ = disabled_patterns;
- policy_disabled_plugin_exception_patterns_ = disabled_exception_patterns;
- policy_enabled_plugin_patterns_ = enabled_patterns;
-}
-
void PluginPrefs::SetAlwaysOpenPdfExternallyForTests(
bool always_open_pdf_externally) {
always_open_pdf_externally_ = always_open_pdf_externally;
@@ -547,9 +265,6 @@ void PluginPrefs::OnUpdatePreferences(
summary->SetString("path", plugins[i].path.value());
summary->SetString("name", plugins[i].name);
summary->SetString("version", plugins[i].version);
- bool enabled = true;
- plugin_state_.Get(plugins[i].path, &enabled);
- summary->SetBoolean("enabled", enabled);
plugins_list->Append(std::move(summary));
std::unique_ptr<PluginMetadata> plugin_metadata(
@@ -563,12 +278,6 @@ void PluginPrefs::OnUpdatePreferences(
it != group_names.end(); ++it) {
std::unique_ptr<base::DictionaryValue> summary(new base::DictionaryValue());
summary->SetString("name", *it);
- bool enabled = true;
- std::map<base::string16, bool>::iterator gstate_it =
- plugin_group_state_.find(*it);
- if (gstate_it != plugin_group_state_.end())
- enabled = gstate_it->second;
- summary->SetBoolean("enabled", enabled);
plugins_list->Append(std::move(summary));
}
}
« no previous file with comments | « chrome/browser/plugins/plugin_prefs.h ('k') | chrome/browser/plugins/plugin_prefs_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698