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

Side by Side Diff: chrome/browser/ui/prefs/prefs_tab_helper.cc

Issue 11345008: Remove content::NotificationObserver dependency from most Prefs code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge LKGR. 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/ui/prefs/prefs_tab_helper.h" 5 #include "chrome/browser/ui/prefs/prefs_tab_helper.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/prefs/overlay_user_pref_store.h" 9 #include "base/prefs/overlay_user_pref_store.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 std::string pref_name_str = base::StringPrintf("%s.%s", map_name, script); 128 std::string pref_name_str = base::StringPrintf("%s.%s", map_name, script);
129 const char* pref_name = pref_name_str.c_str(); 129 const char* pref_name = pref_name_str.c_str();
130 if (!prefs->FindPreference(pref_name)) 130 if (!prefs->FindPreference(pref_name))
131 prefs->RegisterStringPref(pref_name, "", PrefService::UNSYNCABLE_PREF); 131 prefs->RegisterStringPref(pref_name, "", PrefService::UNSYNCABLE_PREF);
132 } 132 }
133 } 133 }
134 134
135 // Registers |obs| to observe per-script font prefs under the path |map_name|. 135 // Registers |obs| to observe per-script font prefs under the path |map_name|.
136 void RegisterFontFamilyMapObserver(PrefChangeRegistrar* registrar, 136 void RegisterFontFamilyMapObserver(PrefChangeRegistrar* registrar,
137 const char* map_name, 137 const char* map_name,
138 content::NotificationObserver* obs) { 138 PrefObserver* obs) {
139 for (size_t i = 0; i < prefs::kWebKitScriptsForFontFamilyMapsLength; ++i) { 139 for (size_t i = 0; i < prefs::kWebKitScriptsForFontFamilyMapsLength; ++i) {
140 const char* script = prefs::kWebKitScriptsForFontFamilyMaps[i]; 140 const char* script = prefs::kWebKitScriptsForFontFamilyMaps[i];
141 std::string pref_name = base::StringPrintf("%s.%s", map_name, script); 141 std::string pref_name = base::StringPrintf("%s.%s", map_name, script);
142 registrar->Add(pref_name.c_str(), obs); 142 registrar->Add(pref_name.c_str(), obs);
143 } 143 }
144 } 144 }
145 145
146 struct FontDefault { 146 struct FontDefault {
147 const char* pref_name; 147 const char* pref_name;
148 int resource_id; 148 int resource_id;
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 switch (type) { 532 switch (type) {
533 case chrome::NOTIFICATION_USER_STYLE_SHEET_UPDATED: 533 case chrome::NOTIFICATION_USER_STYLE_SHEET_UPDATED:
534 UpdateWebPreferences(); 534 UpdateWebPreferences();
535 break; 535 break;
536 #if defined(OS_POSIX) && !defined(OS_MACOSX) && defined(ENABLE_THEMES) 536 #if defined(OS_POSIX) && !defined(OS_MACOSX) && defined(ENABLE_THEMES)
537 case chrome::NOTIFICATION_BROWSER_THEME_CHANGED: { 537 case chrome::NOTIFICATION_BROWSER_THEME_CHANGED: {
538 UpdateRendererPreferences(); 538 UpdateRendererPreferences();
539 break; 539 break;
540 } 540 }
541 #endif 541 #endif
542 case chrome::NOTIFICATION_PREF_CHANGED: {
543 std::string* pref_name_in = content::Details<std::string>(details).ptr();
544 DCHECK(content::Source<PrefService>(source).ptr() ==
545 GetProfile()->GetPrefs());
546 if (*pref_name_in == prefs::kDefaultCharset ||
547 StartsWithASCII(*pref_name_in, "webkit.webprefs.", true)) {
548 UpdateWebPreferences();
549 } else if (*pref_name_in == prefs::kDefaultZoomLevel ||
550 *pref_name_in == prefs::kEnableReferrers ||
551 *pref_name_in == prefs::kEnableDoNotTrack) {
552 UpdateRendererPreferences();
553 } else {
554 NOTREACHED() << "unexpected pref change notification" << *pref_name_in;
555 }
556 break;
557 }
558 default: 542 default:
559 NOTREACHED(); 543 NOTREACHED();
560 } 544 }
561 } 545 }
562 546
547 void PrefsTabHelper::OnPreferenceChanged(PrefServiceBase* service,
548 const std::string& pref_name_in) {
549 DCHECK_EQ(GetProfile()->GetPrefs(), service);
550 if (pref_name_in == prefs::kDefaultCharset ||
551 StartsWithASCII(pref_name_in, "webkit.webprefs.", true)) {
552 UpdateWebPreferences();
553 } else if (pref_name_in == prefs::kDefaultZoomLevel ||
554 pref_name_in == prefs::kEnableReferrers ||
555 pref_name_in == prefs::kEnableDoNotTrack) {
556 UpdateRendererPreferences();
557 } else {
558 NOTREACHED() << "unexpected pref change notification" << pref_name_in;
559 }
560 }
561
563 void PrefsTabHelper::UpdateWebPreferences() { 562 void PrefsTabHelper::UpdateWebPreferences() {
564 web_contents_->GetRenderViewHost()->UpdateWebkitPreferences( 563 web_contents_->GetRenderViewHost()->UpdateWebkitPreferences(
565 web_contents_->GetRenderViewHost()->GetWebkitPreferences()); 564 web_contents_->GetRenderViewHost()->GetWebkitPreferences());
566 } 565 }
567 566
568 void PrefsTabHelper::UpdateRendererPreferences() { 567 void PrefsTabHelper::UpdateRendererPreferences() {
569 renderer_preferences_util::UpdateFromSystemSettings( 568 renderer_preferences_util::UpdateFromSystemSettings(
570 web_contents_->GetMutableRendererPrefs(), GetProfile()); 569 web_contents_->GetMutableRendererPrefs(), GetProfile());
571 web_contents_->GetRenderViewHost()->SyncRendererPrefs(); 570 web_contents_->GetRenderViewHost()->SyncRendererPrefs();
572 } 571 }
573 572
574 Profile* PrefsTabHelper::GetProfile() { 573 Profile* PrefsTabHelper::GetProfile() {
575 return Profile::FromBrowserContext(web_contents_->GetBrowserContext()); 574 return Profile::FromBrowserContext(web_contents_->GetBrowserContext());
576 } 575 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698