diff options
author | battre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-12 00:29:15 +0000 |
---|---|---|
committer | battre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-12 00:29:15 +0000 |
commit | 6c16475940a16572e1ecd093b96f6ad1e282725a (patch) | |
tree | 99a4f01a9b4337f8f93d0e2db9fa989d920c6fa8 /extensions/browser/extension_prefs.cc | |
parent | bad70b5e1cac23b0930d8c3008a9a47b302b6a29 (diff) | |
download | chromium_src-6c16475940a16572e1ecd093b96f6ad1e282725a.zip chromium_src-6c16475940a16572e1ecd093b96f6ad1e282725a.tar.gz chromium_src-6c16475940a16572e1ecd093b96f6ad1e282725a.tar.bz2 |
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
Diffstat (limited to 'extensions/browser/extension_prefs.cc')
-rw-r--r-- | extensions/browser/extension_prefs.cc | 6 |
1 files changed, 4 insertions, 2 deletions
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); } |