Chromium Code Reviews| Index: chrome/browser/ui/prefs/prefs_tab_helper.cc |
| diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/prefs/prefs_tab_helper.cc |
| index be339111b623669143356a90281109fac67bd5d3..1d13e71988a7fa33bfe6c88d75b804390ed8757d 100644 |
| --- a/chrome/browser/ui/prefs/prefs_tab_helper.cc |
| +++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc |
| @@ -97,10 +97,7 @@ void RegisterPrefsToMigrate(PrefService* prefs) { |
| // The list of prefs we want to observe. |
| const char* kPrefsToObserve[] = { |
| - prefs::kDefaultZoomLevel, |
| prefs::kDefaultCharset, |
| - prefs::kEnableReferrers, |
| - prefs::kEnableDoNotTrack, |
| prefs::kWebKitAllowDisplayingInsecureContent, |
| prefs::kWebKitAllowRunningInsecureContent, |
| prefs::kWebKitDefaultFixedFontSize, |
| @@ -140,9 +137,10 @@ void RegisterFontFamilyMap(PrefService* prefs, |
| } |
| // Registers |obs| to observe per-script font prefs under the path |map_name|. |
| -void RegisterFontFamilyMapObserver(PrefChangeRegistrar* registrar, |
| - const char* map_name, |
| - PrefObserver* obs) { |
| +void RegisterFontFamilyMapObserver( |
| + PrefChangeRegistrar* registrar, |
| + const char* map_name, |
| + const PrefChangeRegistrar::NamedChangeCallback& obs) { |
| for (size_t i = 0; i < prefs::kWebKitScriptsForFontFamilyMapsLength; ++i) { |
| const char* script = prefs::kWebKitScriptsForFontFamilyMaps[i]; |
| std::string pref_name = base::StringPrintf("%s.%s", map_name, script); |
| @@ -385,23 +383,38 @@ PrefsTabHelper::PrefsTabHelper(WebContents* contents) |
| PrefService* prefs = GetProfile()->GetPrefs(); |
| pref_change_registrar_.Init(prefs); |
| if (prefs) { |
| + base::Closure renderer_callback = base::Bind( |
| + &PrefsTabHelper::UpdateRendererPreferences, base::Unretained(this)); |
| + pref_change_registrar_.Add(prefs::kDefaultZoomLevel, renderer_callback); |
| + pref_change_registrar_.Add(prefs::kEnableDoNotTrack, renderer_callback); |
| + pref_change_registrar_.Add(prefs::kEnableReferrers, renderer_callback); |
| + |
| + PrefChangeRegistrar::NamedChangeCallback webkit_callback = base::Bind( |
| + &PrefsTabHelper::OnWebKitPreferenceChanged, base::Unretained(this)); |
| for (int i = 0; i < kPrefsToObserveLength; ++i) |
| - pref_change_registrar_.Add(kPrefsToObserve[i], this); |
| + pref_change_registrar_.Add(kPrefsToObserve[i], webkit_callback); |
| RegisterFontFamilyMapObserver(&pref_change_registrar_, |
| - prefs::kWebKitStandardFontFamilyMap, this); |
| + prefs::kWebKitStandardFontFamilyMap, |
| + webkit_callback); |
| RegisterFontFamilyMapObserver(&pref_change_registrar_, |
| - prefs::kWebKitFixedFontFamilyMap, this); |
| + prefs::kWebKitFixedFontFamilyMap, |
| + webkit_callback); |
| RegisterFontFamilyMapObserver(&pref_change_registrar_, |
| - prefs::kWebKitSerifFontFamilyMap, this); |
| + prefs::kWebKitSerifFontFamilyMap, |
| + webkit_callback); |
| RegisterFontFamilyMapObserver(&pref_change_registrar_, |
| - prefs::kWebKitSansSerifFontFamilyMap, this); |
| + prefs::kWebKitSansSerifFontFamilyMap, |
| + webkit_callback); |
| RegisterFontFamilyMapObserver(&pref_change_registrar_, |
| - prefs::kWebKitCursiveFontFamilyMap, this); |
| + prefs::kWebKitCursiveFontFamilyMap, |
| + webkit_callback); |
| RegisterFontFamilyMapObserver(&pref_change_registrar_, |
| - prefs::kWebKitFantasyFontFamilyMap, this); |
| + prefs::kWebKitFantasyFontFamilyMap, |
| + webkit_callback); |
| RegisterFontFamilyMapObserver(&pref_change_registrar_, |
| - prefs::kWebKitPictographFontFamilyMap, this); |
| + prefs::kWebKitPictographFontFamilyMap, |
| + webkit_callback); |
| } |
| renderer_preferences_util::UpdateFromSystemSettings( |
| @@ -585,16 +598,11 @@ void PrefsTabHelper::Observe(int type, |
| } |
| } |
| -void PrefsTabHelper::OnPreferenceChanged(PrefServiceBase* service, |
| - const std::string& pref_name_in) { |
| - DCHECK_EQ(GetProfile()->GetPrefs(), service); |
| +void PrefsTabHelper::OnWebKitPreferenceChanged( |
| + const std::string& pref_name_in) { |
| if (pref_name_in == prefs::kDefaultCharset || |
| StartsWithASCII(pref_name_in, "webkit.webprefs.", true)) { |
|
Mattias Nissler (ping if slow)
2012/11/15 14:56:22
I would even go as far as dropping this check and
|
| OnWebPrefChanged(pref_name_in); |
| - } else if (pref_name_in == prefs::kDefaultZoomLevel || |
| - pref_name_in == prefs::kEnableReferrers || |
| - pref_name_in == prefs::kEnableDoNotTrack) { |
| - UpdateRendererPreferences(); |
| } else { |
| NOTREACHED() << "unexpected pref change notification" << pref_name_in; |
| } |