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

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: patch to commit 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 f5519eaebe46a34f4c4f21f01130140efb5200b3..da4c5d6b02ac822af44de0c3d987018bd27d1c75 100644
--- a/chrome/browser/ui/tab_contents/tab_contents_wrapper.cc
+++ b/chrome/browser/ui/tab_contents/tab_contents_wrapper.cc
@@ -109,8 +109,21 @@ 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];
+ 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))
+ prefs->RegisterStringPref(pref_name, "", PrefService::UNSYNCABLE_PREF);
+ }
}
+} // namespace
+
////////////////////////////////////////////////////////////////////////////////
// TabContentsWrapper, public:
@@ -292,6 +305,66 @@ void TabContentsWrapper::RegisterUserPrefs(PrefService* prefs) {
prefs->RegisterLocalizedStringPref(prefs::kWebKitFantasyFontFamily,
IDS_FANTASY_FONT_FAMILY,
PrefService::UNSYNCABLE_PREF);
+
+ // Register per-script font prefs that have defaults. Currently defaults are
+ // defined only for some scripts and only on Chrome OS to begin with (it is
+ // the easiest since we readily know what fonts are available there).
+ // TODO(falken): add defaults for all platforms and for scripts that should
+ // have defaults.
+#if defined(OS_CHROMEOS)
+ 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