| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/content_settings/content_settings_policy_provider.h" | 5 #include "chrome/browser/content_settings/content_settings_policy_provider.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 prefs->RegisterIntegerPref(prefs::kManagedDefaultMediaStreamSetting, | 167 prefs->RegisterIntegerPref(prefs::kManagedDefaultMediaStreamSetting, |
| 168 CONTENT_SETTING_DEFAULT, | 168 CONTENT_SETTING_DEFAULT, |
| 169 PrefService::UNSYNCABLE_PREF); | 169 PrefService::UNSYNCABLE_PREF); |
| 170 } | 170 } |
| 171 | 171 |
| 172 PolicyProvider::PolicyProvider(PrefService* prefs) : prefs_(prefs) { | 172 PolicyProvider::PolicyProvider(PrefService* prefs) : prefs_(prefs) { |
| 173 ReadManagedDefaultSettings(); | 173 ReadManagedDefaultSettings(); |
| 174 ReadManagedContentSettings(false); | 174 ReadManagedContentSettings(false); |
| 175 | 175 |
| 176 pref_change_registrar_.Init(prefs_); | 176 pref_change_registrar_.Init(prefs_); |
| 177 pref_change_registrar_.Add(prefs::kManagedAutoSelectCertificateForUrls, this); | 177 PrefChangeRegistrar::NamedChangeCallback callback = |
| 178 pref_change_registrar_.Add(prefs::kManagedCookiesBlockedForUrls, this); | 178 base::Bind(&PolicyProvider::OnPreferenceChanged, base::Unretained(this)); |
| 179 pref_change_registrar_.Add(prefs::kManagedCookiesAllowedForUrls, this); | 179 pref_change_registrar_.Add( |
| 180 pref_change_registrar_.Add(prefs::kManagedCookiesSessionOnlyForUrls, this); | 180 prefs::kManagedAutoSelectCertificateForUrls, callback); |
| 181 pref_change_registrar_.Add(prefs::kManagedImagesBlockedForUrls, this); | 181 pref_change_registrar_.Add(prefs::kManagedCookiesBlockedForUrls, callback); |
| 182 pref_change_registrar_.Add(prefs::kManagedImagesAllowedForUrls, this); | 182 pref_change_registrar_.Add(prefs::kManagedCookiesAllowedForUrls, callback); |
| 183 pref_change_registrar_.Add(prefs::kManagedJavaScriptBlockedForUrls, this); | 183 pref_change_registrar_.Add( |
| 184 pref_change_registrar_.Add(prefs::kManagedJavaScriptAllowedForUrls, this); | 184 prefs::kManagedCookiesSessionOnlyForUrls, callback); |
| 185 pref_change_registrar_.Add(prefs::kManagedPluginsBlockedForUrls, this); | 185 pref_change_registrar_.Add(prefs::kManagedImagesBlockedForUrls, callback); |
| 186 pref_change_registrar_.Add(prefs::kManagedPluginsAllowedForUrls, this); | 186 pref_change_registrar_.Add(prefs::kManagedImagesAllowedForUrls, callback); |
| 187 pref_change_registrar_.Add(prefs::kManagedPopupsBlockedForUrls, this); | 187 pref_change_registrar_.Add(prefs::kManagedJavaScriptBlockedForUrls, callback); |
| 188 pref_change_registrar_.Add(prefs::kManagedPopupsAllowedForUrls, this); | 188 pref_change_registrar_.Add(prefs::kManagedJavaScriptAllowedForUrls, callback); |
| 189 pref_change_registrar_.Add(prefs::kManagedNotificationsAllowedForUrls, this); | 189 pref_change_registrar_.Add(prefs::kManagedPluginsBlockedForUrls, callback); |
| 190 pref_change_registrar_.Add(prefs::kManagedNotificationsBlockedForUrls, this); | 190 pref_change_registrar_.Add(prefs::kManagedPluginsAllowedForUrls, callback); |
| 191 pref_change_registrar_.Add(prefs::kManagedPopupsBlockedForUrls, callback); |
| 192 pref_change_registrar_.Add(prefs::kManagedPopupsAllowedForUrls, callback); |
| 193 pref_change_registrar_.Add( |
| 194 prefs::kManagedNotificationsAllowedForUrls, callback); |
| 195 pref_change_registrar_.Add( |
| 196 prefs::kManagedNotificationsBlockedForUrls, callback); |
| 191 // The following preferences are only used to indicate if a | 197 // The following preferences are only used to indicate if a |
| 192 // default content setting is managed and to hold the managed default setting | 198 // default content setting is managed and to hold the managed default setting |
| 193 // value. If the value for any of the following perferences is set then the | 199 // value. If the value for any of the following perferences is set then the |
| 194 // corresponding default content setting is managed. These preferences exist | 200 // corresponding default content setting is managed. These preferences exist |
| 195 // in parallel to the preference default content settings. If a | 201 // in parallel to the preference default content settings. If a |
| 196 // default content settings type is managed any user defined excpetions | 202 // default content settings type is managed any user defined excpetions |
| 197 // (patterns) for this type are ignored. | 203 // (patterns) for this type are ignored. |
| 198 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, this); | 204 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, callback); |
| 199 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, this); | 205 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, callback); |
| 200 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, this); | 206 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, callback); |
| 201 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, this); | 207 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, callback); |
| 202 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, this); | 208 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, callback); |
| 203 pref_change_registrar_.Add(prefs::kManagedDefaultGeolocationSetting, this); | 209 pref_change_registrar_.Add( |
| 204 pref_change_registrar_.Add(prefs::kManagedDefaultNotificationsSetting, this); | 210 prefs::kManagedDefaultGeolocationSetting, callback); |
| 205 pref_change_registrar_.Add(prefs::kManagedDefaultMediaStreamSetting, this); | 211 pref_change_registrar_.Add( |
| 212 prefs::kManagedDefaultNotificationsSetting, callback); |
| 213 pref_change_registrar_.Add( |
| 214 prefs::kManagedDefaultMediaStreamSetting, callback); |
| 206 } | 215 } |
| 207 | 216 |
| 208 PolicyProvider::~PolicyProvider() { | 217 PolicyProvider::~PolicyProvider() { |
| 209 DCHECK(!prefs_); | 218 DCHECK(!prefs_); |
| 210 } | 219 } |
| 211 | 220 |
| 212 RuleIterator* PolicyProvider::GetRuleIterator( | 221 RuleIterator* PolicyProvider::GetRuleIterator( |
| 213 ContentSettingsType content_type, | 222 ContentSettingsType content_type, |
| 214 const ResourceIdentifier& resource_identifier, | 223 const ResourceIdentifier& resource_identifier, |
| 215 bool incognito) const { | 224 bool incognito) const { |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 415 | 424 |
| 416 void PolicyProvider::ShutdownOnUIThread() { | 425 void PolicyProvider::ShutdownOnUIThread() { |
| 417 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 426 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 418 RemoveAllObservers(); | 427 RemoveAllObservers(); |
| 419 if (!prefs_) | 428 if (!prefs_) |
| 420 return; | 429 return; |
| 421 pref_change_registrar_.RemoveAll(); | 430 pref_change_registrar_.RemoveAll(); |
| 422 prefs_ = NULL; | 431 prefs_ = NULL; |
| 423 } | 432 } |
| 424 | 433 |
| 425 void PolicyProvider::OnPreferenceChanged(PrefServiceBase* service, | 434 void PolicyProvider::OnPreferenceChanged(const std::string& name) { |
| 426 const std::string& name) { | |
| 427 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 435 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 428 DCHECK_EQ(prefs_, service); | |
| 429 | 436 |
| 430 if (name == prefs::kManagedDefaultCookiesSetting) { | 437 if (name == prefs::kManagedDefaultCookiesSetting) { |
| 431 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES); | 438 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES); |
| 432 } else if (name == prefs::kManagedDefaultImagesSetting) { | 439 } else if (name == prefs::kManagedDefaultImagesSetting) { |
| 433 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_IMAGES); | 440 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_IMAGES); |
| 434 } else if (name == prefs::kManagedDefaultJavaScriptSetting) { | 441 } else if (name == prefs::kManagedDefaultJavaScriptSetting) { |
| 435 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT); | 442 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT); |
| 436 } else if (name == prefs::kManagedDefaultPluginsSetting) { | 443 } else if (name == prefs::kManagedDefaultPluginsSetting) { |
| 437 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS); | 444 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS); |
| 438 } else if (name == prefs::kManagedDefaultPopupsSetting) { | 445 } else if (name == prefs::kManagedDefaultPopupsSetting) { |
| (...skipping 22 matching lines...) Expand all Loading... |
| 461 ReadManagedDefaultSettings(); | 468 ReadManagedDefaultSettings(); |
| 462 } | 469 } |
| 463 | 470 |
| 464 NotifyObservers(ContentSettingsPattern(), | 471 NotifyObservers(ContentSettingsPattern(), |
| 465 ContentSettingsPattern(), | 472 ContentSettingsPattern(), |
| 466 CONTENT_SETTINGS_TYPE_DEFAULT, | 473 CONTENT_SETTINGS_TYPE_DEFAULT, |
| 467 std::string()); | 474 std::string()); |
| 468 } | 475 } |
| 469 | 476 |
| 470 } // namespace content_settings | 477 } // namespace content_settings |
| OLD | NEW |