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 903cb9db07a159696e6323e9bb02e5fab2215af4..f7cc7fb0dd16dfd9dd5f0c87ae75e10bff130c54 100644 |
| --- a/chrome/browser/ui/prefs/prefs_tab_helper.cc |
| +++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc |
| @@ -122,12 +122,16 @@ const int kPrefsToObserveLength = arraysize(kPrefsToObserve); |
| // Registers a preference under the path |map_name| for each script used for |
| // per-script font prefs. For example, if |map_name| is "fonts.serif", then |
| // "fonts.serif.Arab", "fonts.serif.Hang", etc. are registered. |
| -void RegisterFontFamilyMap(PrefService* prefs, const char* map_name) { |
| +void RegisterFontFamilyMap(PrefService* prefs, |
| + const char* map_name, |
| + const std::set<std::string> & fonts_with_defaults) { |
|
battre
2012/11/01 14:41:03
nit: no space before &
Anthony Berent
2012/11/01 16:47:49
Done.
|
| for (size_t i = 0; i < prefs::kWebKitScriptsForFontFamilyMapsLength; ++i) { |
| const char* script = prefs::kWebKitScriptsForFontFamilyMaps[i]; |
| std::string pref_name_str = base::StringPrintf("%s.%s", map_name, script); |
| const char* pref_name = pref_name_str.c_str(); |
| - if (!prefs->FindPreference(pref_name)) |
| + if (fonts_with_defaults.find(pref_name) == fonts_with_defaults.end()) |
| + // We haven't already set a default value for this font preference, so set |
| + // an empty string as the default. |
| prefs->RegisterStringPref(pref_name, "", PrefService::UNSYNCABLE_PREF); |
|
falken
2012/11/01 15:26:49
nit: Maybe it's better to put curly braces around
Anthony Berent
2012/11/01 16:47:49
Done.
|
| } |
| } |
| @@ -468,6 +472,7 @@ void PrefsTabHelper::RegisterUserPrefs(PrefService* prefs) { |
| PrefService::SYNCABLE_PREF); |
| // Register font prefs that have defaults. |
| + std::set<std::string> fonts_with_defaults; |
| UScriptCode browser_script = GetScriptOfBrowserLocale(); |
| for (size_t i = 0; i < kFontDefaultsLength; ++i) { |
| const FontDefault& pref = kFontDefaults[i]; |
| @@ -489,17 +494,25 @@ void PrefsTabHelper::RegisterUserPrefs(PrefService* prefs) { |
| prefs->RegisterLocalizedStringPref(pref.pref_name, |
| pref.resource_id, |
| PrefService::UNSYNCABLE_PREF); |
| + fonts_with_defaults.insert(pref.pref_name); |
| } |
| } |
| // Register font prefs that don't have defaults. |
| - RegisterFontFamilyMap(prefs, prefs::kWebKitStandardFontFamilyMap); |
| - RegisterFontFamilyMap(prefs, prefs::kWebKitFixedFontFamilyMap); |
| - RegisterFontFamilyMap(prefs, prefs::kWebKitSerifFontFamilyMap); |
| - RegisterFontFamilyMap(prefs, prefs::kWebKitSansSerifFontFamilyMap); |
| - RegisterFontFamilyMap(prefs, prefs::kWebKitCursiveFontFamilyMap); |
| - RegisterFontFamilyMap(prefs, prefs::kWebKitFantasyFontFamilyMap); |
| - RegisterFontFamilyMap(prefs, prefs::kWebKitPictographFontFamilyMap); |
| + RegisterFontFamilyMap(prefs, prefs::kWebKitStandardFontFamilyMap, |
| + fonts_with_defaults); |
| + RegisterFontFamilyMap(prefs, prefs::kWebKitFixedFontFamilyMap, |
| + fonts_with_defaults); |
| + RegisterFontFamilyMap(prefs, prefs::kWebKitSerifFontFamilyMap, |
| + fonts_with_defaults); |
| + RegisterFontFamilyMap(prefs, prefs::kWebKitSansSerifFontFamilyMap, |
| + fonts_with_defaults); |
| + RegisterFontFamilyMap(prefs, prefs::kWebKitCursiveFontFamilyMap, |
| + fonts_with_defaults); |
| + RegisterFontFamilyMap(prefs, prefs::kWebKitFantasyFontFamilyMap, |
| + fonts_with_defaults); |
| + RegisterFontFamilyMap(prefs, prefs::kWebKitPictographFontFamilyMap, |
| + fonts_with_defaults); |
| prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFontSize, |
| IDS_DEFAULT_FONT_SIZE, |