Index: chrome/browser/host_content_settings_map.cc |
diff --git a/chrome/browser/host_content_settings_map.cc b/chrome/browser/host_content_settings_map.cc |
index dc6517cf9d39228765fa2922187924b9fb122c9e..6aac686b3897bdf34c7e7c2d9e50a93cd4d920e3 100644 |
--- a/chrome/browser/host_content_settings_map.cc |
+++ b/chrome/browser/host_content_settings_map.cc |
@@ -796,9 +796,13 @@ void HostContentSettingsMap::ResetToDefaults() { |
AutoLock auto_lock(lock_); |
default_content_settings_ = ContentSettings(); |
ForceDefaultsToBeExplicit(); |
+ // Clear all content settings map except the |
+ // managed_default_content_settings. |
host_content_settings_.clear(); |
off_the_record_settings_.clear(); |
- block_third_party_cookies_ = false; |
+ // Don't reset block third party cookies if they are managed. |
+ if (!IsBlockThirdPartyCookiesManaged()) |
+ block_third_party_cookies_ = false; |
block_nonsandboxed_plugins_ = false; |
} |
@@ -807,6 +811,9 @@ void HostContentSettingsMap::ResetToDefaults() { |
updating_preferences_ = true; |
prefs->ClearPref(prefs::kDefaultContentSettings); |
prefs->ClearPref(prefs::kContentSettingsPatterns); |
+ // If the block third party cookies preference is managed we still must |
+ // clear it in order to restore the default value for later when the |
+ // preference is not managed anymore. |
prefs->ClearPref(prefs::kBlockThirdPartyCookies); |
prefs->ClearPref(prefs::kBlockNonsandboxedPlugins); |
updating_preferences_ = false; |