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

Side by Side Diff: chrome/browser/ui/prefs/prefs_tab_helper.cc

Issue 10107014: Migrate WebKit "global script" font prefs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review comments Created 8 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/prefs/prefs_tab_helper.h" 5 #include "chrome/browser/ui/prefs/prefs_tab_helper.h"
6 6
7 #include "base/string_util.h" 7 #include "base/string_util.h"
8 #include "base/stringprintf.h" 8 #include "base/stringprintf.h"
9 #include "chrome/browser/browser_process.h" 9 #include "chrome/browser/browser_process.h"
10 #include "chrome/browser/prefs/overlay_user_pref_store.h" 10 #include "chrome/browser/prefs/overlay_user_pref_store.h"
(...skipping 17 matching lines...) Expand all
28 using content::WebContents; 28 using content::WebContents;
29 29
30 namespace { 30 namespace {
31 31
32 static void RegisterFontsAndCharsetPrefs(PrefService* prefs) { 32 static void RegisterFontsAndCharsetPrefs(PrefService* prefs) {
33 WebPreferences pref_defaults; 33 WebPreferences pref_defaults;
34 34
35 prefs->RegisterLocalizedStringPref(prefs::kDefaultCharset, 35 prefs->RegisterLocalizedStringPref(prefs::kDefaultCharset,
36 IDS_DEFAULT_ENCODING, 36 IDS_DEFAULT_ENCODING,
37 PrefService::SYNCABLE_PREF); 37 PrefService::SYNCABLE_PREF);
38 prefs->RegisterLocalizedStringPref(prefs::kWebKitStandardFontFamily,
39 IDS_STANDARD_FONT_FAMILY,
40 PrefService::UNSYNCABLE_PREF);
41 prefs->RegisterLocalizedStringPref(prefs::kWebKitFixedFontFamily,
42 IDS_FIXED_FONT_FAMILY,
43 PrefService::UNSYNCABLE_PREF);
44 prefs->RegisterLocalizedStringPref(prefs::kWebKitSerifFontFamily,
45 IDS_SERIF_FONT_FAMILY,
46 PrefService::UNSYNCABLE_PREF);
47 prefs->RegisterLocalizedStringPref(prefs::kWebKitSansSerifFontFamily,
48 IDS_SANS_SERIF_FONT_FAMILY,
49 PrefService::UNSYNCABLE_PREF);
50 prefs->RegisterLocalizedStringPref(prefs::kWebKitCursiveFontFamily,
51 IDS_CURSIVE_FONT_FAMILY,
52 PrefService::UNSYNCABLE_PREF);
53 prefs->RegisterLocalizedStringPref(prefs::kWebKitFantasyFontFamily,
54 IDS_FANTASY_FONT_FAMILY,
55 PrefService::UNSYNCABLE_PREF);
56 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFontSize, 38 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFontSize,
57 IDS_DEFAULT_FONT_SIZE, 39 IDS_DEFAULT_FONT_SIZE,
58 PrefService::UNSYNCABLE_PREF); 40 PrefService::UNSYNCABLE_PREF);
59 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFixedFontSize, 41 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFixedFontSize,
60 IDS_DEFAULT_FIXED_FONT_SIZE, 42 IDS_DEFAULT_FIXED_FONT_SIZE,
61 PrefService::UNSYNCABLE_PREF); 43 PrefService::UNSYNCABLE_PREF);
62 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumFontSize, 44 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumFontSize,
63 IDS_MINIMUM_FONT_SIZE, 45 IDS_MINIMUM_FONT_SIZE,
64 PrefService::UNSYNCABLE_PREF); 46 PrefService::UNSYNCABLE_PREF);
65 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumLogicalFontSize, 47 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumLogicalFontSize,
66 IDS_MINIMUM_LOGICAL_FONT_SIZE, 48 IDS_MINIMUM_LOGICAL_FONT_SIZE,
67 PrefService::UNSYNCABLE_PREF); 49 PrefService::UNSYNCABLE_PREF);
50
51 // These are only registered to be used in migration.
52 prefs->RegisterLocalizedStringPref(prefs::kWebKitOldStandardFontFamily,
53 IDS_STANDARD_FONT_FAMILY,
54 PrefService::UNSYNCABLE_PREF);
55 prefs->RegisterLocalizedStringPref(prefs::kWebKitOldFixedFontFamily,
56 IDS_FIXED_FONT_FAMILY,
57 PrefService::UNSYNCABLE_PREF);
58 prefs->RegisterLocalizedStringPref(prefs::kWebKitOldSerifFontFamily,
59 IDS_SERIF_FONT_FAMILY,
60 PrefService::UNSYNCABLE_PREF);
61 prefs->RegisterLocalizedStringPref(prefs::kWebKitOldSansSerifFontFamily,
62 IDS_SANS_SERIF_FONT_FAMILY,
63 PrefService::UNSYNCABLE_PREF);
64 prefs->RegisterLocalizedStringPref(prefs::kWebKitOldCursiveFontFamily,
65 IDS_CURSIVE_FONT_FAMILY,
66 PrefService::UNSYNCABLE_PREF);
67 prefs->RegisterLocalizedStringPref(prefs::kWebKitOldFantasyFontFamily,
68 IDS_FANTASY_FONT_FAMILY,
69 PrefService::UNSYNCABLE_PREF);
70 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalStandardFontFamily,
71 IDS_STANDARD_FONT_FAMILY,
72 PrefService::UNSYNCABLE_PREF);
73 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalFixedFontFamily,
74 IDS_FIXED_FONT_FAMILY,
75 PrefService::UNSYNCABLE_PREF);
76 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalSerifFontFamily,
77 IDS_SERIF_FONT_FAMILY,
78 PrefService::UNSYNCABLE_PREF);
79 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalSansSerifFontFamily,
80 IDS_SANS_SERIF_FONT_FAMILY,
81 PrefService::UNSYNCABLE_PREF);
82 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalCursiveFontFamily,
83 IDS_CURSIVE_FONT_FAMILY,
84 PrefService::UNSYNCABLE_PREF);
85 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalFantasyFontFamily,
86 IDS_FANTASY_FONT_FAMILY,
87 PrefService::UNSYNCABLE_PREF);
68 } 88 }
69 89
70 // The list of prefs we want to observe. 90 // The list of prefs we want to observe.
71 const char* kPrefsToObserve[] = { 91 const char* kPrefsToObserve[] = {
72 prefs::kDefaultZoomLevel, 92 prefs::kDefaultZoomLevel,
73 prefs::kGlobalDefaultCharset, 93 prefs::kGlobalDefaultCharset,
74 prefs::kEnableReferrers, 94 prefs::kEnableReferrers,
75 prefs::kWebKitAllowDisplayingInsecureContent, 95 prefs::kWebKitAllowDisplayingInsecureContent,
76 prefs::kWebKitAllowRunningInsecureContent, 96 prefs::kWebKitAllowRunningInsecureContent,
77 prefs::kWebKitGlobalCursiveFontFamily,
78 prefs::kWebKitGlobalDefaultFixedFontSize, 97 prefs::kWebKitGlobalDefaultFixedFontSize,
79 prefs::kWebKitGlobalDefaultFontSize, 98 prefs::kWebKitGlobalDefaultFontSize,
80 prefs::kWebKitGlobalFantasyFontFamily,
81 prefs::kWebKitGlobalFixedFontFamily,
82 prefs::kWebKitGlobalJavascriptEnabled, 99 prefs::kWebKitGlobalJavascriptEnabled,
83 prefs::kWebKitJavaEnabled, 100 prefs::kWebKitJavaEnabled,
84 prefs::kWebKitGlobalLoadsImagesAutomatically, 101 prefs::kWebKitGlobalLoadsImagesAutomatically,
85 prefs::kWebKitGlobalMinimumFontSize, 102 prefs::kWebKitGlobalMinimumFontSize,
86 prefs::kWebKitGlobalMinimumLogicalFontSize, 103 prefs::kWebKitGlobalMinimumLogicalFontSize,
87 prefs::kWebKitGlobalPluginsEnabled, 104 prefs::kWebKitGlobalPluginsEnabled,
88 prefs::kWebKitGlobalSansSerifFontFamily,
89 prefs::kWebKitGlobalSerifFontFamily,
90 prefs::kWebKitGlobalStandardFontFamily,
91 prefs::kWebkitTabsToLinks, 105 prefs::kWebkitTabsToLinks,
92 prefs::kWebKitUsesUniversalDetector 106 prefs::kWebKitUsesUniversalDetector
93 }; 107 };
94 108
95 const int kPrefsToObserveLength = arraysize(kPrefsToObserve); 109 const int kPrefsToObserveLength = arraysize(kPrefsToObserve);
96 110
97 // Registers a preference under the path |map_name| for each script used for 111 // Registers a preference under the path |map_name| for each script used for
98 // per-script font prefs. For example, if |map_name| is "fonts.serif", then 112 // per-script font prefs. For example, if |map_name| is "fonts.serif", then
99 // "fonts.serif.Arab", "fonts.serif.Hang", etc. are registered. 113 // "fonts.serif.Arab", "fonts.serif.Hang", etc. are registered.
100 void RegisterFontFamilyMap(PrefService* prefs, const char* map_name) { 114 void RegisterFontFamilyMap(PrefService* prefs, const char* map_name) {
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 // causes a warning due to comparison of unsigned expression < 0. 249 // causes a warning due to comparison of unsigned expression < 0.
236 const size_t kPerScriptFontDefaultsLength = arraysize(kPerScriptFontDefaults); 250 const size_t kPerScriptFontDefaultsLength = arraysize(kPerScriptFontDefaults);
237 #endif 251 #endif
238 252
239 const struct { 253 const struct {
240 const char* from; 254 const char* from;
241 const char* to; 255 const char* to;
242 } kPrefNamesToMigrate[] = { 256 } kPrefNamesToMigrate[] = {
243 { prefs::kDefaultCharset, 257 { prefs::kDefaultCharset,
244 prefs::kGlobalDefaultCharset }, 258 prefs::kGlobalDefaultCharset },
245 { prefs::kWebKitCursiveFontFamily,
246 prefs::kWebKitGlobalCursiveFontFamily },
247 { prefs::kWebKitDefaultFixedFontSize, 259 { prefs::kWebKitDefaultFixedFontSize,
248 prefs::kWebKitGlobalDefaultFixedFontSize }, 260 prefs::kWebKitGlobalDefaultFixedFontSize },
249 { prefs::kWebKitDefaultFontSize, 261 { prefs::kWebKitDefaultFontSize,
250 prefs::kWebKitGlobalDefaultFontSize }, 262 prefs::kWebKitGlobalDefaultFontSize },
251 { prefs::kWebKitFantasyFontFamily,
252 prefs::kWebKitGlobalFantasyFontFamily },
253 { prefs::kWebKitFixedFontFamily,
254 prefs::kWebKitGlobalFixedFontFamily },
255 { prefs::kWebKitMinimumFontSize, 263 { prefs::kWebKitMinimumFontSize,
256 prefs::kWebKitGlobalMinimumFontSize }, 264 prefs::kWebKitGlobalMinimumFontSize },
257 { prefs::kWebKitMinimumLogicalFontSize, 265 { prefs::kWebKitMinimumLogicalFontSize,
258 prefs::kWebKitGlobalMinimumLogicalFontSize }, 266 prefs::kWebKitGlobalMinimumLogicalFontSize },
259 { prefs::kWebKitSansSerifFontFamily, 267
260 prefs::kWebKitGlobalSansSerifFontFamily }, 268 // Migrate old-style "standard_font_family" font prefs to
261 { prefs::kWebKitSerifFontFamily, 269 // "fonts.standard.Zyyy". These prefs will exist if the migration to global
Peter Kasting 2012/05/11 22:01:06 Nit: Should you explain "Zyyy" here? Maybe "to 'f
falken 2012/05/14 09:08:23 I added some more explanation.
262 prefs::kWebKitGlobalSerifFontFamily }, 270 // prefs (for the per-tab pref mechanism, which has since been removed)
263 { prefs::kWebKitStandardFontFamily, 271 // never occurred.
264 prefs::kWebKitGlobalStandardFontFamily }, 272 { prefs::kWebKitOldCursiveFontFamily,
273 prefs::kWebKitCursiveFontFamily },
274 { prefs::kWebKitOldFantasyFontFamily,
275 prefs::kWebKitFantasyFontFamily },
276 { prefs::kWebKitOldFixedFontFamily,
277 prefs::kWebKitFixedFontFamily },
278 { prefs::kWebKitOldSansSerifFontFamily,
279 prefs::kWebKitSansSerifFontFamily },
280 { prefs::kWebKitOldSerifFontFamily,
281 prefs::kWebKitSerifFontFamily },
282 { prefs::kWebKitOldStandardFontFamily,
283 prefs::kWebKitStandardFontFamily },
284
285 // Migrate "global" prefs. These will exist if the migration to global prefs
286 // (for the per-tab pref mechanism, which has since been removed) occurred.
287 { prefs::kWebKitGlobalCursiveFontFamily,
288 prefs::kWebKitCursiveFontFamily },
289 { prefs::kWebKitGlobalFantasyFontFamily,
290 prefs::kWebKitFantasyFontFamily },
291 { prefs::kWebKitGlobalFixedFontFamily,
292 prefs::kWebKitFixedFontFamily },
293 { prefs::kWebKitGlobalSansSerifFontFamily,
294 prefs::kWebKitSansSerifFontFamily },
295 { prefs::kWebKitGlobalSerifFontFamily,
296 prefs::kWebKitSerifFontFamily },
297 { prefs::kWebKitGlobalStandardFontFamily,
298 prefs::kWebKitStandardFontFamily }
265 }; 299 };
266 300
267 const int kPrefsToMigrateLength = ARRAYSIZE_UNSAFE(kPrefNamesToMigrate); 301 const int kPrefsToMigrateLength = ARRAYSIZE_UNSAFE(kPrefNamesToMigrate);
268 302
269 static void MigratePreferences(PrefService* prefs) { 303 static void MigratePreferences(PrefService* prefs) {
270 RegisterFontsAndCharsetPrefs(prefs); 304 RegisterFontsAndCharsetPrefs(prefs);
271 for (int i = 0; i < kPrefsToMigrateLength; ++i) { 305 for (int i = 0; i < kPrefsToMigrateLength; ++i) {
272 const PrefService::Preference *pref = 306 const PrefService::Preference *pref =
273 prefs->FindPreference(kPrefNamesToMigrate[i].from); 307 prefs->FindPreference(kPrefNamesToMigrate[i].from);
274 if (!pref) continue; 308 if (!pref) continue;
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 PrefService::SYNCABLE_PREF); 411 PrefService::SYNCABLE_PREF);
378 #else 412 #else
379 // Not used in OSX. 413 // Not used in OSX.
380 prefs->RegisterLocalizedStringPref(prefs::kAcceptLanguages, 414 prefs->RegisterLocalizedStringPref(prefs::kAcceptLanguages,
381 IDS_ACCEPT_LANGUAGES, 415 IDS_ACCEPT_LANGUAGES,
382 PrefService::UNSYNCABLE_PREF); 416 PrefService::UNSYNCABLE_PREF);
383 #endif 417 #endif
384 prefs->RegisterLocalizedStringPref(prefs::kGlobalDefaultCharset, 418 prefs->RegisterLocalizedStringPref(prefs::kGlobalDefaultCharset,
385 IDS_DEFAULT_ENCODING, 419 IDS_DEFAULT_ENCODING,
386 PrefService::SYNCABLE_PREF); 420 PrefService::SYNCABLE_PREF);
387 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalStandardFontFamily, 421 prefs->RegisterLocalizedStringPref(prefs::kWebKitStandardFontFamily,
388 IDS_STANDARD_FONT_FAMILY, 422 IDS_STANDARD_FONT_FAMILY,
389 PrefService::UNSYNCABLE_PREF); 423 PrefService::UNSYNCABLE_PREF);
390 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalFixedFontFamily, 424 prefs->RegisterLocalizedStringPref(prefs::kWebKitFixedFontFamily,
391 IDS_FIXED_FONT_FAMILY, 425 IDS_FIXED_FONT_FAMILY,
392 PrefService::UNSYNCABLE_PREF); 426 PrefService::UNSYNCABLE_PREF);
393 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalSerifFontFamily, 427 prefs->RegisterLocalizedStringPref(prefs::kWebKitSerifFontFamily,
394 IDS_SERIF_FONT_FAMILY, 428 IDS_SERIF_FONT_FAMILY,
395 PrefService::UNSYNCABLE_PREF); 429 PrefService::UNSYNCABLE_PREF);
396 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalSansSerifFontFamily, 430 prefs->RegisterLocalizedStringPref(prefs::kWebKitSansSerifFontFamily,
397 IDS_SANS_SERIF_FONT_FAMILY, 431 IDS_SANS_SERIF_FONT_FAMILY,
398 PrefService::UNSYNCABLE_PREF); 432 PrefService::UNSYNCABLE_PREF);
399 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalCursiveFontFamily, 433 prefs->RegisterLocalizedStringPref(prefs::kWebKitCursiveFontFamily,
400 IDS_CURSIVE_FONT_FAMILY, 434 IDS_CURSIVE_FONT_FAMILY,
401 PrefService::UNSYNCABLE_PREF); 435 PrefService::UNSYNCABLE_PREF);
402 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalFantasyFontFamily, 436 prefs->RegisterLocalizedStringPref(prefs::kWebKitFantasyFontFamily,
403 IDS_FANTASY_FONT_FAMILY, 437 IDS_FANTASY_FONT_FAMILY,
404 PrefService::UNSYNCABLE_PREF); 438 PrefService::UNSYNCABLE_PREF);
405 439
406 // Register per-script font prefs that have defaults. 440 // Register per-script font prefs that have defaults.
407 #if defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) 441 #if defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN)
408 // As explained by its definition, kPerScriptFontDefaultsLength is only 442 // As explained by its definition, kPerScriptFontDefaultsLength is only
409 // defined for platforms where it would be non-zero. 443 // defined for platforms where it would be non-zero.
410 std::string locale = g_browser_process->GetApplicationLocale(); 444 std::string locale = g_browser_process->GetApplicationLocale();
411 for (size_t i = 0; i < kPerScriptFontDefaultsLength; ++i) { 445 for (size_t i = 0; i < kPerScriptFontDefaultsLength; ++i) {
412 const PerScriptFontDefault& pref = kPerScriptFontDefaults[i]; 446 const PerScriptFontDefault& pref = kPerScriptFontDefaults[i];
413 // Suppress default per-script font when the script matches the browser's 447 // Suppress default per-script font when the script matches the browser's
414 // locale. Otherwise, the default would override the user's preferences 448 // locale. Otherwise, the default would override the user's preferences
415 // when viewing pages in their native language. This can be removed when 449 // when viewing pages in their native language.
416 // per-script fonts are added to Preferences UI.
Peter Kasting 2012/05/11 22:01:06 So, this can never be removed now?
falken 2012/05/14 09:08:23 The original idea was for per-script fonts to be p
Peter Kasting 2012/05/14 18:18:32 Perhaps you could write some comments about this?
417 if (!StartsWithASCII(locale, pref.native_locale, false)) { 450 if (!StartsWithASCII(locale, pref.native_locale, false)) {
418 prefs->RegisterLocalizedStringPref(pref.pref_name, 451 prefs->RegisterLocalizedStringPref(pref.pref_name,
419 pref.resource_id, 452 pref.resource_id,
420 PrefService::UNSYNCABLE_PREF); 453 PrefService::UNSYNCABLE_PREF);
421 } 454 }
422 } 455 }
423 #endif 456 #endif
424 457
425 // Register the rest of the per-script font prefs. 458 // Register the rest of the per-script font prefs.
426 RegisterFontFamilyMap(prefs, prefs::kWebKitStandardFontFamilyMap); 459 RegisterFontFamilyMap(prefs, prefs::kWebKitStandardFontFamilyMap);
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 531
499 void PrefsTabHelper::UpdateRendererPreferences() { 532 void PrefsTabHelper::UpdateRendererPreferences() {
500 renderer_preferences_util::UpdateFromSystemSettings( 533 renderer_preferences_util::UpdateFromSystemSettings(
501 web_contents_->GetMutableRendererPrefs(), GetProfile()); 534 web_contents_->GetMutableRendererPrefs(), GetProfile());
502 web_contents_->GetRenderViewHost()->SyncRendererPrefs(); 535 web_contents_->GetRenderViewHost()->SyncRendererPrefs();
503 } 536 }
504 537
505 Profile* PrefsTabHelper::GetProfile() { 538 Profile* PrefsTabHelper::GetProfile() {
506 return Profile::FromBrowserContext(web_contents_->GetBrowserContext()); 539 return Profile::FromBrowserContext(web_contents_->GetBrowserContext());
507 } 540 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698