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(); |