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

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

Issue 747013003: Various optimizations to reduce the number of temporary allocations. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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
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 a3323c7ef3274677cdfa8ae29f98982d223b3ec0..ad0d91ce181f42df411addf471fd0ca4bccab050 100644
--- a/chrome/browser/ui/prefs/prefs_tab_helper.cc
+++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc
@@ -129,12 +129,16 @@ ALL_FONT_SCRIPTS(WEBKIT_WEBPREFS_FONTS_STANDARD)
void RegisterFontFamilyMapObserver(
PrefChangeRegistrar* registrar,
const char* map_name,
- const PrefChangeRegistrar::NamedChangeCallback& obs) {
+ const PrefChangeRegistrar::NamedChangeCallback& obs,
+ std::string* pref_name) {
DCHECK(StartsWithASCII(map_name, "webkit.webprefs.", true));
+ DCHECK(pref_name);
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);
- registrar->Add(pref_name.c_str(), obs);
+ pref_name->assign(map_name);
+ pref_name->append(1, '.');
+ pref_name->append(script);
+ registrar->Add(*pref_name, obs);
}
}
@@ -349,27 +353,37 @@ PrefsTabHelper::PrefsTabHelper(WebContents* contents)
pref_change_registrar_.Add(pref_name, webkit_callback);
}
+ std::string pref_name;
+ pref_name.reserve(500);
+
RegisterFontFamilyMapObserver(&pref_change_registrar_,
prefs::kWebKitStandardFontFamilyMap,
- webkit_callback);
+ webkit_callback,
+ &pref_name);
RegisterFontFamilyMapObserver(&pref_change_registrar_,
prefs::kWebKitFixedFontFamilyMap,
- webkit_callback);
+ webkit_callback,
+ &pref_name);
RegisterFontFamilyMapObserver(&pref_change_registrar_,
prefs::kWebKitSerifFontFamilyMap,
- webkit_callback);
+ webkit_callback,
+ &pref_name);
RegisterFontFamilyMapObserver(&pref_change_registrar_,
prefs::kWebKitSansSerifFontFamilyMap,
- webkit_callback);
+ webkit_callback,
+ &pref_name);
RegisterFontFamilyMapObserver(&pref_change_registrar_,
prefs::kWebKitCursiveFontFamilyMap,
- webkit_callback);
+ webkit_callback,
+ &pref_name);
RegisterFontFamilyMapObserver(&pref_change_registrar_,
prefs::kWebKitFantasyFontFamilyMap,
- webkit_callback);
+ webkit_callback,
+ &pref_name);
RegisterFontFamilyMapObserver(&pref_change_registrar_,
prefs::kWebKitPictographFontFamilyMap,
- webkit_callback);
+ webkit_callback,
+ &pref_name);
}
content::RendererPreferences* render_prefs =
@@ -614,7 +628,7 @@ void PrefsTabHelper::OnFontFamilyPrefChanged(const std::string& pref_name) {
&generic_family,
&script)) {
PrefService* prefs = GetProfile()->GetPrefs();
- std::string pref_value = prefs->GetString(pref_name.c_str());
+ std::string pref_value = prefs->GetString(pref_name);
if (pref_value.empty()) {
WebPreferences web_prefs =
web_contents_->GetRenderViewHost()->GetWebkitPreferences();
« chrome/browser/themes/theme_properties.cc ('K') | « chrome/browser/themes/theme_properties.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698