| 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 4c46e8e2bece619a8d50f94b3925528b436e063a..5271675d259de078889b0ee522a6a1b320a4a440 100644
|
| --- a/chrome/browser/ui/prefs/prefs_tab_helper.cc
|
| +++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc
|
| @@ -11,6 +11,7 @@
|
| #include "base/stringprintf.h"
|
| #include "base/utf_string_conversions.h"
|
| #include "chrome/browser/browser_process.h"
|
| +#include "chrome/browser/prefs/pref_registry_syncable.h"
|
| #include "chrome/browser/prefs/pref_service.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/renderer_preferences_util.h"
|
| @@ -40,59 +41,59 @@ DEFINE_WEB_CONTENTS_USER_DATA_KEY(PrefsTabHelper);
|
| namespace {
|
|
|
| // Registers prefs only used for migration.
|
| -void RegisterPrefsToMigrate(PrefServiceSyncable* prefs) {
|
| +void RegisterPrefsToMigrate(PrefRegistrySyncable* prefs) {
|
| prefs->RegisterLocalizedStringPref(prefs::kWebKitOldStandardFontFamily,
|
| IDS_STANDARD_FONT_FAMILY,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| prefs->RegisterLocalizedStringPref(prefs::kWebKitOldFixedFontFamily,
|
| IDS_FIXED_FONT_FAMILY,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| prefs->RegisterLocalizedStringPref(prefs::kWebKitOldSerifFontFamily,
|
| IDS_SERIF_FONT_FAMILY,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| prefs->RegisterLocalizedStringPref(prefs::kWebKitOldSansSerifFontFamily,
|
| IDS_SANS_SERIF_FONT_FAMILY,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| prefs->RegisterLocalizedStringPref(prefs::kWebKitOldCursiveFontFamily,
|
| IDS_CURSIVE_FONT_FAMILY,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| prefs->RegisterLocalizedStringPref(prefs::kWebKitOldFantasyFontFamily,
|
| IDS_FANTASY_FONT_FAMILY,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| prefs->RegisterLocalizedStringPref(prefs::kGlobalDefaultCharset,
|
| IDS_DEFAULT_ENCODING,
|
| - PrefServiceSyncable::SYNCABLE_PREF);
|
| + PrefRegistrySyncable::SYNCABLE_PREF);
|
| prefs->RegisterLocalizedIntegerPref(prefs::kWebKitGlobalDefaultFontSize,
|
| IDS_DEFAULT_FONT_SIZE,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| prefs->RegisterLocalizedIntegerPref(prefs::kWebKitGlobalDefaultFixedFontSize,
|
| IDS_DEFAULT_FIXED_FONT_SIZE,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| prefs->RegisterLocalizedIntegerPref(prefs::kWebKitGlobalMinimumFontSize,
|
| IDS_MINIMUM_FONT_SIZE,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| prefs->RegisterLocalizedIntegerPref(
|
| prefs::kWebKitGlobalMinimumLogicalFontSize,
|
| IDS_MINIMUM_LOGICAL_FONT_SIZE,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalStandardFontFamily,
|
| IDS_STANDARD_FONT_FAMILY,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalFixedFontFamily,
|
| IDS_FIXED_FONT_FAMILY,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalSerifFontFamily,
|
| IDS_SERIF_FONT_FAMILY,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalSansSerifFontFamily,
|
| IDS_SANS_SERIF_FONT_FAMILY,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalCursiveFontFamily,
|
| IDS_CURSIVE_FONT_FAMILY,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| prefs->RegisterLocalizedStringPref(prefs::kWebKitGlobalFantasyFontFamily,
|
| IDS_FANTASY_FONT_FAMILY,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| }
|
|
|
| // The list of prefs we want to observe.
|
| @@ -121,7 +122,7 @@ 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(PrefServiceSyncable* prefs,
|
| +void RegisterFontFamilyMap(PrefRegistrySyncable* registry,
|
| const char* map_name,
|
| const std::set<std::string>& fonts_with_defaults) {
|
| for (size_t i = 0; i < prefs::kWebKitScriptsForFontFamilyMapsLength; ++i) {
|
| @@ -131,8 +132,8 @@ void RegisterFontFamilyMap(PrefServiceSyncable* prefs,
|
| if (fonts_with_defaults.find(pref_name) == fonts_with_defaults.end()) {
|
| // We haven't already set a default value for this font preference, so set
|
| // an empty string as the default.
|
| - prefs->RegisterStringPref(
|
| - pref_name, "", PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterStringPref(
|
| + pref_name, "", PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| }
|
| }
|
| }
|
| @@ -339,20 +340,6 @@ const struct {
|
|
|
| const int kPrefsToMigrateLength = ARRAYSIZE_UNSAFE(kPrefNamesToMigrate);
|
|
|
| -void MigratePreferences(PrefServiceSyncable* prefs) {
|
| - RegisterPrefsToMigrate(prefs);
|
| - for (int i = 0; i < kPrefsToMigrateLength; ++i) {
|
| - const PrefService::Preference* pref =
|
| - prefs->FindPreference(kPrefNamesToMigrate[i].from);
|
| - if (!pref) continue;
|
| - if (!pref->IsDefaultValue()) {
|
| - prefs->Set(kPrefNamesToMigrate[i].to, *pref->GetValue());
|
| - }
|
| - prefs->ClearPref(kPrefNamesToMigrate[i].from);
|
| - prefs->UnregisterPreference(kPrefNamesToMigrate[i].from);
|
| - }
|
| -}
|
| -
|
| // Sets a font family pref in |prefs| to |pref_value|.
|
| void OverrideFontFamily(WebPreferences* prefs,
|
| const std::string& generic_family,
|
| @@ -456,72 +443,72 @@ void PrefsTabHelper::InitIncognitoUserPrefStore(
|
| }
|
|
|
| // static
|
| -void PrefsTabHelper::RegisterUserPrefs(PrefServiceSyncable* prefs) {
|
| +void PrefsTabHelper::RegisterUserPrefs(PrefRegistrySyncable* registry) {
|
| WebPreferences pref_defaults;
|
| - prefs->RegisterBooleanPref(prefs::kWebKitJavascriptEnabled,
|
| - pref_defaults.javascript_enabled,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterBooleanPref(prefs::kWebKitWebSecurityEnabled,
|
| - pref_defaults.web_security_enabled,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterBooleanPref(
|
| + registry->RegisterBooleanPref(prefs::kWebKitJavascriptEnabled,
|
| + pref_defaults.javascript_enabled,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterBooleanPref(prefs::kWebKitWebSecurityEnabled,
|
| + pref_defaults.web_security_enabled,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterBooleanPref(
|
| prefs::kWebKitJavascriptCanOpenWindowsAutomatically,
|
| true,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterBooleanPref(prefs::kWebKitLoadsImagesAutomatically,
|
| - pref_defaults.loads_images_automatically,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterBooleanPref(prefs::kWebKitPluginsEnabled,
|
| - pref_defaults.plugins_enabled,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterBooleanPref(prefs::kWebKitDomPasteEnabled,
|
| - pref_defaults.dom_paste_enabled,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterBooleanPref(prefs::kWebKitShrinksStandaloneImagesToFit,
|
| - pref_defaults.shrinks_standalone_images_to_fit,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterDictionaryPref(prefs::kWebKitInspectorSettings,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterBooleanPref(prefs::kWebKitTextAreasAreResizable,
|
| - pref_defaults.text_areas_are_resizable,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterBooleanPref(prefs::kWebKitJavaEnabled,
|
| - pref_defaults.java_enabled,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterBooleanPref(prefs::kWebkitTabsToLinks,
|
| - pref_defaults.tabs_to_links,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterBooleanPref(prefs::kWebKitAllowRunningInsecureContent,
|
| - false,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterBooleanPref(prefs::kWebKitAllowDisplayingInsecureContent,
|
| - true,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterBooleanPref(prefs::kEnableReferrers,
|
| - true,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterBooleanPref(prefs::kWebKitLoadsImagesAutomatically,
|
| + pref_defaults.loads_images_automatically,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterBooleanPref(prefs::kWebKitPluginsEnabled,
|
| + pref_defaults.plugins_enabled,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterBooleanPref(prefs::kWebKitDomPasteEnabled,
|
| + pref_defaults.dom_paste_enabled,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterBooleanPref(prefs::kWebKitShrinksStandaloneImagesToFit,
|
| + pref_defaults.shrinks_standalone_images_to_fit,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterDictionaryPref(prefs::kWebKitInspectorSettings,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterBooleanPref(prefs::kWebKitTextAreasAreResizable,
|
| + pref_defaults.text_areas_are_resizable,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterBooleanPref(prefs::kWebKitJavaEnabled,
|
| + pref_defaults.java_enabled,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterBooleanPref(prefs::kWebkitTabsToLinks,
|
| + pref_defaults.tabs_to_links,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterBooleanPref(prefs::kWebKitAllowRunningInsecureContent,
|
| + false,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterBooleanPref(prefs::kWebKitAllowDisplayingInsecureContent,
|
| + true,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterBooleanPref(prefs::kEnableReferrers,
|
| + true,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| #if defined(OS_ANDROID)
|
| - prefs->RegisterDoublePref(prefs::kWebKitFontScaleFactor,
|
| - pref_defaults.font_scale_factor,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterBooleanPref(prefs::kWebKitForceEnableZoom,
|
| - pref_defaults.force_enable_zoom,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterDoublePref(prefs::kWebKitFontScaleFactor,
|
| + pref_defaults.font_scale_factor,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterBooleanPref(prefs::kWebKitForceEnableZoom,
|
| + pref_defaults.force_enable_zoom,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| #endif
|
|
|
| #if !defined(OS_MACOSX)
|
| - prefs->RegisterLocalizedStringPref(prefs::kAcceptLanguages,
|
| - IDS_ACCEPT_LANGUAGES,
|
| - PrefServiceSyncable::SYNCABLE_PREF);
|
| + registry->RegisterLocalizedStringPref(prefs::kAcceptLanguages,
|
| + IDS_ACCEPT_LANGUAGES,
|
| + PrefRegistrySyncable::SYNCABLE_PREF);
|
| #else
|
| // Not used in OSX.
|
| - prefs->RegisterLocalizedStringPref(prefs::kAcceptLanguages,
|
| - IDS_ACCEPT_LANGUAGES,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterLocalizedStringPref(prefs::kAcceptLanguages,
|
| + IDS_ACCEPT_LANGUAGES,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| #endif
|
| - prefs->RegisterLocalizedStringPref(prefs::kDefaultCharset,
|
| - IDS_DEFAULT_ENCODING,
|
| - PrefServiceSyncable::SYNCABLE_PREF);
|
| + registry->RegisterLocalizedStringPref(prefs::kDefaultCharset,
|
| + IDS_DEFAULT_ENCODING,
|
| + PrefRegistrySyncable::SYNCABLE_PREF);
|
|
|
| // Register font prefs that have defaults.
|
| std::set<std::string> fonts_with_defaults;
|
| @@ -543,52 +530,67 @@ void PrefsTabHelper::RegisterUserPrefs(PrefServiceSyncable* prefs) {
|
| // prefs (e.g., via the extensions workflow), or the problem turns out to
|
| // not be really critical after all.
|
| if (browser_script != pref_script) {
|
| - prefs->RegisterLocalizedStringPref(pref.pref_name,
|
| - pref.resource_id,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterLocalizedStringPref(
|
| + pref.pref_name,
|
| + pref.resource_id,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| fonts_with_defaults.insert(pref.pref_name);
|
| }
|
| }
|
|
|
| // Register font prefs that don't have defaults.
|
| - RegisterFontFamilyMap(prefs, prefs::kWebKitStandardFontFamilyMap,
|
| + RegisterFontFamilyMap(registry, prefs::kWebKitStandardFontFamilyMap,
|
| fonts_with_defaults);
|
| - RegisterFontFamilyMap(prefs, prefs::kWebKitFixedFontFamilyMap,
|
| + RegisterFontFamilyMap(registry, prefs::kWebKitFixedFontFamilyMap,
|
| fonts_with_defaults);
|
| - RegisterFontFamilyMap(prefs, prefs::kWebKitSerifFontFamilyMap,
|
| + RegisterFontFamilyMap(registry, prefs::kWebKitSerifFontFamilyMap,
|
| fonts_with_defaults);
|
| - RegisterFontFamilyMap(prefs, prefs::kWebKitSansSerifFontFamilyMap,
|
| + RegisterFontFamilyMap(registry, prefs::kWebKitSansSerifFontFamilyMap,
|
| fonts_with_defaults);
|
| - RegisterFontFamilyMap(prefs, prefs::kWebKitCursiveFontFamilyMap,
|
| + RegisterFontFamilyMap(registry, prefs::kWebKitCursiveFontFamilyMap,
|
| fonts_with_defaults);
|
| - RegisterFontFamilyMap(prefs, prefs::kWebKitFantasyFontFamilyMap,
|
| + RegisterFontFamilyMap(registry, prefs::kWebKitFantasyFontFamilyMap,
|
| fonts_with_defaults);
|
| - RegisterFontFamilyMap(prefs, prefs::kWebKitPictographFontFamilyMap,
|
| + RegisterFontFamilyMap(registry, prefs::kWebKitPictographFontFamilyMap,
|
| fonts_with_defaults);
|
|
|
| - prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFontSize,
|
| - IDS_DEFAULT_FONT_SIZE,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFixedFontSize,
|
| - IDS_DEFAULT_FIXED_FONT_SIZE,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumFontSize,
|
| - IDS_MINIMUM_FONT_SIZE,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterLocalizedIntegerPref(
|
| + registry->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFontSize,
|
| + IDS_DEFAULT_FONT_SIZE,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFixedFontSize,
|
| + IDS_DEFAULT_FIXED_FONT_SIZE,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumFontSize,
|
| + IDS_MINIMUM_FONT_SIZE,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterLocalizedIntegerPref(
|
| prefs::kWebKitMinimumLogicalFontSize,
|
| IDS_MINIMUM_LOGICAL_FONT_SIZE,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterLocalizedBooleanPref(prefs::kWebKitUsesUniversalDetector,
|
| - IDS_USES_UNIVERSAL_DETECTOR,
|
| - PrefServiceSyncable::SYNCABLE_PREF);
|
| - prefs->RegisterLocalizedStringPref(prefs::kStaticEncodings,
|
| - IDS_STATIC_ENCODING_LIST,
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - prefs->RegisterStringPref(prefs::kRecentlySelectedEncoding,
|
| - "",
|
| - PrefServiceSyncable::UNSYNCABLE_PREF);
|
| - MigratePreferences(prefs);
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterLocalizedBooleanPref(prefs::kWebKitUsesUniversalDetector,
|
| + IDS_USES_UNIVERSAL_DETECTOR,
|
| + PrefRegistrySyncable::SYNCABLE_PREF);
|
| + registry->RegisterLocalizedStringPref(prefs::kStaticEncodings,
|
| + IDS_STATIC_ENCODING_LIST,
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| + registry->RegisterStringPref(prefs::kRecentlySelectedEncoding,
|
| + "",
|
| + PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| +}
|
| +
|
| +void PrefsTabHelper::MigrateUserPrefs(PrefService* prefs,
|
| + PrefRegistrySyncable* registry) {
|
| + RegisterPrefsToMigrate(registry);
|
| + for (int i = 0; i < kPrefsToMigrateLength; ++i) {
|
| + const PrefService::Preference* pref =
|
| + prefs->FindPreference(kPrefNamesToMigrate[i].from);
|
| + if (!pref) continue;
|
| + if (!pref->IsDefaultValue()) {
|
| + prefs->Set(kPrefNamesToMigrate[i].to, *pref->GetValue());
|
| + }
|
| + prefs->ClearPref(kPrefNamesToMigrate[i].from);
|
| + registry->DeprecatedUnregisterPreference(kPrefNamesToMigrate[i].from);
|
| + }
|
| }
|
|
|
| void PrefsTabHelper::Observe(int type,
|
|
|