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

Unified Diff: components/content_settings/core/browser/host_content_settings_map.cc

Issue 1605453003: Ensure content settings aren't persisted in the guest profile (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months 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
Index: components/content_settings/core/browser/host_content_settings_map.cc
diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
index 35100454fee7ba4ca79122721f164677a47a97a2..015bd97272633ca5165a1cc751a6b4220abbb52d 100644
--- a/components/content_settings/core/browser/host_content_settings_map.cc
+++ b/components/content_settings/core/browser/host_content_settings_map.cc
@@ -94,25 +94,32 @@ scoped_ptr<base::Value> CoerceSettingInheritedToIncognito(
} // namespace
HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
- bool incognito)
+ bool is_incognito_profile,
+ bool is_guest_profile)
:
#ifndef NDEBUG
used_from_thread_id_(base::PlatformThread::CurrentId()),
#endif
prefs_(prefs),
- is_off_the_record_(incognito) {
+ is_off_the_record_(is_incognito_profile || is_guest_profile) {
+ DCHECK(!(is_incognito_profile && is_guest_profile));
content_settings::ObservableProvider* policy_provider =
new content_settings::PolicyProvider(prefs_);
policy_provider->AddObserver(this);
content_settings_providers_[POLICY_PROVIDER] = policy_provider;
- content_settings::ObservableProvider* pref_provider =
+ content_settings::PrefProvider* pref_provider =
new content_settings::PrefProvider(prefs_, is_off_the_record_);
pref_provider->AddObserver(this);
content_settings_providers_[PREF_PROVIDER] = pref_provider;
+ // This ensures that content settings are cleraed for the guest profile. This
msramek 2016/01/19 13:35:07 nit: cleared
raymes 2016/01/19 23:31:39 Done.
+ // wouldn't be needed except that we used to allow settings to be stored for
+ // the guest profile and so we need to ensure those get cleared.
+ if (is_guest_profile)
+ pref_provider->ClearPrefs();
content_settings::ObservableProvider* default_provider =
- new content_settings::DefaultProvider(prefs_, is_off_the_record_);
+ new content_settings::DefaultProvider(prefs_, is_incognito_profile);
msramek 2016/01/19 13:35:07 This should be |is_off_the_record_| (which will al
raymes 2016/01/19 23:31:39 Ok - that sounds good. I wasn't sure of the better
msramek 2016/01/20 11:01:45 Acknowledged.
default_provider->AddObserver(this);
content_settings_providers_[DEFAULT_PROVIDER] = default_provider;
}

Powered by Google App Engine
This is Rietveld 408576698