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

Unified Diff: chrome/browser/content_settings/host_content_settings_map.cc

Issue 6542048: Add content_settings::PolicyProvider and a set of new policies to managed content settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: " Created 9 years, 10 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: chrome/browser/content_settings/host_content_settings_map.cc
diff --git a/chrome/browser/content_settings/host_content_settings_map.cc b/chrome/browser/content_settings/host_content_settings_map.cc
index ab89ac8c1ef1e9ccb652c15c309871868b1ddf78..b477c8a33a45fd3b9e1935cc9645b21dad34cab9 100644
--- a/chrome/browser/content_settings/host_content_settings_map.cc
+++ b/chrome/browser/content_settings/host_content_settings_map.cc
@@ -100,8 +100,10 @@ HostContentSettingsMap::HostContentSettingsMap(Profile* profile)
// The order in which the content settings providers are created is critical,
// as providers that are further up in the list (i.e. added earlier) override
// providers further down.
- content_settings_providers_.push_back(ProviderPtr(
- new content_settings::PrefProvider(profile)));
+ content_settings_providers_.push_back(
+ make_linked_ptr(new content_settings::PolicyProvider(profile)));
+ content_settings_providers_.push_back(
+ make_linked_ptr(new content_settings::PrefProvider(profile)));
pref_change_registrar_.Init(prefs);
pref_change_registrar_.Add(prefs::kBlockThirdPartyCookies, this);
@@ -124,6 +126,7 @@ void HostContentSettingsMap::RegisterUserPrefs(PrefService* prefs) {
content_settings::PrefDefaultProvider::RegisterUserPrefs(prefs);
content_settings::PolicyDefaultProvider::RegisterUserPrefs(prefs);
content_settings::PrefProvider::RegisterUserPrefs(prefs);
+ content_settings::PolicyProvider::RegisterUserPrefs(prefs);
}
ContentSetting HostContentSettingsMap::GetDefaultContentSetting(
@@ -151,10 +154,8 @@ ContentSetting HostContentSettingsMap::GetContentSetting(
ContentSetting setting = GetNonDefaultContentSetting(url,
content_type,
resource_identifier);
- if (setting == CONTENT_SETTING_DEFAULT ||
- IsDefaultContentSettingManaged(content_type)) {
+ if (setting == CONTENT_SETTING_DEFAULT)
return GetDefaultContentSetting(content_type);
- }
return setting;
}
@@ -173,8 +174,9 @@ ContentSetting HostContentSettingsMap::GetNonDefaultContentSetting(
++provider) {
provided_setting = (*provider)->GetContentSetting(
url, url, content_type, resource_identifier);
- if (provided_setting != CONTENT_SETTING_DEFAULT)
- break;
+ bool isManaged = (*provider)->ContentSettingsTypeIsManaged(content_type);
+ if (provided_setting != CONTENT_SETTING_DEFAULT || isManaged)
+ return provided_setting;
}
return provided_setting;
}
@@ -188,9 +190,8 @@ ContentSettings HostContentSettingsMap::GetContentSettings(
for (int j = 0; j < CONTENT_SETTINGS_NUM_TYPES; ++j) {
// A managed default content setting has the highest priority and hence
// will overwrite any previously set value.
- if ((output.settings[j] == CONTENT_SETTING_DEFAULT &&
- j != CONTENT_SETTINGS_TYPE_PLUGINS) ||
- IsDefaultContentSettingManaged(ContentSettingsType(j))) {
+ if (output.settings[j] == CONTENT_SETTING_DEFAULT &&
+ j != CONTENT_SETTINGS_TYPE_PLUGINS) {
output.settings[j] = GetDefaultContentSetting(ContentSettingsType(j));
}
}
@@ -225,8 +226,14 @@ void HostContentSettingsMap::GetSettingsForOneType(
++provider) {
// TODO(markusheintz): Only the rules that are applied should be collected.
// Merge rules.
+ // TODO(markusheintz): GetAllContentSettingsRules should maybe not clear the
+ // passed vector in case rule sets are just unified.
+ Rules rules;
(*provider)->GetAllContentSettingsRules(
- content_type, resource_identifier, &content_settings_rules);
+ content_type, resource_identifier, &rules);
+ content_settings_rules.insert(content_settings_rules.end(),
+ rules.begin(),
+ rules.end());
}
// convert Rules to SettingsForOneType

Powered by Google App Engine
This is Rietveld 408576698