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

Side by Side Diff: chrome/browser/content_settings/content_settings_policy_provider.cc

Issue 11345008: Remove content::NotificationObserver dependency from most Prefs code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix PrefNotifierImpl Created 8 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 415
416 void PolicyProvider::ShutdownOnUIThread() { 416 void PolicyProvider::ShutdownOnUIThread() {
417 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 417 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
418 RemoveAllObservers(); 418 RemoveAllObservers();
419 if (!prefs_) 419 if (!prefs_)
420 return; 420 return;
421 pref_change_registrar_.RemoveAll(); 421 pref_change_registrar_.RemoveAll();
422 prefs_ = NULL; 422 prefs_ = NULL;
423 } 423 }
424 424
425 void PolicyProvider::Observe(int type, 425 void PolicyProvider::OnPreferenceChanged(PrefServiceBase* service,
426 const content::NotificationSource& source, 426 const std::string& name) {
427 const content::NotificationDetails& details) {
428 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 427 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
429 428
430 if (type == chrome::NOTIFICATION_PREF_CHANGED) { 429 DCHECK_EQ(prefs_, service);
431 DCHECK_EQ(prefs_, content::Source<PrefService>(source).ptr()); 430 if (name == prefs::kManagedDefaultCookiesSetting) {
432 std::string* name = content::Details<std::string>(details).ptr(); 431 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES);
433 if (*name == prefs::kManagedDefaultCookiesSetting) { 432 } else if (name == prefs::kManagedDefaultImagesSetting) {
434 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES); 433 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_IMAGES);
435 } else if (*name == prefs::kManagedDefaultImagesSetting) { 434 } else if (name == prefs::kManagedDefaultJavaScriptSetting) {
436 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_IMAGES); 435 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT);
437 } else if (*name == prefs::kManagedDefaultJavaScriptSetting) { 436 } else if (name == prefs::kManagedDefaultPluginsSetting) {
438 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT); 437 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS);
439 } else if (*name == prefs::kManagedDefaultPluginsSetting) { 438 } else if (name == prefs::kManagedDefaultPopupsSetting) {
440 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS); 439 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_POPUPS);
441 } else if (*name == prefs::kManagedDefaultPopupsSetting) { 440 } else if (name == prefs::kManagedDefaultGeolocationSetting) {
442 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_POPUPS); 441 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION);
443 } else if (*name == prefs::kManagedDefaultGeolocationSetting) { 442 } else if (name == prefs::kManagedDefaultNotificationsSetting) {
444 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION); 443 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
445 } else if (*name == prefs::kManagedDefaultNotificationsSetting) { 444 } else if (name == prefs::kManagedDefaultMediaStreamSetting) {
446 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); 445 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_MEDIASTREAM);
447 } else if (*name == prefs::kManagedDefaultMediaStreamSetting) { 446 } else if (name == prefs::kManagedAutoSelectCertificateForUrls ||
448 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_MEDIASTREAM); 447 name == prefs::kManagedCookiesAllowedForUrls ||
449 } else if (*name == prefs::kManagedAutoSelectCertificateForUrls || 448 name == prefs::kManagedCookiesBlockedForUrls ||
450 *name == prefs::kManagedCookiesAllowedForUrls || 449 name == prefs::kManagedCookiesSessionOnlyForUrls ||
451 *name == prefs::kManagedCookiesBlockedForUrls || 450 name == prefs::kManagedImagesAllowedForUrls ||
452 *name == prefs::kManagedCookiesSessionOnlyForUrls || 451 name == prefs::kManagedImagesBlockedForUrls ||
453 *name == prefs::kManagedImagesAllowedForUrls || 452 name == prefs::kManagedJavaScriptAllowedForUrls ||
454 *name == prefs::kManagedImagesBlockedForUrls || 453 name == prefs::kManagedJavaScriptBlockedForUrls ||
455 *name == prefs::kManagedJavaScriptAllowedForUrls || 454 name == prefs::kManagedPluginsAllowedForUrls ||
456 *name == prefs::kManagedJavaScriptBlockedForUrls || 455 name == prefs::kManagedPluginsBlockedForUrls ||
457 *name == prefs::kManagedPluginsAllowedForUrls || 456 name == prefs::kManagedPopupsAllowedForUrls ||
458 *name == prefs::kManagedPluginsBlockedForUrls || 457 name == prefs::kManagedPopupsBlockedForUrls ||
459 *name == prefs::kManagedPopupsAllowedForUrls || 458 name == prefs::kManagedNotificationsAllowedForUrls ||
460 *name == prefs::kManagedPopupsBlockedForUrls || 459 name == prefs::kManagedNotificationsBlockedForUrls) {
461 *name == prefs::kManagedNotificationsAllowedForUrls || 460 ReadManagedContentSettings(true);
462 *name == prefs::kManagedNotificationsBlockedForUrls) { 461 ReadManagedDefaultSettings();
463 ReadManagedContentSettings(true);
464 ReadManagedDefaultSettings();
465 }
466 } else {
467 NOTREACHED() << "Unexpected notification";
468 return;
469 } 462 }
463
470 NotifyObservers(ContentSettingsPattern(), 464 NotifyObservers(ContentSettingsPattern(),
471 ContentSettingsPattern(), 465 ContentSettingsPattern(),
472 CONTENT_SETTINGS_TYPE_DEFAULT, 466 CONTENT_SETTINGS_TYPE_DEFAULT,
473 std::string()); 467 std::string());
474 } 468 }
475 469
476 } // namespace content_settings 470 } // namespace content_settings
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698