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

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

Issue 1873343002: [Policy] HostContentSettingsMap: Add AreUserExceptionsAllowedForType() and tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add DCHECK in AreUserExceptionsAllowedForType(). Created 4 years, 8 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
« no previous file with comments | « components/content_settings/core/browser/host_content_settings_map.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 978aff41c2b478be224d5ca13d801825741151ce..138152a8b685da54f90ac6fc6690ff360b4bf053 100644
--- a/components/content_settings/core/browser/host_content_settings_map.cc
+++ b/components/content_settings/core/browser/host_content_settings_map.cc
@@ -147,20 +147,22 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
prefs_(prefs),
is_off_the_record_(is_incognito_profile || is_guest_profile) {
DCHECK(!(is_incognito_profile && is_guest_profile));
- content_settings::ObservableProvider* policy_provider =
+
+ content_settings::PolicyProvider* policy_provider =
new content_settings::PolicyProvider(prefs_);
- policy_provider->AddObserver(this);
content_settings_providers_[POLICY_PROVIDER] = policy_provider;
+ policy_provider->AddObserver(this);
- content_settings::PrefProvider* pref_provider =
+ pref_provider_ =
new content_settings::PrefProvider(prefs_, is_off_the_record_);
- pref_provider->AddObserver(this);
- content_settings_providers_[PREF_PROVIDER] = pref_provider;
+ content_settings_providers_[PREF_PROVIDER] = pref_provider_;
+ pref_provider_->AddObserver(this);
+
// This ensures that content settings are cleared for the guest profile. This
// 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();
+ pref_provider_->ClearPrefs();
content_settings::ObservableProvider* default_provider =
new content_settings::DefaultProvider(prefs_, is_off_the_record_);
@@ -219,9 +221,10 @@ ContentSetting HostContentSettingsMap::GetDefaultContentSettingFromProvider(
return CONTENT_SETTING_DEFAULT;
}
-ContentSetting HostContentSettingsMap::GetDefaultContentSetting(
+ContentSetting HostContentSettingsMap::GetDefaultContentSettingInternal(
ContentSettingsType content_type,
- std::string* provider_id) const {
+ ProviderType* provider_type) const {
+ DCHECK(provider_type);
UsedContentSettingsProviders();
// Iterate through the list of providers and return the first non-NULL value
@@ -241,8 +244,7 @@ ContentSetting HostContentSettingsMap::GetDefaultContentSetting(
.get());
}
if (default_setting != CONTENT_SETTING_DEFAULT) {
- if (provider_id)
- *provider_id = kProviderNamesSourceMap[provider->first].provider_name;
+ *provider_type = provider->first;
return default_setting;
}
}
@@ -250,6 +252,26 @@ ContentSetting HostContentSettingsMap::GetDefaultContentSetting(
return CONTENT_SETTING_DEFAULT;
}
+ContentSetting HostContentSettingsMap::GetDefaultContentSetting(
+ ContentSettingsType content_type,
+ std::string* provider_id) const {
+ ProviderType provider_type = NUM_PROVIDER_TYPES;
+ ContentSetting content_setting =
+ GetDefaultContentSettingInternal(content_type, &provider_type);
+ if (content_setting != CONTENT_SETTING_DEFAULT && provider_id)
+ *provider_id = kProviderNamesSourceMap[provider_type].provider_name;
+ return content_setting;
+}
+
+bool HostContentSettingsMap::AreUserExceptionsAllowedForType(
+ ContentSettingsType content_type) const {
+ ProviderType default_provider_type = NUM_PROVIDER_TYPES;
+ ContentSetting content_setting =
+ GetDefaultContentSettingInternal(content_type, &default_provider_type);
+ DCHECK_NE(CONTENT_SETTING_DEFAULT, content_setting);
+ return default_provider_type >= PREF_PROVIDER;
+}
+
ContentSetting HostContentSettingsMap::GetContentSetting(
const GURL& primary_url,
const GURL& secondary_url,
@@ -520,7 +542,7 @@ void HostContentSettingsMap::UpdateLastUsageByPattern(
ContentSettingsType content_type) {
UsedContentSettingsProviders();
- GetPrefProvider()->UpdateLastUsage(
+ pref_provider_->UpdateLastUsage(
primary_pattern, secondary_pattern, content_type);
}
@@ -540,7 +562,7 @@ base::Time HostContentSettingsMap::GetLastUsageByPattern(
ContentSettingsType content_type) {
UsedContentSettingsProviders();
- return GetPrefProvider()->GetLastUsage(
+ return pref_provider_->GetLastUsage(
primary_pattern, secondary_pattern, content_type);
}
@@ -561,7 +583,7 @@ void HostContentSettingsMap::SetPrefClockForTesting(
scoped_ptr<base::Clock> clock) {
UsedContentSettingsProviders();
- GetPrefProvider()->SetClockForTesting(std::move(clock));
+ pref_provider_->SetClockForTesting(std::move(clock));
}
void HostContentSettingsMap::ClearSettingsForOneType(
@@ -726,11 +748,6 @@ HostContentSettingsMap::GetProviderTypeFromSource(const std::string& source) {
return DEFAULT_PROVIDER;
}
-content_settings::PrefProvider* HostContentSettingsMap::GetPrefProvider() {
- return static_cast<content_settings::PrefProvider*>(
- content_settings_providers_[PREF_PROVIDER]);
-}
-
scoped_ptr<base::Value> HostContentSettingsMap::GetWebsiteSettingInternal(
const GURL& primary_url,
const GURL& secondary_url,
« no previous file with comments | « components/content_settings/core/browser/host_content_settings_map.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698