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

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

Issue 8879016: Add more per-tab preferences. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix browser_tests Created 9 years 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/stringprintf.h" 7 #include "base/stringprintf.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "base/utf_string_conversions.h"
9 #include "chrome/browser/browser_process.h" 10 #include "chrome/browser/browser_process.h"
10 #include "chrome/browser/prefs/pref_service.h" 11 #include "chrome/browser/prefs/pref_service.h"
11 #include "chrome/browser/profiles/profile.h" 12 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/browser/renderer_preferences_util.h" 13 #include "chrome/browser/renderer_preferences_util.h"
13 #include "chrome/browser/themes/theme_service.h" 14 #include "chrome/browser/themes/theme_service.h"
14 #include "chrome/browser/themes/theme_service_factory.h" 15 #include "chrome/browser/themes/theme_service_factory.h"
15 #include "chrome/browser/ui/constrained_window_tab_helper.h" 16 #include "chrome/browser/ui/constrained_window_tab_helper.h"
16 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" 17 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
17 #include "chrome/common/chrome_notification_types.h" 18 #include "chrome/common/chrome_notification_types.h"
18 #include "chrome/common/pref_names.h" 19 #include "chrome/common/pref_names.h"
19 #include "content/browser/renderer_host/render_view_host.h" 20 #include "content/browser/renderer_host/render_view_host.h"
20 #include "content/public/browser/notification_details.h" 21 #include "content/public/browser/notification_details.h"
21 #include "content/public/browser/notification_service.h" 22 #include "content/public/browser/notification_service.h"
22 #include "grit/locale_settings.h" 23 #include "grit/locale_settings.h"
23 #include "grit/platform_locale_settings.h" 24 #include "grit/platform_locale_settings.h"
24 #include "webkit/glue/webpreferences.h" 25 #include "webkit/glue/webpreferences.h"
25 26
26 namespace { 27 namespace {
27 28
28 const char* kPerTabPrefsToObserve[] = { 29 const char* kPerTabPrefsToObserve[] = {
29 prefs::kWebKitJavascriptEnabled 30 prefs::kDefaultCharset,
31 prefs::kWebKitJavascriptEnabled,
32 prefs::kWebKitJavascriptCanOpenWindowsAutomatically,
33 prefs::kWebKitLoadsImagesAutomatically,
34 prefs::kWebKitPluginsEnabled,
35 prefs::kWebKitCursiveFontFamily,
36 prefs::kWebKitFantasyFontFamily,
37 prefs::kWebKitFixedFontFamily,
38 prefs::kWebKitSansSerifFontFamily,
39 prefs::kWebKitSerifFontFamily,
40 prefs::kWebKitStandardFontFamily,
41 prefs::kWebKitDefaultFontSize,
42 prefs::kWebKitDefaultFixedFontSize,
43 prefs::kWebKitMinimumFontSize,
44 prefs::kWebKitMinimumLogicalFontSize
30 }; 45 };
31 46
32 const int kPerTabPrefsToObserveLength = arraysize(kPerTabPrefsToObserve); 47 const int kPerTabPrefsToObserveLength = arraysize(kPerTabPrefsToObserve);
33 48
34 void RegisterPerTabUserPrefs(PrefService* prefs) { 49 void RegisterPerTabUserPrefs(PrefService* prefs) {
35 WebPreferences pref_defaults; 50 WebPreferences pref_defaults;
36 51
37 prefs->RegisterBooleanPref(prefs::kWebKitJavascriptEnabled, 52 prefs->RegisterBooleanPref(prefs::kWebKitJavascriptEnabled,
38 pref_defaults.javascript_enabled, 53 pref_defaults.javascript_enabled,
39 PrefService::UNSYNCABLE_PREF); 54 PrefService::UNSYNCABLE_PREF);
55 prefs->RegisterBooleanPref(
56 prefs::kWebKitJavascriptCanOpenWindowsAutomatically,
57 true,
58 PrefService::UNSYNCABLE_PREF);
59 prefs->RegisterBooleanPref(prefs::kWebKitLoadsImagesAutomatically,
60 pref_defaults.loads_images_automatically,
61 PrefService::UNSYNCABLE_PREF);
62 prefs->RegisterBooleanPref(prefs::kWebKitPluginsEnabled,
63 pref_defaults.plugins_enabled,
64 PrefService::UNSYNCABLE_PREF);
65 prefs->RegisterLocalizedStringPref(prefs::kDefaultCharset,
66 IDS_DEFAULT_ENCODING,
67 PrefService::SYNCABLE_PREF);
68 prefs->RegisterLocalizedStringPref(prefs::kWebKitStandardFontFamily,
69 IDS_STANDARD_FONT_FAMILY,
70 PrefService::UNSYNCABLE_PREF);
71 prefs->RegisterLocalizedStringPref(prefs::kWebKitFixedFontFamily,
72 IDS_FIXED_FONT_FAMILY,
73 PrefService::UNSYNCABLE_PREF);
74 prefs->RegisterLocalizedStringPref(prefs::kWebKitSerifFontFamily,
75 IDS_SERIF_FONT_FAMILY,
76 PrefService::UNSYNCABLE_PREF);
77 prefs->RegisterLocalizedStringPref(prefs::kWebKitSansSerifFontFamily,
78 IDS_SANS_SERIF_FONT_FAMILY,
79 PrefService::UNSYNCABLE_PREF);
80 prefs->RegisterLocalizedStringPref(prefs::kWebKitCursiveFontFamily,
81 IDS_CURSIVE_FONT_FAMILY,
82 PrefService::UNSYNCABLE_PREF);
83 prefs->RegisterLocalizedStringPref(prefs::kWebKitFantasyFontFamily,
84 IDS_FANTASY_FONT_FAMILY,
85 PrefService::UNSYNCABLE_PREF);
86 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFontSize,
87 IDS_DEFAULT_FONT_SIZE,
88 PrefService::UNSYNCABLE_PREF);
89 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFixedFontSize,
90 IDS_DEFAULT_FIXED_FONT_SIZE,
91 PrefService::UNSYNCABLE_PREF);
92 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumFontSize,
93 IDS_MINIMUM_FONT_SIZE,
94 PrefService::UNSYNCABLE_PREF);
95 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumLogicalFontSize,
96 IDS_MINIMUM_LOGICAL_FONT_SIZE,
97 PrefService::UNSYNCABLE_PREF);
40 } 98 }
41 99
42 // The list of prefs we want to observe. 100 // The list of prefs we want to observe.
43 const char* kPrefsToObserve[] = { 101 const char* kPrefsToObserve[] = {
44 prefs::kDefaultCharset, 102 prefs::kGlobalDefaultCharset,
45 prefs::kEnableReferrers, 103 prefs::kEnableReferrers,
46 prefs::kWebKitAllowDisplayingInsecureContent, 104 prefs::kWebKitAllowDisplayingInsecureContent,
47 prefs::kWebKitAllowRunningInsecureContent, 105 prefs::kWebKitAllowRunningInsecureContent,
48 prefs::kWebKitCursiveFontFamily, 106 prefs::kWebKitGlobalCursiveFontFamily,
49 prefs::kWebKitDefaultFixedFontSize, 107 prefs::kWebKitGlobalDefaultFixedFontSize,
50 prefs::kWebKitDefaultFontSize, 108 prefs::kWebKitGlobalDefaultFontSize,
51 prefs::kWebKitFantasyFontFamily, 109 prefs::kWebKitGlobalFantasyFontFamily,
52 prefs::kWebKitFixedFontFamily, 110 prefs::kWebKitGlobalFixedFontFamily,
53 prefs::kWebKitGlobalJavascriptEnabled, 111 prefs::kWebKitGlobalJavascriptEnabled,
54 prefs::kWebKitJavaEnabled, 112 prefs::kWebKitJavaEnabled,
55 prefs::kWebKitLoadsImagesAutomatically, 113 prefs::kWebKitGlobalLoadsImagesAutomatically,
56 prefs::kWebKitMinimumFontSize, 114 prefs::kWebKitGlobalMinimumFontSize,
57 prefs::kWebKitMinimumLogicalFontSize, 115 prefs::kWebKitGlobalMinimumLogicalFontSize,
58 prefs::kWebKitPluginsEnabled, 116 prefs::kWebKitGlobalPluginsEnabled,
59 prefs::kWebKitSansSerifFontFamily, 117 prefs::kWebKitGlobalSansSerifFontFamily,
60 prefs::kWebKitSerifFontFamily, 118 prefs::kWebKitGlobalSerifFontFamily,
61 prefs::kWebKitStandardFontFamily, 119 prefs::kWebKitGlobalStandardFontFamily,
62 prefs::kWebkitTabsToLinks, 120 prefs::kWebkitTabsToLinks,
63 prefs::kWebKitUsesUniversalDetector 121 prefs::kWebKitUsesUniversalDetector
64 }; 122 };
65 123
66 const int kPrefsToObserveLength = arraysize(kPrefsToObserve); 124 const int kPrefsToObserveLength = arraysize(kPrefsToObserve);
67 125
68 // Registers a preference under the path |map_name| for each script used for 126 // Registers a preference under the path |map_name| for each script used for
69 // per-script font prefs. For example, if |map_name| is "fonts.serif", then 127 // per-script font prefs. For example, if |map_name| is "fonts.serif", then
70 // "fonts.serif.Arab", "fonts.serif.Hang", etc. are registered. 128 // "fonts.serif.Arab", "fonts.serif.Hang", etc. are registered.
71 void RegisterFontFamilyMap(PrefService* prefs, const char* map_name) { 129 void RegisterFontFamilyMap(PrefService* prefs, const char* map_name) {
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 // static 316 // static
259 void PrefsTabHelper::RegisterUserPrefs(PrefService* prefs) { 317 void PrefsTabHelper::RegisterUserPrefs(PrefService* prefs) {
260 WebPreferences pref_defaults; 318 WebPreferences pref_defaults;
261 prefs->RegisterBooleanPref(prefs::kWebKitGlobalJavascriptEnabled, 319 prefs->RegisterBooleanPref(prefs::kWebKitGlobalJavascriptEnabled,
262 pref_defaults.javascript_enabled, 320 pref_defaults.javascript_enabled,
263 PrefService::UNSYNCABLE_PREF); 321 PrefService::UNSYNCABLE_PREF);
264 prefs->RegisterBooleanPref(prefs::kWebKitWebSecurityEnabled, 322 prefs->RegisterBooleanPref(prefs::kWebKitWebSecurityEnabled,
265 pref_defaults.web_security_enabled, 323 pref_defaults.web_security_enabled,
266 PrefService::UNSYNCABLE_PREF); 324 PrefService::UNSYNCABLE_PREF);
267 prefs->RegisterBooleanPref( 325 prefs->RegisterBooleanPref(
268 prefs::kWebKitJavascriptCanOpenWindowsAutomatically, 326 prefs::kWebKitGlobalJavascriptCanOpenWindowsAutomatically,
269 true, 327 true,
270 PrefService::UNSYNCABLE_PREF); 328 PrefService::UNSYNCABLE_PREF);
271 prefs->RegisterBooleanPref(prefs::kWebKitLoadsImagesAutomatically, 329 prefs->RegisterBooleanPref(prefs::kWebKitGlobalLoadsImagesAutomatically,
272 pref_defaults.loads_images_automatically, 330 pref_defaults.loads_images_automatically,
273 PrefService::UNSYNCABLE_PREF); 331 PrefService::UNSYNCABLE_PREF);
274 prefs->RegisterBooleanPref(prefs::kWebKitPluginsEnabled, 332 prefs->RegisterBooleanPref(prefs::kWebKitGlobalPluginsEnabled,
275 pref_defaults.plugins_enabled, 333 pref_defaults.plugins_enabled,
276 PrefService::UNSYNCABLE_PREF); 334 PrefService::UNSYNCABLE_PREF);
277 prefs->RegisterBooleanPref(prefs::kWebKitDomPasteEnabled, 335 prefs->RegisterBooleanPref(prefs::kWebKitDomPasteEnabled,
278 pref_defaults.dom_paste_enabled, 336 pref_defaults.dom_paste_enabled,
279 PrefService::UNSYNCABLE_PREF); 337 PrefService::UNSYNCABLE_PREF);
280 prefs->RegisterBooleanPref(prefs::kWebKitShrinksStandaloneImagesToFit, 338 prefs->RegisterBooleanPref(prefs::kWebKitShrinksStandaloneImagesToFit,
281 pref_defaults.shrinks_standalone_images_to_fit, 339 pref_defaults.shrinks_standalone_images_to_fit,
282 PrefService::UNSYNCABLE_PREF); 340 PrefService::UNSYNCABLE_PREF);
283 prefs->RegisterDictionaryPref(prefs::kWebKitInspectorSettings, 341 prefs->RegisterDictionaryPref(prefs::kWebKitInspectorSettings,
284 PrefService::UNSYNCABLE_PREF); 342 PrefService::UNSYNCABLE_PREF);
(...skipping 16 matching lines...) Expand all
301 #if !defined(OS_MACOSX) 359 #if !defined(OS_MACOSX)
302 prefs->RegisterLocalizedStringPref(prefs::kAcceptLanguages, 360 prefs->RegisterLocalizedStringPref(prefs::kAcceptLanguages,
303 IDS_ACCEPT_LANGUAGES, 361 IDS_ACCEPT_LANGUAGES,
304 PrefService::SYNCABLE_PREF); 362 PrefService::SYNCABLE_PREF);
305 #else 363 #else
306 // Not used in OSX. 364 // Not used in OSX.
307 prefs->RegisterLocalizedStringPref(prefs::kAcceptLanguages, 365 prefs->RegisterLocalizedStringPref(prefs::kAcceptLanguages,
308 IDS_ACCEPT_LANGUAGES, 366 IDS_ACCEPT_LANGUAGES,
309 PrefService::UNSYNCABLE_PREF); 367 PrefService::UNSYNCABLE_PREF);
310 #endif 368 #endif
311 prefs->RegisterLocalizedStringPref(prefs::kDefaultCharset, 369 prefs->RegisterLocalizedStringPref(prefs::kGlobalDefaultCharset,
312 IDS_DEFAULT_ENCODING, 370 IDS_DEFAULT_ENCODING,
313 PrefService::SYNCABLE_PREF); 371 PrefService::SYNCABLE_PREF);
314 prefs->RegisterLocalizedStringPref(prefs::kWebKitStandardFontFamily, 372 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalStandardFontFamily,
315 IDS_STANDARD_FONT_FAMILY, 373 IDS_STANDARD_FONT_FAMILY,
316 PrefService::UNSYNCABLE_PREF); 374 PrefService::UNSYNCABLE_PREF);
317 prefs->RegisterLocalizedStringPref(prefs::kWebKitFixedFontFamily, 375 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalFixedFontFamily,
318 IDS_FIXED_FONT_FAMILY, 376 IDS_FIXED_FONT_FAMILY,
319 PrefService::UNSYNCABLE_PREF); 377 PrefService::UNSYNCABLE_PREF);
320 prefs->RegisterLocalizedStringPref(prefs::kWebKitSerifFontFamily, 378 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalSerifFontFamily,
321 IDS_SERIF_FONT_FAMILY, 379 IDS_SERIF_FONT_FAMILY,
322 PrefService::UNSYNCABLE_PREF); 380 PrefService::UNSYNCABLE_PREF);
323 prefs->RegisterLocalizedStringPref(prefs::kWebKitSansSerifFontFamily, 381 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalSansSerifFontFamily,
324 IDS_SANS_SERIF_FONT_FAMILY, 382 IDS_SANS_SERIF_FONT_FAMILY,
325 PrefService::UNSYNCABLE_PREF); 383 PrefService::UNSYNCABLE_PREF);
326 prefs->RegisterLocalizedStringPref(prefs::kWebKitCursiveFontFamily, 384 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalCursiveFontFamily,
327 IDS_CURSIVE_FONT_FAMILY, 385 IDS_CURSIVE_FONT_FAMILY,
328 PrefService::UNSYNCABLE_PREF); 386 PrefService::UNSYNCABLE_PREF);
329 prefs->RegisterLocalizedStringPref(prefs::kWebKitFantasyFontFamily, 387 prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalFantasyFontFamily,
330 IDS_FANTASY_FONT_FAMILY, 388 IDS_FANTASY_FONT_FAMILY,
331 PrefService::UNSYNCABLE_PREF); 389 PrefService::UNSYNCABLE_PREF);
332 390
333 // Register per-script font prefs that have defaults. 391 // Register per-script font prefs that have defaults.
334 #if defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) 392 #if defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN)
335 // As explained by its definition, kPerScriptFontDefaultsLength is only 393 // As explained by its definition, kPerScriptFontDefaultsLength is only
336 // defined for platforms where it would be non-zero. 394 // defined for platforms where it would be non-zero.
337 std::string locale = g_browser_process->GetApplicationLocale(); 395 std::string locale = g_browser_process->GetApplicationLocale();
338 for (size_t i = 0; i < kPerScriptFontDefaultsLength; ++i) { 396 for (size_t i = 0; i < kPerScriptFontDefaultsLength; ++i) {
339 const PerScriptFontDefault& pref = kPerScriptFontDefaults[i]; 397 const PerScriptFontDefault& pref = kPerScriptFontDefaults[i];
(...skipping 10 matching lines...) Expand all
350 #endif 408 #endif
351 409
352 // Register the rest of the per-script font prefs. 410 // Register the rest of the per-script font prefs.
353 RegisterFontFamilyMap(prefs, prefs::kWebKitStandardFontFamilyMap); 411 RegisterFontFamilyMap(prefs, prefs::kWebKitStandardFontFamilyMap);
354 RegisterFontFamilyMap(prefs, prefs::kWebKitFixedFontFamilyMap); 412 RegisterFontFamilyMap(prefs, prefs::kWebKitFixedFontFamilyMap);
355 RegisterFontFamilyMap(prefs, prefs::kWebKitSerifFontFamilyMap); 413 RegisterFontFamilyMap(prefs, prefs::kWebKitSerifFontFamilyMap);
356 RegisterFontFamilyMap(prefs, prefs::kWebKitSansSerifFontFamilyMap); 414 RegisterFontFamilyMap(prefs, prefs::kWebKitSansSerifFontFamilyMap);
357 RegisterFontFamilyMap(prefs, prefs::kWebKitCursiveFontFamilyMap); 415 RegisterFontFamilyMap(prefs, prefs::kWebKitCursiveFontFamilyMap);
358 RegisterFontFamilyMap(prefs, prefs::kWebKitFantasyFontFamilyMap); 416 RegisterFontFamilyMap(prefs, prefs::kWebKitFantasyFontFamilyMap);
359 417
360 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFontSize, 418 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitGlobalDefaultFontSize,
361 IDS_DEFAULT_FONT_SIZE, 419 IDS_DEFAULT_FONT_SIZE,
362 PrefService::UNSYNCABLE_PREF); 420 PrefService::UNSYNCABLE_PREF);
363 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFixedFontSize, 421 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitGlobalDefaultFixedFontSize,
364 IDS_DEFAULT_FIXED_FONT_SIZE, 422 IDS_DEFAULT_FIXED_FONT_SIZE,
365 PrefService::UNSYNCABLE_PREF); 423 PrefService::UNSYNCABLE_PREF);
366 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumFontSize, 424 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitGlobalMinimumFontSize,
367 IDS_MINIMUM_FONT_SIZE, 425 IDS_MINIMUM_FONT_SIZE,
368 PrefService::UNSYNCABLE_PREF); 426 PrefService::UNSYNCABLE_PREF);
369 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumLogicalFontSize, 427 prefs->RegisterLocalizedIntegerPref(
370 IDS_MINIMUM_LOGICAL_FONT_SIZE, 428 prefs::kWebKitGlobalMinimumLogicalFontSize,
371 PrefService::UNSYNCABLE_PREF); 429 IDS_MINIMUM_LOGICAL_FONT_SIZE,
430 PrefService::UNSYNCABLE_PREF);
372 prefs->RegisterLocalizedBooleanPref(prefs::kWebKitUsesUniversalDetector, 431 prefs->RegisterLocalizedBooleanPref(prefs::kWebKitUsesUniversalDetector,
373 IDS_USES_UNIVERSAL_DETECTOR, 432 IDS_USES_UNIVERSAL_DETECTOR,
374 PrefService::SYNCABLE_PREF); 433 PrefService::SYNCABLE_PREF);
375 prefs->RegisterLocalizedStringPref(prefs::kStaticEncodings, 434 prefs->RegisterLocalizedStringPref(prefs::kStaticEncodings,
376 IDS_STATIC_ENCODING_LIST, 435 IDS_STATIC_ENCODING_LIST,
377 PrefService::UNSYNCABLE_PREF); 436 PrefService::UNSYNCABLE_PREF);
378 prefs->RegisterStringPref(prefs::kRecentlySelectedEncoding, 437 prefs->RegisterStringPref(prefs::kRecentlySelectedEncoding,
379 "", 438 "",
380 PrefService::UNSYNCABLE_PREF); 439 PrefService::UNSYNCABLE_PREF);
381 } 440 }
(...skipping 17 matching lines...) Expand all
399 case chrome::NOTIFICATION_BROWSER_THEME_CHANGED: { 458 case chrome::NOTIFICATION_BROWSER_THEME_CHANGED: {
400 UpdateRendererPreferences(); 459 UpdateRendererPreferences();
401 break; 460 break;
402 } 461 }
403 #endif 462 #endif
404 case chrome::NOTIFICATION_PREF_CHANGED: { 463 case chrome::NOTIFICATION_PREF_CHANGED: {
405 std::string* pref_name_in = content::Details<std::string>(details).ptr(); 464 std::string* pref_name_in = content::Details<std::string>(details).ptr();
406 DCHECK(content::Source<PrefService>(source).ptr() == 465 DCHECK(content::Source<PrefService>(source).ptr() ==
407 wrapper_->profile()->GetPrefs() || 466 wrapper_->profile()->GetPrefs() ||
408 content::Source<PrefService>(source).ptr() == per_tab_prefs_); 467 content::Source<PrefService>(source).ptr() == per_tab_prefs_);
409 if ((*pref_name_in == prefs::kDefaultCharset) || 468 if ((*pref_name_in == prefs::kDefaultCharset ||
469 *pref_name_in == prefs::kGlobalDefaultCharset) ||
410 StartsWithASCII(*pref_name_in, "webkit.webprefs.", true)) { 470 StartsWithASCII(*pref_name_in, "webkit.webprefs.", true)) {
411 UpdateWebPreferences(); 471 UpdateWebPreferences();
412 } else if (*pref_name_in == prefs::kEnableReferrers) { 472 } else if (*pref_name_in == prefs::kEnableReferrers) {
413 UpdateRendererPreferences(); 473 UpdateRendererPreferences();
414 } else { 474 } else {
415 NOTREACHED() << "unexpected pref change notification" << *pref_name_in; 475 NOTREACHED() << "unexpected pref change notification" << *pref_name_in;
416 } 476 }
417 break; 477 break;
418 } 478 }
419 default: 479 default:
420 NOTREACHED(); 480 NOTREACHED();
421 } 481 }
422 } 482 }
423 483
424 void PrefsTabHelper::UpdateWebPreferences() { 484 void PrefsTabHelper::UpdateWebPreferences() {
425 RenderViewHostDelegate* rvhd = tab_contents(); 485 RenderViewHostDelegate* rvhd = tab_contents();
426 WebPreferences prefs = rvhd->GetWebkitPrefs(); 486 WebPreferences prefs = rvhd->GetWebkitPrefs();
427 prefs.javascript_enabled = 487 prefs.javascript_enabled =
428 per_tab_prefs_->GetBoolean(prefs::kWebKitJavascriptEnabled); 488 per_tab_prefs_->GetBoolean(prefs::kWebKitJavascriptEnabled);
489 prefs.javascript_can_open_windows_automatically =
490 per_tab_prefs_->GetBoolean(
491 prefs::kWebKitJavascriptCanOpenWindowsAutomatically);
492 prefs.loads_images_automatically =
493 per_tab_prefs_->GetBoolean(prefs::kWebKitLoadsImagesAutomatically);
494 prefs.plugins_enabled =
495 per_tab_prefs_->GetBoolean(prefs::kWebKitPluginsEnabled);
496 prefs.standard_font_family =
497 UTF8ToUTF16(per_tab_prefs_->GetString(prefs::kWebKitStandardFontFamily));
498 prefs.fixed_font_family =
499 UTF8ToUTF16(per_tab_prefs_->GetString(prefs::kWebKitFixedFontFamily));
500 prefs.serif_font_family =
501 UTF8ToUTF16(per_tab_prefs_->GetString(prefs::kWebKitSerifFontFamily));
502 prefs.sans_serif_font_family =
503 UTF8ToUTF16(per_tab_prefs_->GetString(prefs::kWebKitSansSerifFontFamily));
504 prefs.cursive_font_family =
505 UTF8ToUTF16(per_tab_prefs_->GetString(prefs::kWebKitCursiveFontFamily));
506 prefs.fantasy_font_family =
507 UTF8ToUTF16(per_tab_prefs_->GetString(prefs::kWebKitFantasyFontFamily));
508 prefs.default_font_size =
509 per_tab_prefs_->GetInteger(prefs::kWebKitDefaultFontSize);
510 prefs.default_fixed_font_size =
511 per_tab_prefs_->GetInteger(prefs::kWebKitDefaultFixedFontSize);
512 prefs.minimum_font_size =
513 per_tab_prefs_->GetInteger(prefs::kWebKitMinimumFontSize);
514 prefs.minimum_logical_font_size =
515 per_tab_prefs_->GetInteger(prefs::kWebKitMinimumLogicalFontSize);
516 prefs.default_encoding =
517 per_tab_prefs_->GetString(prefs::kDefaultCharset);
518
429 tab_contents()->render_view_host()->UpdateWebkitPreferences(prefs); 519 tab_contents()->render_view_host()->UpdateWebkitPreferences(prefs);
430 } 520 }
431 521
432 void PrefsTabHelper::UpdateRendererPreferences() { 522 void PrefsTabHelper::UpdateRendererPreferences() {
433 renderer_preferences_util::UpdateFromSystemSettings( 523 renderer_preferences_util::UpdateFromSystemSettings(
434 tab_contents()->GetMutableRendererPrefs(), wrapper_->profile()); 524 tab_contents()->GetMutableRendererPrefs(), wrapper_->profile());
435 tab_contents()->render_view_host()->SyncRendererPrefs(); 525 tab_contents()->render_view_host()->SyncRendererPrefs();
436 } 526 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698