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

Unified Diff: chrome/browser/ui/tab_contents/tab_contents_wrapper.cc

Issue 7606028: Pass per-script fonts to WebKit settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: revised patch to address sky's comment Created 9 years, 4 months 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/tab_contents/tab_contents_wrapper.cc
diff --git a/chrome/browser/ui/tab_contents/tab_contents_wrapper.cc b/chrome/browser/ui/tab_contents/tab_contents_wrapper.cc
index f1528dbb7bdbec20cd4fe9d7c3e4e6b786189f07..080613249bb31ab8e2ff8ab5ea1889cfe16eec60 100644
--- a/chrome/browser/ui/tab_contents/tab_contents_wrapper.cc
+++ b/chrome/browser/ui/tab_contents/tab_contents_wrapper.cc
@@ -109,6 +109,19 @@ const char* kPrefsToObserve[] = {
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) {
+ for (size_t i = 0; i < prefs::kWebKitScriptsForFontFamilyMapsLength; ++i) {
+ const char* script = prefs::kWebKitScriptsForFontFamilyMaps[i];
+ const char* pref_name =
brettw 2011/08/22 23:23:28 This has the same memory bug I mentioned above.
falken 2011/08/23 12:05:53 Done.
+ base::StringPrintf("%s.%s", map_name, script).c_str();
+ if (!prefs->FindPreference(pref_name))
+ prefs->RegisterStringPref(pref_name, "", PrefService::UNSYNCABLE_PREF);
+ }
+}
+
}
////////////////////////////////////////////////////////////////////////////////
@@ -286,6 +299,62 @@ void TabContentsWrapper::RegisterUserPrefs(PrefService* prefs) {
prefs->RegisterLocalizedStringPref(prefs::kWebKitFantasyFontFamily,
IDS_FANTASY_FONT_FAMILY,
PrefService::UNSYNCABLE_PREF);
+
+#if defined(OS_CHROMEOS)
+ // Register per-script font prefs that have defaults.
brettw 2011/08/22 23:23:28 It's not clear from reading this why this should b
falken 2011/08/23 12:05:53 Done.
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitStandardFontFamilyArabic,
+ IDS_STANDARD_FONT_FAMILY_ARABIC, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitSerifFontFamilyArabic,
+ IDS_SERIF_FONT_FAMILY_ARABIC, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitSansSerifFontFamilyArabic,
+ IDS_SANS_SERIF_FONT_FAMILY_ARABIC, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitStandardFontFamilyJapanese,
+ IDS_STANDARD_FONT_FAMILY_JAPANESE, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitFixedFontFamilyJapanese,
+ IDS_FIXED_FONT_FAMILY_JAPANESE, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitSerifFontFamilyJapanese,
+ IDS_SERIF_FONT_FAMILY_JAPANESE, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitSansSerifFontFamilyJapanese,
+ IDS_SANS_SERIF_FONT_FAMILY_JAPANESE, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitStandardFontFamilyKorean,
+ IDS_STANDARD_FONT_FAMILY_KOREAN, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitFixedFontFamilyKorean,
+ IDS_FIXED_FONT_FAMILY_KOREAN, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitSerifFontFamilyKorean,
+ IDS_SERIF_FONT_FAMILY_KOREAN, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitSansSerifFontFamilyKorean,
+ IDS_SANS_SERIF_FONT_FAMILY_KOREAN, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(
+ prefs::kWebKitStandardFontFamilySimplifiedHan,
+ IDS_STANDARD_FONT_FAMILY_SIMPLIFIED_HAN, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitFixedFontFamilySimplifiedHan,
+ IDS_FIXED_FONT_FAMILY_SIMPLIFIED_HAN, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitSerifFontFamilySimplifiedHan,
+ IDS_SERIF_FONT_FAMILY_SIMPLIFIED_HAN, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(
+ prefs::kWebKitSansSerifFontFamilySimplifiedHan,
+ IDS_SANS_SERIF_FONT_FAMILY_SIMPLIFIED_HAN, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(
+ prefs::kWebKitStandardFontFamilyTraditionalHan,
+ IDS_STANDARD_FONT_FAMILY_TRADITIONAL_HAN, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(
+ prefs::kWebKitFixedFontFamilyTraditionalHan,
+ IDS_FIXED_FONT_FAMILY_TRADITIONAL_HAN, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(
+ prefs::kWebKitSerifFontFamilyTraditionalHan,
+ IDS_SERIF_FONT_FAMILY_TRADITIONAL_HAN, PrefService::UNSYNCABLE_PREF);
+ prefs->RegisterLocalizedStringPref(
+ prefs::kWebKitSansSerifFontFamilyTraditionalHan,
+ IDS_SANS_SERIF_FONT_FAMILY_TRADITIONAL_HAN, PrefService::UNSYNCABLE_PREF);
+#endif
+
+ RegisterFontFamilyMap(prefs, prefs::kWebKitStandardFontFamilyMap);
+ RegisterFontFamilyMap(prefs, prefs::kWebKitFixedFontFamilyMap);
+ RegisterFontFamilyMap(prefs, prefs::kWebKitSerifFontFamilyMap);
+ RegisterFontFamilyMap(prefs, prefs::kWebKitSansSerifFontFamilyMap);
+ RegisterFontFamilyMap(prefs, prefs::kWebKitCursiveFontFamilyMap);
+ RegisterFontFamilyMap(prefs, prefs::kWebKitFantasyFontFamilyMap);
+
prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFontSize,
IDS_DEFAULT_FONT_SIZE,
PrefService::UNSYNCABLE_PREF);

Powered by Google App Engine
This is Rietveld 408576698