| 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 0b4a3a3c73640c437bf9bba650982d685399d8a6..9660df3f97e66491ff97b5ad6f090124a5ebb5c0 100644
|
| --- a/chrome/browser/ui/prefs/prefs_tab_helper.cc
|
| +++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "base/stringprintf.h"
|
| #include "base/string_util.h"
|
| +#include "base/utf_string_conversions.h"
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/prefs/pref_service.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| @@ -26,7 +27,21 @@
|
| namespace {
|
|
|
| const char* kPerTabPrefsToObserve[] = {
|
| - prefs::kWebKitJavascriptEnabled
|
| + prefs::kDefaultCharset,
|
| + prefs::kWebKitJavascriptEnabled,
|
| + prefs::kWebKitJavascriptCanOpenWindowsAutomatically,
|
| + prefs::kWebKitLoadsImagesAutomatically,
|
| + prefs::kWebKitPluginsEnabled,
|
| + prefs::kWebKitCursiveFontFamily,
|
| + prefs::kWebKitFantasyFontFamily,
|
| + prefs::kWebKitFixedFontFamily,
|
| + prefs::kWebKitSansSerifFontFamily,
|
| + prefs::kWebKitSerifFontFamily,
|
| + prefs::kWebKitStandardFontFamily,
|
| + prefs::kWebKitDefaultFontSize,
|
| + prefs::kWebKitDefaultFixedFontSize,
|
| + prefs::kWebKitMinimumFontSize,
|
| + prefs::kWebKitMinimumLogicalFontSize
|
| };
|
|
|
| const int kPerTabPrefsToObserveLength = arraysize(kPerTabPrefsToObserve);
|
| @@ -37,28 +52,71 @@ void RegisterPerTabUserPrefs(PrefService* prefs) {
|
| prefs->RegisterBooleanPref(prefs::kWebKitJavascriptEnabled,
|
| pref_defaults.javascript_enabled,
|
| PrefService::UNSYNCABLE_PREF);
|
| + prefs->RegisterBooleanPref(
|
| + prefs::kWebKitJavascriptCanOpenWindowsAutomatically,
|
| + true,
|
| + PrefService::UNSYNCABLE_PREF);
|
| + prefs->RegisterBooleanPref(prefs::kWebKitLoadsImagesAutomatically,
|
| + pref_defaults.loads_images_automatically,
|
| + PrefService::UNSYNCABLE_PREF);
|
| + prefs->RegisterBooleanPref(prefs::kWebKitPluginsEnabled,
|
| + pref_defaults.plugins_enabled,
|
| + PrefService::UNSYNCABLE_PREF);
|
| + prefs->RegisterLocalizedStringPref(prefs::kDefaultCharset,
|
| + IDS_DEFAULT_ENCODING,
|
| + PrefService::SYNCABLE_PREF);
|
| + prefs->RegisterLocalizedStringPref(prefs::kWebKitStandardFontFamily,
|
| + IDS_STANDARD_FONT_FAMILY,
|
| + PrefService::UNSYNCABLE_PREF);
|
| + prefs->RegisterLocalizedStringPref(prefs::kWebKitFixedFontFamily,
|
| + IDS_FIXED_FONT_FAMILY,
|
| + PrefService::UNSYNCABLE_PREF);
|
| + prefs->RegisterLocalizedStringPref(prefs::kWebKitSerifFontFamily,
|
| + IDS_SERIF_FONT_FAMILY,
|
| + PrefService::UNSYNCABLE_PREF);
|
| + prefs->RegisterLocalizedStringPref(prefs::kWebKitSansSerifFontFamily,
|
| + IDS_SANS_SERIF_FONT_FAMILY,
|
| + PrefService::UNSYNCABLE_PREF);
|
| + prefs->RegisterLocalizedStringPref(prefs::kWebKitCursiveFontFamily,
|
| + IDS_CURSIVE_FONT_FAMILY,
|
| + PrefService::UNSYNCABLE_PREF);
|
| + prefs->RegisterLocalizedStringPref(prefs::kWebKitFantasyFontFamily,
|
| + IDS_FANTASY_FONT_FAMILY,
|
| + PrefService::UNSYNCABLE_PREF);
|
| + prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFontSize,
|
| + IDS_DEFAULT_FONT_SIZE,
|
| + PrefService::UNSYNCABLE_PREF);
|
| + prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFixedFontSize,
|
| + IDS_DEFAULT_FIXED_FONT_SIZE,
|
| + PrefService::UNSYNCABLE_PREF);
|
| + prefs->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumFontSize,
|
| + IDS_MINIMUM_FONT_SIZE,
|
| + PrefService::UNSYNCABLE_PREF);
|
| + prefs->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumLogicalFontSize,
|
| + IDS_MINIMUM_LOGICAL_FONT_SIZE,
|
| + PrefService::UNSYNCABLE_PREF);
|
| }
|
|
|
| // The list of prefs we want to observe.
|
| const char* kPrefsToObserve[] = {
|
| - prefs::kDefaultCharset,
|
| + prefs::kGlobalDefaultCharset,
|
| prefs::kEnableReferrers,
|
| prefs::kWebKitAllowDisplayingInsecureContent,
|
| prefs::kWebKitAllowRunningInsecureContent,
|
| - prefs::kWebKitCursiveFontFamily,
|
| - prefs::kWebKitDefaultFixedFontSize,
|
| - prefs::kWebKitDefaultFontSize,
|
| - prefs::kWebKitFantasyFontFamily,
|
| - prefs::kWebKitFixedFontFamily,
|
| + prefs::kWebKitGlobalCursiveFontFamily,
|
| + prefs::kWebKitGlobalDefaultFixedFontSize,
|
| + prefs::kWebKitGlobalDefaultFontSize,
|
| + prefs::kWebKitGlobalFantasyFontFamily,
|
| + prefs::kWebKitGlobalFixedFontFamily,
|
| prefs::kWebKitGlobalJavascriptEnabled,
|
| prefs::kWebKitJavaEnabled,
|
| - prefs::kWebKitLoadsImagesAutomatically,
|
| - prefs::kWebKitMinimumFontSize,
|
| - prefs::kWebKitMinimumLogicalFontSize,
|
| - prefs::kWebKitPluginsEnabled,
|
| - prefs::kWebKitSansSerifFontFamily,
|
| - prefs::kWebKitSerifFontFamily,
|
| - prefs::kWebKitStandardFontFamily,
|
| + prefs::kWebKitGlobalLoadsImagesAutomatically,
|
| + prefs::kWebKitGlobalMinimumFontSize,
|
| + prefs::kWebKitGlobalMinimumLogicalFontSize,
|
| + prefs::kWebKitGlobalPluginsEnabled,
|
| + prefs::kWebKitGlobalSansSerifFontFamily,
|
| + prefs::kWebKitGlobalSerifFontFamily,
|
| + prefs::kWebKitGlobalStandardFontFamily,
|
| prefs::kWebkitTabsToLinks,
|
| prefs::kWebKitUsesUniversalDetector
|
| };
|
| @@ -265,13 +323,13 @@ void PrefsTabHelper::RegisterUserPrefs(PrefService* prefs) {
|
| pref_defaults.web_security_enabled,
|
| PrefService::UNSYNCABLE_PREF);
|
| prefs->RegisterBooleanPref(
|
| - prefs::kWebKitJavascriptCanOpenWindowsAutomatically,
|
| + prefs::kWebKitGlobalJavascriptCanOpenWindowsAutomatically,
|
| true,
|
| PrefService::UNSYNCABLE_PREF);
|
| - prefs->RegisterBooleanPref(prefs::kWebKitLoadsImagesAutomatically,
|
| + prefs->RegisterBooleanPref(prefs::kWebKitGlobalLoadsImagesAutomatically,
|
| pref_defaults.loads_images_automatically,
|
| PrefService::UNSYNCABLE_PREF);
|
| - prefs->RegisterBooleanPref(prefs::kWebKitPluginsEnabled,
|
| + prefs->RegisterBooleanPref(prefs::kWebKitGlobalPluginsEnabled,
|
| pref_defaults.plugins_enabled,
|
| PrefService::UNSYNCABLE_PREF);
|
| prefs->RegisterBooleanPref(prefs::kWebKitDomPasteEnabled,
|
| @@ -308,25 +366,25 @@ void PrefsTabHelper::RegisterUserPrefs(PrefService* prefs) {
|
| IDS_ACCEPT_LANGUAGES,
|
| PrefService::UNSYNCABLE_PREF);
|
| #endif
|
| - prefs->RegisterLocalizedStringPref(prefs::kDefaultCharset,
|
| + prefs->RegisterLocalizedStringPref(prefs::kGlobalDefaultCharset,
|
| IDS_DEFAULT_ENCODING,
|
| PrefService::SYNCABLE_PREF);
|
| - prefs->RegisterLocalizedStringPref(prefs::kWebKitStandardFontFamily,
|
| + prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalStandardFontFamily,
|
| IDS_STANDARD_FONT_FAMILY,
|
| PrefService::UNSYNCABLE_PREF);
|
| - prefs->RegisterLocalizedStringPref(prefs::kWebKitFixedFontFamily,
|
| + prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalFixedFontFamily,
|
| IDS_FIXED_FONT_FAMILY,
|
| PrefService::UNSYNCABLE_PREF);
|
| - prefs->RegisterLocalizedStringPref(prefs::kWebKitSerifFontFamily,
|
| + prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalSerifFontFamily,
|
| IDS_SERIF_FONT_FAMILY,
|
| PrefService::UNSYNCABLE_PREF);
|
| - prefs->RegisterLocalizedStringPref(prefs::kWebKitSansSerifFontFamily,
|
| + prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalSansSerifFontFamily,
|
| IDS_SANS_SERIF_FONT_FAMILY,
|
| PrefService::UNSYNCABLE_PREF);
|
| - prefs->RegisterLocalizedStringPref(prefs::kWebKitCursiveFontFamily,
|
| + prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalCursiveFontFamily,
|
| IDS_CURSIVE_FONT_FAMILY,
|
| PrefService::UNSYNCABLE_PREF);
|
| - prefs->RegisterLocalizedStringPref(prefs::kWebKitFantasyFontFamily,
|
| + prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalFantasyFontFamily,
|
| IDS_FANTASY_FONT_FAMILY,
|
| PrefService::UNSYNCABLE_PREF);
|
|
|
| @@ -357,18 +415,19 @@ void PrefsTabHelper::RegisterUserPrefs(PrefService* prefs) {
|
| RegisterFontFamilyMap(prefs, prefs::kWebKitCursiveFontFamilyMap);
|
| RegisterFontFamilyMap(prefs, prefs::kWebKitFantasyFontFamilyMap);
|
|
|
| - prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFontSize,
|
| + prefs->RegisterLocalizedIntegerPref(prefs::kWebKitGlobalDefaultFontSize,
|
| IDS_DEFAULT_FONT_SIZE,
|
| PrefService::UNSYNCABLE_PREF);
|
| - prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFixedFontSize,
|
| + prefs->RegisterLocalizedIntegerPref(prefs::kWebKitGlobalDefaultFixedFontSize,
|
| IDS_DEFAULT_FIXED_FONT_SIZE,
|
| PrefService::UNSYNCABLE_PREF);
|
| - prefs->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumFontSize,
|
| + prefs->RegisterLocalizedIntegerPref(prefs::kWebKitGlobalMinimumFontSize,
|
| IDS_MINIMUM_FONT_SIZE,
|
| PrefService::UNSYNCABLE_PREF);
|
| - prefs->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumLogicalFontSize,
|
| - IDS_MINIMUM_LOGICAL_FONT_SIZE,
|
| - PrefService::UNSYNCABLE_PREF);
|
| + prefs->RegisterLocalizedIntegerPref(
|
| + prefs::kWebKitGlobalMinimumLogicalFontSize,
|
| + IDS_MINIMUM_LOGICAL_FONT_SIZE,
|
| + PrefService::UNSYNCABLE_PREF);
|
| prefs->RegisterLocalizedBooleanPref(prefs::kWebKitUsesUniversalDetector,
|
| IDS_USES_UNIVERSAL_DETECTOR,
|
| PrefService::SYNCABLE_PREF);
|
| @@ -406,7 +465,8 @@ void PrefsTabHelper::Observe(int type,
|
| DCHECK(content::Source<PrefService>(source).ptr() ==
|
| wrapper_->profile()->GetPrefs() ||
|
| content::Source<PrefService>(source).ptr() == per_tab_prefs_);
|
| - if ((*pref_name_in == prefs::kDefaultCharset) ||
|
| + if ((*pref_name_in == prefs::kDefaultCharset ||
|
| + *pref_name_in == prefs::kGlobalDefaultCharset) ||
|
| StartsWithASCII(*pref_name_in, "webkit.webprefs.", true)) {
|
| UpdateWebPreferences();
|
| } else if (*pref_name_in == prefs::kEnableReferrers) {
|
| @@ -426,6 +486,36 @@ void PrefsTabHelper::UpdateWebPreferences() {
|
| WebPreferences prefs = rvhd->GetWebkitPrefs();
|
| prefs.javascript_enabled =
|
| per_tab_prefs_->GetBoolean(prefs::kWebKitJavascriptEnabled);
|
| + prefs.javascript_can_open_windows_automatically =
|
| + per_tab_prefs_->GetBoolean(
|
| + prefs::kWebKitJavascriptCanOpenWindowsAutomatically);
|
| + prefs.loads_images_automatically =
|
| + per_tab_prefs_->GetBoolean(prefs::kWebKitLoadsImagesAutomatically);
|
| + prefs.plugins_enabled =
|
| + per_tab_prefs_->GetBoolean(prefs::kWebKitPluginsEnabled);
|
| + prefs.standard_font_family =
|
| + UTF8ToUTF16(per_tab_prefs_->GetString(prefs::kWebKitStandardFontFamily));
|
| + prefs.fixed_font_family =
|
| + UTF8ToUTF16(per_tab_prefs_->GetString(prefs::kWebKitFixedFontFamily));
|
| + prefs.serif_font_family =
|
| + UTF8ToUTF16(per_tab_prefs_->GetString(prefs::kWebKitSerifFontFamily));
|
| + prefs.sans_serif_font_family =
|
| + UTF8ToUTF16(per_tab_prefs_->GetString(prefs::kWebKitSansSerifFontFamily));
|
| + prefs.cursive_font_family =
|
| + UTF8ToUTF16(per_tab_prefs_->GetString(prefs::kWebKitCursiveFontFamily));
|
| + prefs.fantasy_font_family =
|
| + UTF8ToUTF16(per_tab_prefs_->GetString(prefs::kWebKitFantasyFontFamily));
|
| + prefs.default_font_size =
|
| + per_tab_prefs_->GetInteger(prefs::kWebKitDefaultFontSize);
|
| + prefs.default_fixed_font_size =
|
| + per_tab_prefs_->GetInteger(prefs::kWebKitDefaultFixedFontSize);
|
| + prefs.minimum_font_size =
|
| + per_tab_prefs_->GetInteger(prefs::kWebKitMinimumFontSize);
|
| + prefs.minimum_logical_font_size =
|
| + per_tab_prefs_->GetInteger(prefs::kWebKitMinimumLogicalFontSize);
|
| + prefs.default_encoding =
|
| + per_tab_prefs_->GetString(prefs::kDefaultCharset);
|
| +
|
| tab_contents()->render_view_host()->UpdateWebkitPreferences(prefs);
|
| }
|
|
|
|
|