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

Unified Diff: chrome/browser/ui/prefs/prefs_tab_helper.cc

Issue 12079097: Introduce PrefRegistrySyncable, simplifying PrefServiceSyncable. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add to PrefRegistrySyncable and PrefServiceSyncable to let sync know of pre-registered prefs. Created 7 years, 10 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/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 fef7bcef28924e5c2b51ee05562a8822d9f78175..ae3fdf43c165b87935008353f22ee78eca400a44 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.
Mattias Nissler (ping if slow) 2013/02/06 17:53:33 TODO up-front registrations
Jói 2013/02/07 14:52:32 This is called from RegisterUserPrefs so I think i
Mattias Nissler (ping if slow) 2013/02/08 11:26:56 True, my bad.
- 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,
@@ -451,72 +438,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;
@@ -538,52 +525,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);
Mattias Nissler (ping if slow) 2013/02/06 17:53:33 In this case, we could easily fix the code right a
Jói 2013/02/07 14:52:32 Won't Migrate(User)Prefs functions generally need
Mattias Nissler (ping if slow) 2013/02/08 11:26:56 Unless we follow through with the up-front-registr
+ 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,

Powered by Google App Engine
This is Rietveld 408576698