summaryrefslogtreecommitdiffstats
path: root/chrome/browser/content_settings
diff options
context:
space:
mode:
authorknn <knn@chromium.org>2015-04-17 04:47:14 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-17 11:47:29 +0000
commit6ab822eb229fcf3133e96680f284d899b64da10d (patch)
tree5172655e2d8ad5dc6e27327aa9b587101767d112 /chrome/browser/content_settings
parentb3c8e97d0bef10e7999faf0da12a7edc07ad0977 (diff)
downloadchromium_src-6ab822eb229fcf3133e96680f284d899b64da10d.zip
chromium_src-6ab822eb229fcf3133e96680f284d899b64da10d.tar.gz
chromium_src-6ab822eb229fcf3133e96680f284d899b64da10d.tar.bz2
Re-enable content settings instead of ignoring receipt of no settings in Supervised Provider.
Thus handle Sensitive Site Permissions when the child account graduates. BUG=477998 Review URL: https://codereview.chromium.org/1093813002 Cr-Commit-Position: refs/heads/master@{#325619}
Diffstat (limited to 'chrome/browser/content_settings')
-rw-r--r--chrome/browser/content_settings/content_settings_supervised_provider.cc18
1 files changed, 9 insertions, 9 deletions
diff --git a/chrome/browser/content_settings/content_settings_supervised_provider.cc b/chrome/browser/content_settings/content_settings_supervised_provider.cc
index b01031ca..f6294446 100644
--- a/chrome/browser/content_settings/content_settings_supervised_provider.cc
+++ b/chrome/browser/content_settings/content_settings_supervised_provider.cc
@@ -57,20 +57,20 @@ RuleIterator* SupervisedProvider::GetRuleIterator(
void SupervisedProvider::OnSupervisedSettingsAvailable(
const base::DictionaryValue* settings) {
- if (!settings)
- return;
std::vector<ContentSettingsType> to_notify;
// Entering locked scope to update content settings.
{
base::AutoLock auto_lock(lock_);
- bool new_value, old_value;
for (const auto& entry : kContentSettingsFromSupervisedSettingsMap) {
- if (settings->GetBoolean(entry.setting_name, &new_value)) {
- old_value = !value_map_.IsContentSettingEnabled(entry.content_type);
- if (new_value != old_value) {
- to_notify.push_back(entry.content_type);
- value_map_.SetContentSettingDisabled(entry.content_type, new_value);
- }
+ bool new_value = false;
+ if (settings && settings->HasKey(entry.setting_name)) {
+ bool is_bool = settings->GetBoolean(entry.setting_name, &new_value);
+ DCHECK(is_bool);
+ }
+ bool old_value = !value_map_.IsContentSettingEnabled(entry.content_type);
+ if (new_value != old_value) {
+ to_notify.push_back(entry.content_type);
+ value_map_.SetContentSettingDisabled(entry.content_type, new_value);
}
}
}