diff options
author | knn <knn@chromium.org> | 2015-04-17 04:47:14 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-17 11:47:29 +0000 |
commit | 6ab822eb229fcf3133e96680f284d899b64da10d (patch) | |
tree | 5172655e2d8ad5dc6e27327aa9b587101767d112 /chrome/browser/content_settings | |
parent | b3c8e97d0bef10e7999faf0da12a7edc07ad0977 (diff) | |
download | chromium_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.cc | 18 |
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); } } } |