From 6c16475940a16572e1ecd093b96f6ad1e282725a Mon Sep 17 00:00:00 2001 From: "battre@chromium.org" Date: Wed, 12 Mar 2014 00:29:15 +0000 Subject: Limit scope of settings API configuration and proxy permission The proxy API permission gave an extension super power: It gained complete incognito permission. This was introduced in r210766 and is reverted here. The reason for r210766 was that a proxy setting for regular mode was propagated into incognito mode. This propagation was based on the assumption that incognito mode inherits most settings from regular mode but has caused lots of confusion and several bug reports. With this CL, extensions can only affect settings of incognito mode if they have incognito permission. BUG=346125,290423 Review URL: https://codereview.chromium.org/184043024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256362 0039d316-1c4b-4281-b951-d872f2087c98 --- extensions/browser/extension_prefs.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'extensions/browser/extension_prefs.cc') diff --git a/extensions/browser/extension_prefs.cc b/extensions/browser/extension_prefs.cc index 8c26aa3..aaab4cc 100644 --- a/extensions/browser/extension_prefs.cc +++ b/extensions/browser/extension_prefs.cc @@ -1036,6 +1036,7 @@ void ExtensionPrefs::SetIsIncognitoEnabled(const std::string& extension_id, bool enabled) { UpdateExtensionPref(extension_id, kPrefIncognitoEnabled, new base::FundamentalValue(enabled)); + extension_pref_value_map_->SetExtensionIncognitoState(extension_id, enabled); } bool ExtensionPrefs::AllowFileAccess(const std::string& extension_id) const { @@ -1901,9 +1902,10 @@ void ExtensionPrefs::FinishExtensionInfoPrefs( if (extension_dict->GetInteger(kPrefState, &initial_state)) { is_enabled = initial_state == Extension::ENABLED; } + bool is_incognito_enabled = IsIncognitoEnabled(extension_id); - extension_pref_value_map_->RegisterExtension(extension_id, install_time, - is_enabled); + extension_pref_value_map_->RegisterExtension( + extension_id, install_time, is_enabled, is_incognito_enabled); content_settings_store_->RegisterExtension(extension_id, install_time, is_enabled); } -- cgit v1.1