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

Unified Diff: chrome/browser/ui/prefs/prefs_tab_helper.cc

Issue 11307005: Improve performance of registering font preferences (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Code review fixes 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..83e840024b4e4a0c6bcfd5e85ca7fd8d63d5c223 100644
--- a/chrome/browser/ui/prefs/prefs_tab_helper.cc
+++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc
@@ -122,13 +122,18 @@ 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) {
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);
+ }
}
}
@@ -468,6 +473,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 +495,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,
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698