diff options
author | joi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-10 13:14:04 +0000 |
---|---|---|
committer | joi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-10 13:14:04 +0000 |
commit | c753f148dc1a10cd9461e50e03dc2a93652c13d1 (patch) | |
tree | 9e1a8558556a0f31d4e527c4c203d076f8cca920 | |
parent | e6dbde892ddea9e179fa76e4db1333e83776d160 (diff) | |
download | chromium_src-c753f148dc1a10cd9461e50e03dc2a93652c13d1.zip chromium_src-c753f148dc1a10cd9461e50e03dc2a93652c13d1.tar.gz chromium_src-c753f148dc1a10cd9461e50e03dc2a93652c13d1.tar.bz2 |
Introduce PrefRegistrySyncable, simplifying PrefServiceSyncable.
Minimize usage of PrefServiceSyncable. It is mostly an implementation detail of ProfileImpl and the sync integration.
TBR=ben@chromium.org
BUG=155525
Review URL: https://codereview.chromium.org/12079097
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@181648 0039d316-1c4b-4281-b951-d872f2087c98
252 files changed, 2481 insertions, 2039 deletions
diff --git a/chrome/browser/accessibility/invert_bubble_prefs.cc b/chrome/browser/accessibility/invert_bubble_prefs.cc index 001bcd3..8c94e5f 100644 --- a/chrome/browser/accessibility/invert_bubble_prefs.cc +++ b/chrome/browser/accessibility/invert_bubble_prefs.cc @@ -4,15 +4,15 @@ #include "chrome/browser/accessibility/invert_bubble_prefs.h" -#include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/common/pref_names.h" namespace chrome { -void RegisterInvertBubbleUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterBooleanPref(prefs::kInvertNotificationShown, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); +void RegisterInvertBubbleUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kInvertNotificationShown, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); } } // namespace chrome diff --git a/chrome/browser/accessibility/invert_bubble_prefs.h b/chrome/browser/accessibility/invert_bubble_prefs.h index 94dba93..de190c2 100644 --- a/chrome/browser/accessibility/invert_bubble_prefs.h +++ b/chrome/browser/accessibility/invert_bubble_prefs.h @@ -5,11 +5,11 @@ #ifndef CHROME_BROWSER_ACCESSIBILITY_INVERT_BUBBLE_PREFS_H_ #define CHROME_BROWSER_ACCESSIBILITY_INVERT_BUBBLE_PREFS_H_ -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace chrome { -void RegisterInvertBubbleUserPrefs(PrefServiceSyncable* prefs); +void RegisterInvertBubbleUserPrefs(PrefRegistrySyncable* registry); } // namespace chrome diff --git a/chrome/browser/autofill/autofill_manager.cc b/chrome/browser/autofill/autofill_manager.cc index 774250d..8615e7b 100644 --- a/chrome/browser/autofill/autofill_manager.cc +++ b/chrome/browser/autofill/autofill_manager.cc @@ -23,8 +23,8 @@ #include "base/utf_string_conversions.h" #include "chrome/browser/api/infobars/infobar_service.h" #include "chrome/browser/api/sync/profile_sync_service_base.h" -#include "chrome/browser/autofill/autocheckout_manager.h" #include "chrome/browser/autofill/autocheckout_infobar_delegate.h" +#include "chrome/browser/autofill/autocheckout_manager.h" #include "chrome/browser/autofill/autocomplete_history_manager.h" #include "chrome/browser/autofill/autofill_cc_infobar_delegate.h" #include "chrome/browser/autofill/autofill_country.h" @@ -41,6 +41,7 @@ #include "chrome/browser/autofill/personal_data_manager_factory.h" #include "chrome/browser/autofill/phone_number.h" #include "chrome/browser/autofill/phone_number_i18n.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/common/autofill_messages.h" #include "chrome/common/chrome_notification_types.h" @@ -227,28 +228,28 @@ AutofillManager::~AutofillManager() { } // static -void AutofillManager::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterBooleanPref(prefs::kAutofillEnabled, - true, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kPasswordGenerationEnabled, - true, - PrefServiceSyncable::SYNCABLE_PREF); +void AutofillManager::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kAutofillEnabled, + true, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kPasswordGenerationEnabled, + true, + PrefRegistrySyncable::SYNCABLE_PREF); #if defined(OS_MACOSX) - prefs->RegisterBooleanPref(prefs::kAutofillAuxiliaryProfilesEnabled, - true, - PrefServiceSyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kAutofillAuxiliaryProfilesEnabled, + true, + PrefRegistrySyncable::SYNCABLE_PREF); #else - prefs->RegisterBooleanPref(prefs::kAutofillAuxiliaryProfilesEnabled, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kAutofillAuxiliaryProfilesEnabled, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); #endif - prefs->RegisterDoublePref(prefs::kAutofillPositiveUploadRate, - kAutofillPositiveUploadRateDefaultValue, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref(prefs::kAutofillNegativeUploadRate, - kAutofillNegativeUploadRateDefaultValue, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref(prefs::kAutofillPositiveUploadRate, + kAutofillPositiveUploadRateDefaultValue, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref(prefs::kAutofillNegativeUploadRate, + kAutofillNegativeUploadRateDefaultValue, + PrefRegistrySyncable::UNSYNCABLE_PREF); } void AutofillManager::RegisterWithSyncService() { diff --git a/chrome/browser/autofill/autofill_manager.h b/chrome/browser/autofill/autofill_manager.h index f6206b4..69ba0dc 100644 --- a/chrome/browser/autofill/autofill_manager.h +++ b/chrome/browser/autofill/autofill_manager.h @@ -42,7 +42,7 @@ class AutofillMetrics; class CreditCard; class FormGroup; class GURL; -class PrefServiceSyncable; +class PrefRegistrySyncable; class ProfileSyncService; struct FormData; @@ -84,7 +84,7 @@ class AutofillManager : public content::WebContentsObserver, static AutofillManager* FromWebContents(content::WebContents* contents); // Registers our Enable/Disable Autofill pref. - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Set an external delegate. void SetExternalDelegate(AutofillExternalDelegate* delegate); diff --git a/chrome/browser/background/background_contents_service_factory.cc b/chrome/browser/background/background_contents_service_factory.cc index 3043efe..12670b1 100644 --- a/chrome/browser/background/background_contents_service_factory.cc +++ b/chrome/browser/background/background_contents_service_factory.cc @@ -6,6 +6,7 @@ #include "base/command_line.h" #include "chrome/browser/background/background_contents_service.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/profiles/profile_dependency_manager.h" @@ -39,9 +40,9 @@ ProfileKeyedService* BackgroundContentsServiceFactory::BuildServiceInstanceFor( } void BackgroundContentsServiceFactory::RegisterUserPrefs( - PrefServiceSyncable* user_prefs) { + PrefRegistrySyncable* user_prefs) { user_prefs->RegisterDictionaryPref(prefs::kRegisteredBackgroundContents, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); } bool diff --git a/chrome/browser/background/background_contents_service_factory.h b/chrome/browser/background/background_contents_service_factory.h index 6abdc3e..2c77ba9 100644 --- a/chrome/browser/background/background_contents_service_factory.h +++ b/chrome/browser/background/background_contents_service_factory.h @@ -10,7 +10,7 @@ #include "chrome/browser/profiles/profile_keyed_service_factory.h" class BackgroundContentsService; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; // Singleton that owns all BackgroundContentsServices and associates them with @@ -31,7 +31,7 @@ class BackgroundContentsServiceFactory : public ProfileKeyedServiceFactory { // ProfileKeyedServiceFactory: virtual ProfileKeyedService* BuildServiceInstanceFor( Profile* profile) const OVERRIDE; - virtual void RegisterUserPrefs(PrefServiceSyncable* user_prefs) OVERRIDE; + virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) OVERRIDE; // Use a separate background contents service for incognito. virtual bool ServiceHasOwnInstanceInIncognito() const OVERRIDE; virtual bool ServiceIsCreatedWithProfile() const OVERRIDE; diff --git a/chrome/browser/bookmarks/DEPS b/chrome/browser/bookmarks/DEPS index 31b84b4..18a5ef6 100644 --- a/chrome/browser/bookmarks/DEPS +++ b/chrome/browser/bookmarks/DEPS @@ -19,7 +19,8 @@ include_rules = [ "!chrome/browser/history/query_parser.h", "!chrome/browser/history/snippet.h", "!chrome/browser/history/url_database.h", - "!chrome/browser/prefs/pref_service_syncable.h", + "!chrome/browser/prefs/pref_registry_syncable.h", + "!chrome/browser/prefs/pref_service.h", "!chrome/browser/profiles/profile.h", "!chrome/browser/profiles/profile_dependency_manager.h", "!chrome/browser/profiles/profile_keyed_service.h", diff --git a/chrome/browser/bookmarks/bookmark_model_factory.cc b/chrome/browser/bookmarks/bookmark_model_factory.cc index 6f1bb5e..20d4f3f 100644 --- a/chrome/browser/bookmarks/bookmark_model_factory.cc +++ b/chrome/browser/bookmarks/bookmark_model_factory.cc @@ -5,8 +5,9 @@ #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "base/memory/singleton.h" +#include "base/values.h" #include "chrome/browser/bookmarks/bookmark_model.h" -#include "chrome/browser/prefs/pref_service_syncable.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_dependency_manager.h" #include "chrome/common/pref_names.h" @@ -41,13 +42,14 @@ ProfileKeyedService* BookmarkModelFactory::BuildServiceInstanceFor( return bookmark_model; } -void BookmarkModelFactory::RegisterUserPrefs(PrefServiceSyncable* prefs) { +void BookmarkModelFactory::RegisterUserPrefs(PrefRegistrySyncable* registry) { // Don't sync this, as otherwise, due to a limitation in sync, it // will cause a deadlock (see http://crbug.com/97955). If we truly // want to sync the expanded state of folders, it should be part of // bookmark sync itself (i.e., a property of the sync folder nodes). - prefs->RegisterListPref(prefs::kBookmarkEditorExpandedNodes, new ListValue, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kBookmarkEditorExpandedNodes, + new base::ListValue, + PrefRegistrySyncable::UNSYNCABLE_PREF); } bool BookmarkModelFactory::ServiceRedirectedInIncognito() const { diff --git a/chrome/browser/bookmarks/bookmark_model_factory.h b/chrome/browser/bookmarks/bookmark_model_factory.h index 5ad84d7..f38bcb5 100644 --- a/chrome/browser/bookmarks/bookmark_model_factory.h +++ b/chrome/browser/bookmarks/bookmark_model_factory.h @@ -11,7 +11,7 @@ template <typename T> struct DefaultSingletonTraits; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; class BookmarkModel; @@ -34,7 +34,7 @@ class BookmarkModelFactory : public ProfileKeyedServiceFactory { // ProfileKeyedServiceFactory: virtual ProfileKeyedService* BuildServiceInstanceFor( Profile* profile) const OVERRIDE; - virtual void RegisterUserPrefs(PrefServiceSyncable* user_prefs) OVERRIDE; + virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) OVERRIDE; virtual bool ServiceRedirectedInIncognito() const OVERRIDE; virtual bool ServiceIsNULLWhileTesting() const OVERRIDE; diff --git a/chrome/browser/bookmarks/bookmark_prompt_prefs.cc b/chrome/browser/bookmarks/bookmark_prompt_prefs.cc index 28440cd..b412c12 100644 --- a/chrome/browser/bookmarks/bookmark_prompt_prefs.cc +++ b/chrome/browser/bookmarks/bookmark_prompt_prefs.cc @@ -4,7 +4,8 @@ #include "chrome/browser/bookmarks/bookmark_prompt_prefs.h" -#include "chrome/browser/prefs/pref_service_syncable.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" +#include "chrome/browser/prefs/pref_service.h" #include "chrome/common/pref_names.h" BookmarkPromptPrefs::BookmarkPromptPrefs(PrefServiceBase* user_prefs) @@ -32,11 +33,11 @@ bool BookmarkPromptPrefs::IsBookmarkPromptEnabled() const { } // static -void BookmarkPromptPrefs::RegisterUserPrefs(PrefServiceSyncable* user_prefs) { +void BookmarkPromptPrefs::RegisterUserPrefs(PrefRegistrySyncable* registry) { // We always register preferences without checking FieldTrial, because // we may not receive field trial list from the server yet. - user_prefs->RegisterBooleanPref(prefs::kBookmarkPromptEnabled, true, - PrefServiceSyncable::UNSYNCABLE_PREF); - user_prefs->RegisterIntegerPref(prefs::kBookmarkPromptImpressionCount, 0, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kBookmarkPromptEnabled, true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kBookmarkPromptImpressionCount, 0, + PrefRegistrySyncable::UNSYNCABLE_PREF); } diff --git a/chrome/browser/bookmarks/bookmark_prompt_prefs.h b/chrome/browser/bookmarks/bookmark_prompt_prefs.h index f40ed90..4c4b0d2 100644 --- a/chrome/browser/bookmarks/bookmark_prompt_prefs.h +++ b/chrome/browser/bookmarks/bookmark_prompt_prefs.h @@ -7,7 +7,7 @@ #include "base/basictypes.h" -class PrefServiceSyncable; +class PrefRegistrySyncable; class PrefServiceBase; // Helper class for getting, changing bookmark prompt related preferences. @@ -31,7 +31,7 @@ class BookmarkPromptPrefs { bool IsBookmarkPromptEnabled() const; // Registers user preferences used by bookmark prompt feature. - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); private: PrefServiceBase* prefs_; // Weak. diff --git a/chrome/browser/bookmarks/bookmark_utils.cc b/chrome/browser/bookmarks/bookmark_utils.cc index 329654e..6d63505 100644 --- a/chrome/browser/bookmarks/bookmark_utils.cc +++ b/chrome/browser/bookmarks/bookmark_utils.cc @@ -18,7 +18,8 @@ #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/bookmarks/bookmark_node_data.h" #include "chrome/browser/history/query_parser.h" -#include "chrome/browser/prefs/pref_service_syncable.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" +#include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/pref_names.h" #include "content/public/browser/user_metrics.h" @@ -431,13 +432,13 @@ const BookmarkNode* ApplyEditsWithPossibleFolderChange( return node; } -void RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterBooleanPref(prefs::kShowBookmarkBar, - false, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kEditBookmarksEnabled, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); +void RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kShowBookmarkBar, + false, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kEditBookmarksEnabled, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); } const BookmarkNode* GetParentForNewNodes( diff --git a/chrome/browser/bookmarks/bookmark_utils.h b/chrome/browser/bookmarks/bookmark_utils.h index 12631b6..0b52e8d 100644 --- a/chrome/browser/bookmarks/bookmark_utils.h +++ b/chrome/browser/bookmarks/bookmark_utils.h @@ -17,7 +17,7 @@ class BookmarkModel; class BookmarkNode; class Browser; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; namespace content { @@ -160,7 +160,7 @@ const BookmarkNode* ApplyEditsWithPossibleFolderChange( const GURL& new_url); // Register user preferences for BookmarksBar. -void RegisterUserPrefs(PrefServiceSyncable* prefs); +void RegisterUserPrefs(PrefRegistrySyncable* registry); // Returns the parent for newly created folders/bookmarks. If |selection| has // one element and it is a folder, |selection[0]| is returned, otherwise diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc index 1a53b63..c5d3e8e 100644 --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc @@ -813,7 +813,7 @@ void BrowserProcessImpl::CreateLocalState() { // TODO(joi): Once we clean up so none of the registration methods // need the PrefService pointer, this should happen before the call // to CreateLocalState. - chrome::RegisterLocalState(pref_registry, local_state_.get()); + chrome::RegisterLocalState(local_state_.get(), pref_registry); pref_change_registrar_.Init(local_state_.get()); diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index c444962..5697eea 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc @@ -48,6 +48,7 @@ #include "chrome/browser/notifications/desktop_notification_service_factory.h" #include "chrome/browser/platform_util.h" #include "chrome/browser/plugins/plugin_info_message_filter.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/prerender/prerender_manager.h" @@ -494,16 +495,17 @@ ChromeContentBrowserClient::~ChromeContentBrowserClient() { } // static -void ChromeContentBrowserClient::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterBooleanPref(prefs::kDisable3DAPIs, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kEnableMemoryInfo, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); +void ChromeContentBrowserClient::RegisterUserPrefs( + PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kDisable3DAPIs, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kEnableMemoryInfo, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); } content::BrowserMainParts* ChromeContentBrowserClient::CreateBrowserMainParts( diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h index 029b83d..ca028a0 100644 --- a/chrome/browser/chrome_content_browser_client.h +++ b/chrome/browser/chrome_content_browser_client.h @@ -25,7 +25,7 @@ namespace extensions { class Extension; } -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace chrome { @@ -34,7 +34,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { ChromeContentBrowserClient(); virtual ~ChromeContentBrowserClient(); - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); virtual content::BrowserMainParts* CreateBrowserMainParts( const content::MainFunctionParams& parameters) OVERRIDE; diff --git a/chrome/browser/chrome_to_mobile_service.cc b/chrome/browser/chrome_to_mobile_service.cc index ea6a67a..730611c 100644 --- a/chrome/browser/chrome_to_mobile_service.cc +++ b/chrome/browser/chrome_to_mobile_service.cc @@ -14,6 +14,7 @@ #include "base/utf_string_conversions.h" #include "chrome/app/chrome_command_ids.h" #include "chrome/browser/chrome_to_mobile_service_factory.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/printing/cloud_print/cloud_print_url.h" #include "chrome/browser/profiles/profile.h" @@ -250,9 +251,9 @@ bool ChromeToMobileService::UpdateAndGetCommandState(Browser* browser) { } // static -void ChromeToMobileService::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterListPref(prefs::kChromeToMobileDeviceList, - PrefServiceSyncable::UNSYNCABLE_PREF); +void ChromeToMobileService::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterListPref(prefs::kChromeToMobileDeviceList, + PrefRegistrySyncable::UNSYNCABLE_PREF); } ChromeToMobileService::ChromeToMobileService(Profile* profile) diff --git a/chrome/browser/chrome_to_mobile_service.h b/chrome/browser/chrome_to_mobile_service.h index 9ab92cb..85c205b 100644 --- a/chrome/browser/chrome_to_mobile_service.h +++ b/chrome/browser/chrome_to_mobile_service.h @@ -31,7 +31,7 @@ class OAuth2AccessTokenFetcher; class Browser; class CloudPrintURL; class MockChromeToMobileService; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; namespace net { @@ -98,7 +98,7 @@ class ChromeToMobileService : public ProfileKeyedService, static bool UpdateAndGetCommandState(Browser* browser); // Register the user prefs associated with this service. - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); explicit ChromeToMobileService(Profile* profile); virtual ~ChromeToMobileService(); diff --git a/chrome/browser/chromeos/language_preferences.cc b/chrome/browser/chromeos/language_preferences.cc index 77e9518..6ba6e99 100644 --- a/chrome/browser/chromeos/language_preferences.cc +++ b/chrome/browser/chromeos/language_preferences.cc @@ -5,6 +5,7 @@ #include "base/basictypes.h" #include "chrome/browser/chromeos/language_preferences.h" #include "chrome/browser/prefs/pref_registry_simple.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/common/pref_names.h" #include "grit/generated_resources.h" @@ -27,33 +28,33 @@ const char kChewingSectionName[] = "engine/Chewing"; const LanguageBooleanPrefs kChewingBooleanPrefs[] = { { prefs::kLanguageChewingAutoShiftCur, false, "autoShiftCur", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_AUTO_SHIFT_CUR, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, { prefs::kLanguageChewingAddPhraseDirection, false, "addPhraseDirection", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_ADD_PHRASE_DIRECTION, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, /* Temporarily disabled. (crosbug.com/14185) { prefs::kLanguageChewingEasySymbolInput, true, "easySymbolInput", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_EASY_SYMBOL_INPUT, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, */ { prefs::kLanguageChewingEscCleanAllBuf, false, "escCleanAllBuf", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_ESC_CLEAN_ALL_BUF, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, { prefs::kLanguageChewingForceLowercaseEnglish, false, "forceLowercaseEnglish", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_FORCE_LOWER_CASE_ENGLISH, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, /* Temporarily disabled. (crosbug.com/14185) { prefs::kLanguageChewingPlainZhuyin, false, "plainZhuyin", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_PLAIN_ZHUYIN, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, */ { prefs::kLanguageChewingPhraseChoiceRearward, true, "phraseChoiceRearward", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_PHRASE_CHOICE_REARWARD, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, { prefs::kLanguageChewingSpaceAsSelection, true, "spaceAsSelection", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_SPACE_AS_SELECTION, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, }; COMPILE_ASSERT(kNumChewingBooleanPrefs == arraysize(kChewingBooleanPrefs), TheSizeShouldMatch); @@ -61,11 +62,11 @@ COMPILE_ASSERT(kNumChewingBooleanPrefs == arraysize(kChewingBooleanPrefs), const LanguageIntegerRangePreference kChewingIntegerPrefs[] = { { prefs::kLanguageChewingMaxChiSymbolLen, 20, 8, 40, "maxChiSymbolLen", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_MAX_CHI_SYMBOL_LEN, - PrefServiceSyncable::SYNCABLE_PREF + PrefRegistrySyncable::SYNCABLE_PREF }, { prefs::kLanguageChewingCandPerPage, 10, 8, 10, "candPerPage", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_CAND_PER_PAGE, - PrefServiceSyncable::SYNCABLE_PREF + PrefRegistrySyncable::SYNCABLE_PREF }, }; COMPILE_ASSERT(kNumChewingIntegerPrefs == arraysize(kChewingIntegerPrefs), @@ -91,7 +92,7 @@ const LanguageMultipleChoicePreference<const char*> IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_DACHEN_26 }, { "hanyu", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_HANYU }}, IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE, - PrefServiceSyncable::SYNCABLE_PREF, + PrefRegistrySyncable::SYNCABLE_PREF, }, { prefs::kLanguageChewingSelKeys, "1234567890", @@ -113,7 +114,7 @@ const LanguageMultipleChoicePreference<const char*> { "1234qweras", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_1234QWERAS }}, IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS, - PrefServiceSyncable::SYNCABLE_PREF, + PrefRegistrySyncable::SYNCABLE_PREF, }, }; COMPILE_ASSERT(kNumChewingMultipleChoicePrefs == @@ -127,7 +128,7 @@ const LanguageMultipleChoicePreference<int> kChewingHsuSelKeyType = { {{ 1, IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_HSU_SEL_KEY_TYPE_1 }, { 2, IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_HSU_SEL_KEY_TYPE_2 }}, IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_HSU_SEL_KEY_TYPE, - PrefServiceSyncable::SYNCABLE_PREF, + PrefRegistrySyncable::SYNCABLE_PREF, }; // --------------------------------------------------------------------------- @@ -168,37 +169,37 @@ const char kPinyinSectionName[] = "engine/Pinyin"; const LanguageBooleanPrefs kPinyinBooleanPrefs[] = { { prefs::kLanguagePinyinCorrectPinyin, true, "CorrectPinyin", IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_CORRECT_PINYIN, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, { prefs::kLanguagePinyinFuzzyPinyin, false, "FuzzyPinyin", IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_FUZZY_PINYIN, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, { prefs::kLanguagePinyinShiftSelectCandidate, false, "ShiftSelectCandidate", IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_SHIFT_SELECT_PINYIN, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, { prefs::kLanguagePinyinMinusEqualPage, true, "MinusEqualPage", IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_MINUS_EQUAL_PAGE, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, { prefs::kLanguagePinyinCommaPeriodPage, true, "CommaPeriodPage", IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_COMMA_PERIOD_PAGE, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, { prefs::kLanguagePinyinAutoCommit, false, "AutoCommit", IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_AUTO_COMMIT, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, { prefs::kLanguagePinyinDoublePinyin, false, "DoublePinyin", IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_DOUBLE_PINYIN, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, { prefs::kLanguagePinyinInitChinese, true, "InitChinese", IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_CHINESE, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, { prefs::kLanguagePinyinInitFull, false, "InitFull", IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_FULL, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, { prefs::kLanguagePinyinInitFullPunct, true, "InitFullPunct", IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_FULL_PUNCT, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, { prefs::kLanguagePinyinInitSimplifiedChinese, true, "InitSimplifiedChinese", IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_SIMPLIFIED_CHINESE, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, // TODO(yusukes): Support PINYIN_{INCOMPLETE,CORRECT,FUZZY}_... prefs (32 // additional boolean prefs.) }; @@ -216,7 +217,7 @@ const LanguageMultipleChoicePreference<int> kPinyinDoublePinyinSchema = { { 3, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_ZGPY}, { 4, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_PYJJ}}, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA, - PrefServiceSyncable::SYNCABLE_PREF, + PrefRegistrySyncable::SYNCABLE_PREF, }; const PinyinIntegerPref kPinyinIntegerPrefs[] = { @@ -226,7 +227,7 @@ const PinyinIntegerPref kPinyinIntegerPrefs[] = { "LookupTablePageSize", // don't sync as it's not user configurable. - PrefServiceSyncable::UNSYNCABLE_PREF } + PrefRegistrySyncable::UNSYNCABLE_PREF } }; COMPILE_ASSERT(kNumPinyinIntegerPrefs == arraysize(kPinyinIntegerPrefs), TheSizeShouldMatch); @@ -241,22 +242,22 @@ const LanguageBooleanPrefs kMozcBooleanPrefs[] = { false, "incognito_mode", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_INCOGNITO_MODE, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, { prefs::kLanguageMozcUseAutoImeTurnOff, true, "use_auto_ime_turn_off", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_AUTO_IME_TURN_OFF, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, { prefs::kLanguageMozcUseHistorySuggest, true, "use_history_suggest", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_HISTORY_SUGGEST, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, { prefs::kLanguageMozcUseDictionarySuggest, true, "use_dictionary_suggest", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_DICTIONARY_SUGGEST, - PrefServiceSyncable::SYNCABLE_PREF }, + PrefRegistrySyncable::SYNCABLE_PREF }, }; COMPILE_ASSERT(kNumMozcBooleanPrefs == arraysize(kMozcBooleanPrefs), TheSizeShouldMatch); @@ -269,7 +270,7 @@ extern const LanguageMultipleChoicePreference<const char*> {{ "ROMAN", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PREEDIT_METHOD_ROMAN }, { "KANA", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PREEDIT_METHOD_KANA }}, IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PREEDIT_METHOD, - PrefServiceSyncable::SYNCABLE_PREF, + PrefRegistrySyncable::SYNCABLE_PREF, }, { prefs::kLanguageMozcSessionKeymap, "MSIME", @@ -279,7 +280,7 @@ extern const LanguageMultipleChoicePreference<const char*> { "KOTOERI", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SESSION_KEYMAP_KOTOERI }}, // TODO: Support "CUSTOM" keymap. IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SESSION_KEYMAP, - PrefServiceSyncable::SYNCABLE_PREF, + PrefRegistrySyncable::SYNCABLE_PREF, }, { prefs::kLanguageMozcPunctuationMethod, "KUTEN_TOUTEN", @@ -293,7 +294,7 @@ extern const LanguageMultipleChoicePreference<const char*> { "COMMA_TOUTEN", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PUNCTUATION_METHOD_COMMA_TOUTEN }}, IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PUNCTUATION_METHOD, - PrefServiceSyncable::SYNCABLE_PREF, + PrefRegistrySyncable::SYNCABLE_PREF, }, { prefs::kLanguageMozcSymbolMethod, "CORNER_BRACKET_MIDDLE_DOT", @@ -307,7 +308,7 @@ extern const LanguageMultipleChoicePreference<const char*> { "SQUARE_BRACKET_MIDDLE_DOT", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SYMBOL_METHOD_SQUARE_BRACKET_MIDDLE_DOT }}, IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SYMBOL_METHOD, - PrefServiceSyncable::SYNCABLE_PREF, + PrefRegistrySyncable::SYNCABLE_PREF, }, { prefs::kLanguageMozcSpaceCharacterForm, "FUNDAMENTAL_INPUT_MODE", @@ -319,7 +320,7 @@ extern const LanguageMultipleChoicePreference<const char*> { "FUNDAMENTAL_HALF_WIDTH", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SPACE_CHARACTER_FORM_FUNDAMENTAL_HALF_WIDTH }}, IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SPACE_CHARACTER_FORM, - PrefServiceSyncable::SYNCABLE_PREF, + PrefRegistrySyncable::SYNCABLE_PREF, }, { prefs::kLanguageMozcHistoryLearningLevel, "DEFAULT_HISTORY", @@ -331,7 +332,7 @@ extern const LanguageMultipleChoicePreference<const char*> { "NO_HISTORY", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_HISTORY_LEARNING_LEVEL_NO_HISTORY }}, IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_HISTORY_LEARNING_LEVEL, - PrefServiceSyncable::SYNCABLE_PREF, + PrefRegistrySyncable::SYNCABLE_PREF, }, // TODO(mazda): Uncomment this block once the candidate window in Chrome OS // supports changing shortcut labels. @@ -345,7 +346,7 @@ extern const LanguageMultipleChoicePreference<const char*> // { "SHORTCUT_ASDFGHJKL", // IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SELECTION_SHORTCUT_SHORTCUT_ASDFGHJKL }}, // IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SELECTION_SHORTCUT, - // PrefServiceSyncable::SYNCABLE_PREF, + // PrefRegistrySyncable::SYNCABLE_PREF, // }, { prefs::kLanguageMozcShiftKeyModeSwitch, "ASCII_INPUT_MODE", @@ -357,7 +358,7 @@ extern const LanguageMultipleChoicePreference<const char*> { "KATAKANA_INPUT_MODE", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SHIFT_KEY_MODE_SWITCH_KATAKANA_INPUT_MODE }}, IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SHIFT_KEY_MODE_SWITCH, - PrefServiceSyncable::SYNCABLE_PREF, + PrefRegistrySyncable::SYNCABLE_PREF, }, { prefs::kLanguageMozcNumpadCharacterForm, "NUMPAD_HALF_WIDTH", @@ -371,7 +372,7 @@ extern const LanguageMultipleChoicePreference<const char*> { "NUMPAD_DIRECT_INPUT", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_NUMPAD_CHARACTER_FORM_NUMPAD_DIRECT_INPUT }}, IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_NUMPAD_CHARACTER_FORM, - PrefServiceSyncable::SYNCABLE_PREF, + PrefRegistrySyncable::SYNCABLE_PREF, }, }; COMPILE_ASSERT(kNumMozcMultipleChoicePrefs == @@ -381,7 +382,7 @@ COMPILE_ASSERT(kNumMozcMultipleChoicePrefs == const LanguageIntegerRangePreference kMozcIntegerPrefs[] = { { prefs::kLanguageMozcSuggestionsSize, 3, 1, 9, "suggestions_size", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SUGGESTIONS_SIZE, - PrefServiceSyncable::SYNCABLE_PREF } + PrefRegistrySyncable::SYNCABLE_PREF } }; COMPILE_ASSERT(kNumMozcIntegerPrefs == arraysize(kMozcIntegerPrefs), TheSizeShouldMatch); diff --git a/chrome/browser/chromeos/language_preferences.h b/chrome/browser/chromeos/language_preferences.h index 07b15c8..abde39f 100644 --- a/chrome/browser/chromeos/language_preferences.h +++ b/chrome/browser/chromeos/language_preferences.h @@ -7,7 +7,7 @@ #include <stddef.h> // For size_t -#include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" class PrefRegistrySimple; @@ -38,7 +38,7 @@ struct LanguageMultipleChoicePreference { int item_message_id; // Resource grd ID for the combobox item. } values_and_ids[kMaxItems]; int label_message_id; // Resource grd ID for the label. - PrefServiceSyncable::PrefSyncStatus sync_status; + PrefRegistrySyncable::PrefSyncStatus sync_status; }; // The struct is used for preferences of boolean values, like switches to @@ -48,7 +48,7 @@ struct LanguageBooleanPrefs { bool default_pref_value; const char* ibus_config_name; int message_id; - PrefServiceSyncable::PrefSyncStatus sync_status; + PrefRegistrySyncable::PrefSyncStatus sync_status; }; // The struct is used for preferences of integer range values, like the @@ -60,7 +60,7 @@ struct LanguageIntegerRangePreference { int max_pref_value; const char* ibus_config_name; int message_id; - PrefServiceSyncable::PrefSyncStatus sync_status; + PrefRegistrySyncable::PrefSyncStatus sync_status; }; // --------------------------------------------------------------------------- @@ -125,7 +125,7 @@ struct PinyinIntegerPref { const char* pref_name; // Chrome preference name. int default_pref_value; const char* ibus_config_name; - PrefServiceSyncable::PrefSyncStatus sync_status; + PrefRegistrySyncable::PrefSyncStatus sync_status; // TODO(yusukes): Add message_id if needed. }; diff --git a/chrome/browser/chromeos/login/oauth2_login_manager.cc b/chrome/browser/chromeos/login/oauth2_login_manager.cc index 983d92e..6d67d7c 100644 --- a/chrome/browser/chromeos/login/oauth2_login_manager.cc +++ b/chrome/browser/chromeos/login/oauth2_login_manager.cc @@ -9,6 +9,7 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/login/user_manager.h" #include "chrome/browser/policy/browser_policy_connector.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/signin/token_service.h" @@ -91,17 +92,20 @@ TokenService* OAuth2LoginManager::SetupTokenService() { } void OAuth2LoginManager::RemoveLegacyTokens() { - PrefServiceSyncable* prefs = user_profile_->GetPrefs(); - prefs->RegisterStringPref(prefs::kOAuth1Token, - "", - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kOAuth1Secret, - "", - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefService* prefs = user_profile_->GetPrefs(); + // TODO(joi): Registration should only be done up front. + scoped_refptr<PrefRegistrySyncable> registry( + static_cast<PrefRegistrySyncable*>(prefs->DeprecatedGetPrefRegistry())); + registry->RegisterStringPref(prefs::kOAuth1Token, + "", + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kOAuth1Secret, + "", + PrefRegistrySyncable::UNSYNCABLE_PREF); prefs->ClearPref(prefs::kOAuth1Token); prefs->ClearPref(prefs::kOAuth1Secret); - prefs->UnregisterPreference(prefs::kOAuth1Token); - prefs->UnregisterPreference(prefs::kOAuth1Secret); + registry->DeprecatedUnregisterPreference(prefs::kOAuth1Token); + registry->DeprecatedUnregisterPreference(prefs::kOAuth1Secret); } void OAuth2LoginManager::StoreOAuth2Tokens( diff --git a/chrome/browser/chromeos/preferences.cc b/chrome/browser/chromeos/preferences.cc index 3d4e98b..4c796d7 100644 --- a/chrome/browser/chromeos/preferences.cc +++ b/chrome/browser/chromeos/preferences.cc @@ -27,7 +27,8 @@ #include "chrome/browser/chromeos/system/power_manager_settings.h" #include "chrome/browser/chromeos/system/statistics_provider.h" #include "chrome/browser/download/download_util.h" -#include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/common/chrome_notification_types.h" #include "chrome/common/chrome_switches.h" @@ -57,7 +58,9 @@ Preferences::~Preferences() { } // static -void Preferences::RegisterUserPrefs(PrefServiceSyncable* prefs) { +void Preferences::RegisterUserPrefs(PrefService* prefs, + PrefRegistrySyncable* registry) { + // TODO(joi): Get rid of need for PrefService parameter. std::string hardware_keyboard_id; // TODO(yusukes): Remove the runtime hack. if (base::chromeos::IsRunningOnChromeOS()) { @@ -71,223 +74,224 @@ void Preferences::RegisterUserPrefs(PrefServiceSyncable* prefs) { hardware_keyboard_id = "xkb:us::eng"; // only for testing. } - prefs->RegisterBooleanPref(prefs::kTapToClickEnabled, - true, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kTapDraggingEnabled, - false, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kEnableTouchpadThreeFingerClick, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kEnableTouchpadThreeFingerSwipe, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref( + registry->RegisterBooleanPref(prefs::kTapToClickEnabled, + true, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kTapDraggingEnabled, + false, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kEnableTouchpadThreeFingerClick, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kEnableTouchpadThreeFingerSwipe, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref( prefs::kNaturalScroll, CommandLine::ForCurrentProcess()->HasSwitch( switches::kNaturalScrollDefault), - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kPrimaryMouseButtonRight, - false, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kLabsMediaplayerEnabled, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kLabsAdvancedFilesystemEnabled, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kPrimaryMouseButtonRight, + false, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kLabsMediaplayerEnabled, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kLabsAdvancedFilesystemEnabled, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); // Check if the accessibility prefs are already registered, which can happen // in WizardController::RegisterPrefs. We still want to try to register // the prefs here in case of Chrome/Linux with ChromeOS=1. if (prefs->FindPreference(prefs::kSpokenFeedbackEnabled) == NULL) { - prefs->RegisterBooleanPref(prefs::kSpokenFeedbackEnabled, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kSpokenFeedbackEnabled, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); } if (prefs->FindPreference(prefs::kHighContrastEnabled) == NULL) { - prefs->RegisterBooleanPref(prefs::kHighContrastEnabled, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kHighContrastEnabled, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); } if (prefs->FindPreference(prefs::kVirtualKeyboardEnabled) == NULL) { - prefs->RegisterBooleanPref(prefs::kVirtualKeyboardEnabled, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - } - prefs->RegisterBooleanPref(prefs::kScreenMagnifierEnabled, - false, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kScreenMagnifierType, - ash::kDefaultMagnifierType, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterDoublePref(prefs::kScreenMagnifierScale, - std::numeric_limits<double>::min(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kShouldAlwaysShowAccessibilityMenu, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kMouseSensitivity, - 3, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kTouchpadSensitivity, - 3, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kUse24HourClock, - base::GetHourClockType() == base::k24HourClock, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kDisableDrive, - false, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kDisableDriveOverCellular, - true, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kDisableDriveHostedFiles, - false, - PrefServiceSyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kVirtualKeyboardEnabled, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + } + registry->RegisterBooleanPref(prefs::kScreenMagnifierEnabled, + false, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kScreenMagnifierType, + ash::kDefaultMagnifierType, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterDoublePref(prefs::kScreenMagnifierScale, + std::numeric_limits<double>::min(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kShouldAlwaysShowAccessibilityMenu, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kMouseSensitivity, + 3, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kTouchpadSensitivity, + 3, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kUse24HourClock, + base::GetHourClockType() == base::k24HourClock, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kDisableDrive, + false, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kDisableDriveOverCellular, + true, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kDisableDriveHostedFiles, + false, + PrefRegistrySyncable::SYNCABLE_PREF); // We don't sync prefs::kLanguageCurrentInputMethod and PreviousInputMethod // because they're just used to track the logout state of the device. - prefs->RegisterStringPref(prefs::kLanguageCurrentInputMethod, + registry->RegisterStringPref(prefs::kLanguageCurrentInputMethod, + "", + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kLanguagePreviousInputMethod, "", - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kLanguagePreviousInputMethod, - "", - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); // We don't sync the list of input methods and preferred languages since a // user might use two or more devices with different hardware keyboards. // crosbug.com/15181 - prefs->RegisterStringPref(prefs::kLanguagePreferredLanguages, - kFallbackInputMethodLocale, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kLanguagePreloadEngines, - hardware_keyboard_id, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kLanguageFilteredExtensionImes, - "", - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kLanguagePreferredLanguages, + kFallbackInputMethodLocale, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kLanguagePreloadEngines, + hardware_keyboard_id, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kLanguageFilteredExtensionImes, + "", + PrefRegistrySyncable::UNSYNCABLE_PREF); for (size_t i = 0; i < language_prefs::kNumChewingBooleanPrefs; ++i) { - prefs->RegisterBooleanPref( + registry->RegisterBooleanPref( language_prefs::kChewingBooleanPrefs[i].pref_name, language_prefs::kChewingBooleanPrefs[i].default_pref_value, language_prefs::kChewingBooleanPrefs[i].sync_status); } for (size_t i = 0; i < language_prefs::kNumChewingMultipleChoicePrefs; ++i) { - prefs->RegisterStringPref( + registry->RegisterStringPref( language_prefs::kChewingMultipleChoicePrefs[i].pref_name, language_prefs::kChewingMultipleChoicePrefs[i].default_pref_value, language_prefs::kChewingMultipleChoicePrefs[i].sync_status); } - prefs->RegisterIntegerPref( + registry->RegisterIntegerPref( language_prefs::kChewingHsuSelKeyType.pref_name, language_prefs::kChewingHsuSelKeyType.default_pref_value, language_prefs::kChewingHsuSelKeyType.sync_status); for (size_t i = 0; i < language_prefs::kNumChewingIntegerPrefs; ++i) { - prefs->RegisterIntegerPref( + registry->RegisterIntegerPref( language_prefs::kChewingIntegerPrefs[i].pref_name, language_prefs::kChewingIntegerPrefs[i].default_pref_value, language_prefs::kChewingIntegerPrefs[i].sync_status); } - prefs->RegisterStringPref( + registry->RegisterStringPref( prefs::kLanguageHangulKeyboard, language_prefs::kHangulKeyboardNameIDPairs[0].keyboard_id, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kLanguageHangulHanjaBindingKeys, - language_prefs::kHangulHanjaBindingKeys, - // Don't sync the pref as it's not user-configurable - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterStringPref( + prefs::kLanguageHangulHanjaBindingKeys, + language_prefs::kHangulHanjaBindingKeys, + // Don't sync the pref as it's not user-configurable + PrefRegistrySyncable::UNSYNCABLE_PREF); for (size_t i = 0; i < language_prefs::kNumPinyinBooleanPrefs; ++i) { - prefs->RegisterBooleanPref( + registry->RegisterBooleanPref( language_prefs::kPinyinBooleanPrefs[i].pref_name, language_prefs::kPinyinBooleanPrefs[i].default_pref_value, language_prefs::kPinyinBooleanPrefs[i].sync_status); } for (size_t i = 0; i < language_prefs::kNumPinyinIntegerPrefs; ++i) { - prefs->RegisterIntegerPref( + registry->RegisterIntegerPref( language_prefs::kPinyinIntegerPrefs[i].pref_name, language_prefs::kPinyinIntegerPrefs[i].default_pref_value, language_prefs::kPinyinIntegerPrefs[i].sync_status); } - prefs->RegisterIntegerPref( + registry->RegisterIntegerPref( language_prefs::kPinyinDoublePinyinSchema.pref_name, language_prefs::kPinyinDoublePinyinSchema.default_pref_value, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); for (size_t i = 0; i < language_prefs::kNumMozcBooleanPrefs; ++i) { - prefs->RegisterBooleanPref( + registry->RegisterBooleanPref( language_prefs::kMozcBooleanPrefs[i].pref_name, language_prefs::kMozcBooleanPrefs[i].default_pref_value, language_prefs::kMozcBooleanPrefs[i].sync_status); } for (size_t i = 0; i < language_prefs::kNumMozcMultipleChoicePrefs; ++i) { - prefs->RegisterStringPref( + registry->RegisterStringPref( language_prefs::kMozcMultipleChoicePrefs[i].pref_name, language_prefs::kMozcMultipleChoicePrefs[i].default_pref_value, language_prefs::kMozcMultipleChoicePrefs[i].sync_status); } for (size_t i = 0; i < language_prefs::kNumMozcIntegerPrefs; ++i) { - prefs->RegisterIntegerPref( + registry->RegisterIntegerPref( language_prefs::kMozcIntegerPrefs[i].pref_name, language_prefs::kMozcIntegerPrefs[i].default_pref_value, language_prefs::kMozcIntegerPrefs[i].sync_status); } - prefs->RegisterIntegerPref(prefs::kLanguageRemapSearchKeyTo, - input_method::kSearchKey, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kLanguageRemapControlKeyTo, - input_method::kControlKey, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kLanguageRemapAltKeyTo, - input_method::kAltKey, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kLanguageRemapCapsLockKeyTo, - input_method::kCapsLockKey, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kLanguageRemapDiamondKeyTo, - input_method::kControlKey, - PrefServiceSyncable::SYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kLanguageRemapSearchKeyTo, + input_method::kSearchKey, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kLanguageRemapControlKeyTo, + input_method::kControlKey, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kLanguageRemapAltKeyTo, + input_method::kAltKey, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kLanguageRemapCapsLockKeyTo, + input_method::kCapsLockKey, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kLanguageRemapDiamondKeyTo, + input_method::kControlKey, + PrefRegistrySyncable::SYNCABLE_PREF); // We don't sync the following keyboard prefs since they are not user- // configurable. - prefs->RegisterBooleanPref(prefs::kLanguageXkbAutoRepeatEnabled, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kLanguageXkbAutoRepeatDelay, - language_prefs::kXkbAutoRepeatDelayInMs, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kLanguageXkbAutoRepeatInterval, - language_prefs::kXkbAutoRepeatIntervalInMs, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kLanguageXkbAutoRepeatEnabled, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kLanguageXkbAutoRepeatDelay, + language_prefs::kXkbAutoRepeatDelayInMs, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kLanguageXkbAutoRepeatInterval, + language_prefs::kXkbAutoRepeatIntervalInMs, + PrefRegistrySyncable::UNSYNCABLE_PREF); // Screen lock default to off. - prefs->RegisterBooleanPref(prefs::kEnableScreenLock, - false, - PrefServiceSyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kEnableScreenLock, + false, + PrefRegistrySyncable::SYNCABLE_PREF); // Mobile plan notifications default to on. - prefs->RegisterBooleanPref(prefs::kShowPlanNotifications, - true, - PrefServiceSyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kShowPlanNotifications, + true, + PrefRegistrySyncable::SYNCABLE_PREF); // 3G first-time usage promo will be shown at least once. - prefs->RegisterBooleanPref(prefs::kShow3gPromoNotification, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kShow3gPromoNotification, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); // Initially all existing users would see "What's new" // for current version after update. - prefs->RegisterStringPref(prefs::kChromeOSReleaseNotesVersion, - "0.0.0.0", - PrefServiceSyncable::SYNCABLE_PREF); + registry->RegisterStringPref(prefs::kChromeOSReleaseNotesVersion, + "0.0.0.0", + PrefRegistrySyncable::SYNCABLE_PREF); // TODO(wad): Once UI is connected, a final default can be set. At that point // change this pref from UNSYNCABLE to SYNCABLE. - prefs->RegisterBooleanPref(prefs::kEnableCrosDRM, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kEnableCrosDRM, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kExternalStorageDisabled, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kExternalStorageDisabled, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); // TODO(derat): Right now, these values are just copied from powerd's // defaults. Make this file be the canonical source of default power @@ -296,45 +300,45 @@ void Preferences::RegisterUserPrefs(PrefServiceSyncable* prefs) { // powerd shuts down instead of suspending when no user is logged in, and // the default screen-lock delays are only used when // prefs::kEnableScreenLock is set. - prefs->RegisterIntegerPref(prefs::kPowerAcScreenDimDelayMs, - 420000, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kPowerAcScreenOffDelayMs, - 480000, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kPowerAcScreenLockDelayMs, - 600000, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kPowerAcIdleDelayMs, - 1800000, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenDimDelayMs, - 300000, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenOffDelayMs, - 360000, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kPowerBatteryScreenLockDelayMs, - 600000, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kPowerBatteryIdleDelayMs, - 600000, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kPowerIdleAction, - chromeos::PowerPolicyController::ACTION_SUSPEND, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kPowerLidClosedAction, - chromeos::PowerPolicyController::ACTION_SUSPEND, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kPowerUseAudioActivity, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kPowerUseVideoActivity, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref(prefs::kPowerPresentationIdleDelayFactor, - 2.0, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kPowerAcScreenDimDelayMs, + 420000, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kPowerAcScreenOffDelayMs, + 480000, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kPowerAcScreenLockDelayMs, + 600000, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kPowerAcIdleDelayMs, + 1800000, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kPowerBatteryScreenDimDelayMs, + 300000, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kPowerBatteryScreenOffDelayMs, + 360000, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kPowerBatteryScreenLockDelayMs, + 600000, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kPowerBatteryIdleDelayMs, + 600000, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kPowerIdleAction, + chromeos::PowerPolicyController::ACTION_SUSPEND, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kPowerLidClosedAction, + chromeos::PowerPolicyController::ACTION_SUSPEND, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kPowerUseAudioActivity, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kPowerUseVideoActivity, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref(prefs::kPowerPresentationIdleDelayFactor, + 2.0, + PrefRegistrySyncable::UNSYNCABLE_PREF); } void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) { diff --git a/chrome/browser/chromeos/preferences.h b/chrome/browser/chromeos/preferences.h index ffcad34..fa120b0 100644 --- a/chrome/browser/chromeos/preferences.h +++ b/chrome/browser/chromeos/preferences.h @@ -13,6 +13,7 @@ #include "chrome/browser/chromeos/language_preferences.h" #include "chrome/browser/prefs/pref_service_syncable_observer.h" +class PrefRegistrySyncable; class PrefService; class PrefServiceSyncable; @@ -33,7 +34,8 @@ class Preferences : public PrefServiceSyncableObserver { virtual ~Preferences(); // This method will register the prefs associated with Chrome OS settings. - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefService* prefs, + PrefRegistrySyncable* registry); // This method will initialize Chrome OS settings to values in user prefs. void Init(PrefServiceSyncable* prefs); diff --git a/chrome/browser/chromeos/preferences_unittest.cc b/chrome/browser/chromeos/preferences_unittest.cc index caece5e..3587826 100644 --- a/chrome/browser/chromeos/preferences_unittest.cc +++ b/chrome/browser/chromeos/preferences_unittest.cc @@ -55,8 +55,8 @@ class MyMockInputMethodManager : public input_method::MockInputMethodManager { TEST(PreferencesTest, TestUpdatePrefOnBrowserScreenDetails) { TestingPrefServiceSyncable prefs; - Preferences::RegisterUserPrefs(&prefs); - DownloadPrefs::RegisterUserPrefs(&prefs); + Preferences::RegisterUserPrefs(&prefs, prefs.registry()); + DownloadPrefs::RegisterUserPrefs(&prefs, prefs.registry()); StringPrefMember previous; previous.Init(prefs::kLanguagePreviousInputMethod, &prefs); diff --git a/chrome/browser/chromeos/proxy_config_service_impl.cc b/chrome/browser/chromeos/proxy_config_service_impl.cc index cb375dd..528d22d 100644 --- a/chrome/browser/chromeos/proxy_config_service_impl.cc +++ b/chrome/browser/chromeos/proxy_config_service_impl.cc @@ -16,6 +16,7 @@ #include "chrome/browser/chromeos/settings/cros_settings_names.h" #include "chrome/browser/policy/proto/chrome_device_policy.pb.h" #include "chrome/browser/prefs/pref_registry_simple.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/proxy_config_dictionary.h" #include "chrome/browser/prefs/proxy_prefs.h" @@ -588,11 +589,10 @@ void ProxyConfigServiceImpl::RegisterPrefs(PrefRegistrySimple* registry) { } // static -void ProxyConfigServiceImpl::RegisterUserPrefs( - PrefServiceSyncable* pref_service) { - pref_service->RegisterBooleanPref(prefs::kUseSharedProxies, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); +void ProxyConfigServiceImpl::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kUseSharedProxies, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); } //------------------ ProxyConfigServiceImpl: private methods ------------------- diff --git a/chrome/browser/chromeos/proxy_config_service_impl.h b/chrome/browser/chromeos/proxy_config_service_impl.h index 07f7848..a6169da 100644 --- a/chrome/browser/chromeos/proxy_config_service_impl.h +++ b/chrome/browser/chromeos/proxy_config_service_impl.h @@ -14,6 +14,9 @@ #include "chrome/browser/chromeos/cros/network_library.h" #include "chrome/browser/net/pref_proxy_config_tracker_impl.h" +class PrefRegistrySimple; +class PrefRegistrySyncable; + namespace chromeos { // Implementation of proxy config service for chromeos that: @@ -200,7 +203,7 @@ class ProxyConfigServiceImpl // Register UseShardProxies preference. static void RegisterPrefs(PrefRegistrySimple* registry); - static void RegisterUserPrefs(PrefServiceSyncable* pref_service); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); #if defined(UNIT_TEST) void SetTesting(ProxyConfig* test_config) { diff --git a/chrome/browser/content_settings/content_settings_default_provider.cc b/chrome/browser/content_settings/content_settings_default_provider.cc index 9a9c738..5651955 100644 --- a/chrome/browser/content_settings/content_settings_default_provider.cc +++ b/chrome/browser/content_settings/content_settings_default_provider.cc @@ -13,6 +13,7 @@ #include "base/metrics/histogram.h" #include "chrome/browser/content_settings/content_settings_rule.h" #include "chrome/browser/content_settings/content_settings_utils.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/common/chrome_notification_types.h" @@ -87,7 +88,7 @@ class DefaultRuleIterator : public RuleIterator { } // namespace // static -void DefaultProvider::RegisterUserPrefs(PrefServiceSyncable* prefs) { +void DefaultProvider::RegisterUserPrefs(PrefRegistrySyncable* registry) { // The registration of the preference prefs::kDefaultContentSettings should // also include the default values for default content settings. This allows // functional tests to get default content settings by reading the preference @@ -95,9 +96,9 @@ void DefaultProvider::RegisterUserPrefs(PrefServiceSyncable* prefs) { // TODO(markusheintz): Write pyauto hooks for the content settings map as // content settings should be read from the host content settings map. DictionaryValue* default_content_settings = new DictionaryValue(); - prefs->RegisterDictionaryPref(prefs::kDefaultContentSettings, - default_content_settings, - PrefServiceSyncable::SYNCABLE_PREF); + registry->RegisterDictionaryPref(prefs::kDefaultContentSettings, + default_content_settings, + PrefRegistrySyncable::SYNCABLE_PREF); } DefaultProvider::DefaultProvider(PrefService* prefs, bool incognito) diff --git a/chrome/browser/content_settings/content_settings_default_provider.h b/chrome/browser/content_settings/content_settings_default_provider.h index d54a32f..28a2fe1 100644 --- a/chrome/browser/content_settings/content_settings_default_provider.h +++ b/chrome/browser/content_settings/content_settings_default_provider.h @@ -15,8 +15,8 @@ #include "base/synchronization/lock.h" #include "chrome/browser/content_settings/content_settings_observable_provider.h" +class PrefRegistrySyncable; class PrefService; -class PrefServiceSyncable; namespace content_settings { @@ -25,7 +25,7 @@ namespace content_settings { // default values. class DefaultProvider : public ObservableProvider { public: - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); DefaultProvider(PrefService* prefs, bool incognito); diff --git a/chrome/browser/content_settings/content_settings_policy_provider.cc b/chrome/browser/content_settings/content_settings_policy_provider.cc index 3ab6899..0687d6a 100644 --- a/chrome/browser/content_settings/content_settings_policy_provider.cc +++ b/chrome/browser/content_settings/content_settings_policy_provider.cc @@ -11,6 +11,7 @@ #include "base/values.h" #include "chrome/browser/content_settings/content_settings_rule.h" #include "chrome/browser/content_settings/content_settings_utils.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/common/chrome_notification_types.h" #include "chrome/common/content_settings_pattern.h" @@ -117,61 +118,61 @@ const PrefsForManagedContentSettingsMapEntry namespace content_settings { // static -void PolicyProvider::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterListPref(prefs::kManagedAutoSelectCertificateForUrls, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kManagedCookiesAllowedForUrls, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kManagedCookiesBlockedForUrls, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kManagedCookiesSessionOnlyForUrls, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kManagedImagesAllowedForUrls, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kManagedImagesBlockedForUrls, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kManagedJavaScriptAllowedForUrls, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kManagedJavaScriptBlockedForUrls, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kManagedPluginsAllowedForUrls, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kManagedPluginsBlockedForUrls, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kManagedPopupsAllowedForUrls, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kManagedPopupsBlockedForUrls, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kManagedNotificationsAllowedForUrls, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kManagedNotificationsBlockedForUrls, - PrefServiceSyncable::UNSYNCABLE_PREF); +void PolicyProvider::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterListPref(prefs::kManagedAutoSelectCertificateForUrls, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kManagedCookiesAllowedForUrls, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kManagedCookiesBlockedForUrls, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kManagedCookiesSessionOnlyForUrls, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kManagedImagesAllowedForUrls, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kManagedImagesBlockedForUrls, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kManagedJavaScriptAllowedForUrls, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kManagedJavaScriptBlockedForUrls, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kManagedPluginsAllowedForUrls, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kManagedPluginsBlockedForUrls, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kManagedPopupsAllowedForUrls, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kManagedPopupsBlockedForUrls, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kManagedNotificationsAllowedForUrls, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kManagedNotificationsBlockedForUrls, + PrefRegistrySyncable::UNSYNCABLE_PREF); // Preferences for default content setting policies. If a policy is not set of // the corresponding preferences below is set to CONTENT_SETTING_DEFAULT. - prefs->RegisterIntegerPref(prefs::kManagedDefaultCookiesSetting, - CONTENT_SETTING_DEFAULT, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kManagedDefaultImagesSetting, - CONTENT_SETTING_DEFAULT, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kManagedDefaultJavaScriptSetting, - CONTENT_SETTING_DEFAULT, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kManagedDefaultPluginsSetting, - CONTENT_SETTING_DEFAULT, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting, - CONTENT_SETTING_DEFAULT, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kManagedDefaultGeolocationSetting, - CONTENT_SETTING_DEFAULT, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting, - CONTENT_SETTING_DEFAULT, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kManagedDefaultMediaStreamSetting, - CONTENT_SETTING_DEFAULT, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kManagedDefaultCookiesSetting, + CONTENT_SETTING_DEFAULT, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kManagedDefaultImagesSetting, + CONTENT_SETTING_DEFAULT, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kManagedDefaultJavaScriptSetting, + CONTENT_SETTING_DEFAULT, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kManagedDefaultPluginsSetting, + CONTENT_SETTING_DEFAULT, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting, + CONTENT_SETTING_DEFAULT, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kManagedDefaultGeolocationSetting, + CONTENT_SETTING_DEFAULT, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting, + CONTENT_SETTING_DEFAULT, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kManagedDefaultMediaStreamSetting, + CONTENT_SETTING_DEFAULT, + PrefRegistrySyncable::UNSYNCABLE_PREF); } PolicyProvider::PolicyProvider(PrefService* prefs) : prefs_(prefs) { diff --git a/chrome/browser/content_settings/content_settings_policy_provider.h b/chrome/browser/content_settings/content_settings_policy_provider.h index eb8c3d01..6635996 100644 --- a/chrome/browser/content_settings/content_settings_policy_provider.h +++ b/chrome/browser/content_settings/content_settings_policy_provider.h @@ -16,7 +16,7 @@ #include "chrome/browser/content_settings/content_settings_origin_identifier_value_map.h" class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace content_settings { @@ -25,7 +25,7 @@ class PolicyProvider : public ObservableProvider { public: explicit PolicyProvider(PrefService* prefs); virtual ~PolicyProvider(); - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // ProviderInterface implementations. virtual RuleIterator* GetRuleIterator( diff --git a/chrome/browser/content_settings/content_settings_pref_provider.cc b/chrome/browser/content_settings/content_settings_pref_provider.cc index 87b58cc..33ba182 100644 --- a/chrome/browser/content_settings/content_settings_pref_provider.cc +++ b/chrome/browser/content_settings/content_settings_pref_provider.cc @@ -15,6 +15,7 @@ #include "chrome/browser/content_settings/content_settings_rule.h" #include "chrome/browser/content_settings/content_settings_utils.h" #include "chrome/browser/content_settings/host_content_settings_map.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/common/chrome_notification_types.h" @@ -71,13 +72,13 @@ namespace content_settings { // // static -void PrefProvider::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterIntegerPref( +void PrefProvider::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterIntegerPref( prefs::kContentSettingsVersion, ContentSettingsPattern::kContentSettingsPatternVersion, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDictionaryPref(prefs::kContentSettingsPatternPairs, - PrefServiceSyncable::SYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref(prefs::kContentSettingsPatternPairs, + PrefRegistrySyncable::SYNCABLE_PREF); } PrefProvider::PrefProvider(PrefService* prefs, diff --git a/chrome/browser/content_settings/content_settings_pref_provider.h b/chrome/browser/content_settings/content_settings_pref_provider.h index 3c87bed..4764138 100644 --- a/chrome/browser/content_settings/content_settings_pref_provider.h +++ b/chrome/browser/content_settings/content_settings_pref_provider.h @@ -17,7 +17,7 @@ #include "chrome/browser/content_settings/content_settings_utils.h" class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace base { class DictionaryValue; @@ -29,7 +29,7 @@ namespace content_settings { // preference. class PrefProvider : public ObservableProvider { public: - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); PrefProvider(PrefService* prefs, bool incognito); virtual ~PrefProvider(); diff --git a/chrome/browser/content_settings/content_settings_pref_provider_unittest.cc b/chrome/browser/content_settings/content_settings_pref_provider_unittest.cc index 3b2ce7e..ca8e570 100644 --- a/chrome/browser/content_settings/content_settings_pref_provider_unittest.cc +++ b/chrome/browser/content_settings/content_settings_pref_provider_unittest.cc @@ -17,8 +17,10 @@ #include "chrome/browser/content_settings/content_settings_mock_observer.h" #include "chrome/browser/content_settings/content_settings_utils.h" #include "chrome/browser/prefs/browser_prefs.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/pref_service_mock_builder.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" @@ -134,16 +136,18 @@ TEST_F(PrefProviderTest, Incognito) { PrefServiceMockBuilder builder; builder.WithUserPrefs(user_prefs); - PrefServiceSyncable* regular_prefs = builder.CreateSyncable(); + scoped_refptr<PrefRegistrySyncable> registry(new PrefRegistrySyncable); + PrefServiceSyncable* regular_prefs = builder.CreateSyncable(registry); - Profile::RegisterUserPrefs(regular_prefs); - chrome::RegisterUserPrefs(regular_prefs); + Profile::RegisterUserPrefs(registry); + chrome::RegisterUserPrefs(regular_prefs, registry); builder.WithUserPrefs(otr_user_prefs); - PrefServiceSyncable* otr_prefs = builder.CreateSyncable(); + scoped_refptr<PrefRegistrySyncable> otr_registry(new PrefRegistrySyncable); + PrefServiceSyncable* otr_prefs = builder.CreateSyncable(otr_registry); - Profile::RegisterUserPrefs(otr_prefs); - chrome::RegisterUserPrefs(otr_prefs); + Profile::RegisterUserPrefs(otr_registry); + chrome::RegisterUserPrefs(otr_prefs, otr_registry); TestingProfile profile; TestingProfile* otr_profile = new TestingProfile; @@ -368,7 +372,7 @@ TEST_F(PrefProviderTest, AutoSubmitCertificateContentSetting) { // http://crosbug.com/17760 TEST_F(PrefProviderTest, Deadlock) { TestingPrefServiceSyncable prefs; - PrefProvider::RegisterUserPrefs(&prefs); + PrefProvider::RegisterUserPrefs(prefs.registry()); // Chain of events: a preference changes, |PrefProvider| notices it, and reads // and writes the preference. When the preference is written, a notification diff --git a/chrome/browser/content_settings/cookie_settings.cc b/chrome/browser/content_settings/cookie_settings.cc index a9cf918..50753c2 100644 --- a/chrome/browser/content_settings/cookie_settings.cc +++ b/chrome/browser/content_settings/cookie_settings.cc @@ -7,6 +7,7 @@ #include "base/command_line.h" #include "chrome/browser/content_settings/content_settings_utils.h" #include "chrome/browser/content_settings/host_content_settings_map.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/profiles/profile_dependency_manager.h" @@ -65,10 +66,10 @@ CookieSettings::Factory::Factory() CookieSettings::Factory::~Factory() {} void CookieSettings::Factory::RegisterUserPrefs( - PrefServiceSyncable* user_prefs) { - user_prefs->RegisterBooleanPref(prefs::kBlockThirdPartyCookies, - false, - PrefServiceSyncable::SYNCABLE_PREF); + PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kBlockThirdPartyCookies, + false, + PrefRegistrySyncable::SYNCABLE_PREF); } bool CookieSettings::Factory::ServiceRedirectedInIncognito() const { diff --git a/chrome/browser/content_settings/cookie_settings.h b/chrome/browser/content_settings/cookie_settings.h index f76ce0d..5be1c4c 100644 --- a/chrome/browser/content_settings/cookie_settings.h +++ b/chrome/browser/content_settings/cookie_settings.h @@ -21,7 +21,7 @@ class ContentSettingsPattern; class CookieSettingsWrapper; class GURL; class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; // A frontend to the cookie settings of |HostContentSettingsMap|. Handles @@ -102,7 +102,7 @@ class CookieSettings bool setting_cookie, content_settings::SettingSource* source) const; - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); class Factory : public RefcountedProfileKeyedServiceFactory { public: @@ -120,7 +120,7 @@ class CookieSettings virtual ~Factory(); // |ProfileKeyedBaseFactory| methods: - virtual void RegisterUserPrefs(PrefServiceSyncable* user_prefs) OVERRIDE; + virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) OVERRIDE; virtual bool ServiceRedirectedInIncognito() const OVERRIDE; virtual scoped_refptr<RefcountedProfileKeyedService> BuildServiceInstanceFor(Profile* profile) const OVERRIDE; diff --git a/chrome/browser/content_settings/host_content_settings_map.cc b/chrome/browser/content_settings/host_content_settings_map.cc index 4503e06..f4ed324 100644 --- a/chrome/browser/content_settings/host_content_settings_map.cc +++ b/chrome/browser/content_settings/host_content_settings_map.cc @@ -23,6 +23,7 @@ #include "chrome/browser/content_settings/content_settings_utils.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/intents/web_intents_util.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/common/chrome_notification_types.h" #include "chrome/common/chrome_switches.h" @@ -130,19 +131,21 @@ void HostContentSettingsMap::RegisterExtensionService( #endif // static -void HostContentSettingsMap::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterIntegerPref(prefs::kContentSettingsWindowLastTabIndex, - 0, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kContentSettingsDefaultWhitelistVersion, - 0, PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kContentSettingsClearOnExitMigrated, - false, PrefServiceSyncable::SYNCABLE_PREF); +void HostContentSettingsMap::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterIntegerPref(prefs::kContentSettingsWindowLastTabIndex, + 0, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kContentSettingsDefaultWhitelistVersion, + 0, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kContentSettingsClearOnExitMigrated, + false, + PrefRegistrySyncable::SYNCABLE_PREF); // Register the prefs for the content settings providers. - content_settings::DefaultProvider::RegisterUserPrefs(prefs); - content_settings::PrefProvider::RegisterUserPrefs(prefs); - content_settings::PolicyProvider::RegisterUserPrefs(prefs); + content_settings::DefaultProvider::RegisterUserPrefs(registry); + content_settings::PrefProvider::RegisterUserPrefs(registry); + content_settings::PolicyProvider::RegisterUserPrefs(registry); } ContentSetting HostContentSettingsMap::GetDefaultContentSettingFromProvider( diff --git a/chrome/browser/content_settings/host_content_settings_map.h b/chrome/browser/content_settings/host_content_settings_map.h index 74421fa..635a3db 100644 --- a/chrome/browser/content_settings/host_content_settings_map.h +++ b/chrome/browser/content_settings/host_content_settings_map.h @@ -33,7 +33,7 @@ class ProviderInterface; class ExtensionService; class GURL; class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; class HostContentSettingsMap : public content_settings::Observer, @@ -57,7 +57,7 @@ class HostContentSettingsMap void RegisterExtensionService(ExtensionService* extension_service); #endif - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Returns the default setting for a particular content type. If |provider_id| // is not NULL, the id of the provider which provided the default setting is diff --git a/chrome/browser/custom_handlers/protocol_handler_registry.cc b/chrome/browser/custom_handlers/protocol_handler_registry.cc index 5d8ad6a..be39398 100644 --- a/chrome/browser/custom_handlers/protocol_handler_registry.cc +++ b/chrome/browser/custom_handlers/protocol_handler_registry.cc @@ -11,6 +11,7 @@ #include "base/logging.h" #include "chrome/browser/custom_handlers/register_protocol_handler_infobar_delegate.h" #include "chrome/browser/net/chrome_url_request_context.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile_io_data.h" #include "chrome/common/chrome_notification_types.h" @@ -732,13 +733,13 @@ void ProtocolHandlerRegistry::Shutdown() { // static void ProtocolHandlerRegistry::RegisterUserPrefs( - PrefServiceSyncable* pref_service) { - pref_service->RegisterListPref(prefs::kRegisteredProtocolHandlers, - PrefServiceSyncable::UNSYNCABLE_PREF); - pref_service->RegisterListPref(prefs::kIgnoredProtocolHandlers, - PrefServiceSyncable::UNSYNCABLE_PREF); - pref_service->RegisterBooleanPref(prefs::kCustomHandlersEnabled, true, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable* registry) { + registry->RegisterListPref(prefs::kRegisteredProtocolHandlers, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kIgnoredProtocolHandlers, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kCustomHandlersEnabled, true, + PrefRegistrySyncable::UNSYNCABLE_PREF); } ProtocolHandlerRegistry::~ProtocolHandlerRegistry() { diff --git a/chrome/browser/custom_handlers/protocol_handler_registry.h b/chrome/browser/custom_handlers/protocol_handler_registry.h index 47feb178..7926a7d 100644 --- a/chrome/browser/custom_handlers/protocol_handler_registry.h +++ b/chrome/browser/custom_handlers/protocol_handler_registry.h @@ -24,7 +24,7 @@ #include "net/url_request/url_request_job.h" #include "net/url_request/url_request_job_factory.h" -class PrefServiceSyncable; +class PrefRegistrySyncable; // This is where handlers for protocols registered with // navigator.registerProtocolHandler() are registered. Each Profile owns an @@ -245,7 +245,7 @@ class ProtocolHandlerRegistry : public ProfileKeyedService { virtual void Shutdown() OVERRIDE; // Registers the preferences that we store registered protocol handlers in. - static void RegisterUserPrefs(PrefServiceSyncable* prefService); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); bool enabled() const { return enabled_; } diff --git a/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc b/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc index 3937b1d..25f9063 100644 --- a/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc +++ b/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc @@ -10,6 +10,8 @@ #include "base/message_loop.h" #include "base/synchronization/waitable_event.h" #include "base/utf_string_conversions.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/common/chrome_notification_types.h" #include "chrome/common/custom_handlers/protocol_handler.h" #include "chrome/test/base/testing_browser_process.h" diff --git a/chrome/browser/devtools/devtools_window.cc b/chrome/browser/devtools/devtools_window.cc index f1f73c1..29b4823 100644 --- a/chrome/browser/devtools/devtools_window.cc +++ b/chrome/browser/devtools/devtools_window.cc @@ -17,7 +17,8 @@ #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_system.h" #include "chrome/browser/file_select_helper.h" -#include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/sessions/session_tab_helper.h" @@ -91,17 +92,17 @@ const int kMinDevToolsWidth = 150; const int kMinContentsSize = 50; // static -void DevToolsWindow::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterBooleanPref(prefs::kDevToolsOpenDocked, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kDevToolsDockSide, - kDockSideBottom, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDictionaryPref(prefs::kDevToolsEditedFiles, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDictionaryPref(prefs::kDevToolsFileSystemPaths, - PrefServiceSyncable::UNSYNCABLE_PREF); +void DevToolsWindow::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kDevToolsOpenDocked, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kDevToolsDockSide, + kDockSideBottom, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref(prefs::kDevToolsEditedFiles, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref(prefs::kDevToolsFileSystemPaths, + PrefRegistrySyncable::UNSYNCABLE_PREF); } // static @@ -386,10 +387,13 @@ void DevToolsWindow::CreateDevToolsBrowser() { wp_key.append("_"); wp_key.append(kDevToolsApp); - PrefServiceSyncable* prefs = profile_->GetPrefs(); + PrefService* prefs = profile_->GetPrefs(); + scoped_refptr<PrefRegistrySyncable> registry( + static_cast<PrefRegistrySyncable*>(prefs->DeprecatedGetPrefRegistry())); + // TODO(joi): All registration should be done up front. if (!prefs->FindPreference(wp_key.c_str())) { - prefs->RegisterDictionaryPref(wp_key.c_str(), - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref(wp_key.c_str(), + PrefRegistrySyncable::UNSYNCABLE_PREF); } const DictionaryValue* wp_pref = prefs->GetDictionary(wp_key.c_str()); diff --git a/chrome/browser/devtools/devtools_window.h b/chrome/browser/devtools/devtools_window.h index b62f541..d59a67d 100644 --- a/chrome/browser/devtools/devtools_window.h +++ b/chrome/browser/devtools/devtools_window.h @@ -22,7 +22,7 @@ class Browser; class BrowserWindow; class DevToolsControllerTest; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; namespace base { @@ -56,7 +56,7 @@ class DevToolsWindow : private content::NotificationObserver, private content::DevToolsFrontendHostDelegate { public: static const char kDevToolsApp[]; - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); static DevToolsWindow* GetDockedInstanceForInspectedTab( content::WebContents* inspected_tab); static bool IsDevToolsWindow(content::RenderViewHost* window_rvh); diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc index 28d613d..dcfbfd1 100644 --- a/chrome/browser/download/chrome_download_manager_delegate.cc +++ b/chrome/browser/download/chrome_download_manager_delegate.cc @@ -34,6 +34,7 @@ #include "chrome/browser/history/history_service_factory.h" #include "chrome/browser/intents/web_intents_util.h" #include "chrome/browser/platform_util.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/safe_browsing/safe_browsing_service.h" @@ -507,7 +508,7 @@ void ChromeDownloadManagerDelegate::GetSaveDir( base::FilePath* download_save_dir, bool* skip_dir_check) { Profile* profile = Profile::FromBrowserContext(browser_context); - PrefServiceSyncable* prefs = profile->GetPrefs(); + PrefService* prefs = profile->GetPrefs(); // Check whether the preference has the preferred directory for saving file. // If not, initialize it with default directory. @@ -515,9 +516,13 @@ void ChromeDownloadManagerDelegate::GetSaveDir( DCHECK(prefs->FindPreference(prefs::kDownloadDefaultDirectory)); base::FilePath default_save_path = prefs->GetFilePath( prefs::kDownloadDefaultDirectory); - prefs->RegisterFilePathPref(prefs::kSaveFileDefaultDirectory, - default_save_path, - PrefServiceSyncable::UNSYNCABLE_PREF); + + // TODO(joi): All registration should be done up front. + scoped_refptr<PrefRegistrySyncable> registry( + static_cast<PrefRegistrySyncable*>(prefs->DeprecatedGetPrefRegistry())); + registry->RegisterFilePathPref(prefs::kSaveFileDefaultDirectory, + default_save_path, + PrefRegistrySyncable::UNSYNCABLE_PREF); } // Get the directory from preference. diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download/download_prefs.cc index bd7c8ba..f3ecd58 100644 --- a/chrome/browser/download/download_prefs.cc +++ b/chrome/browser/download/download_prefs.cc @@ -20,6 +20,7 @@ #include "chrome/browser/download/download_service.h" #include "chrome/browser/download/download_service_factory.h" #include "chrome/browser/download/download_util.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/profiles/profile_manager.h" @@ -67,26 +68,27 @@ DownloadPrefs::~DownloadPrefs() { } // static -void DownloadPrefs::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterBooleanPref(prefs::kPromptForDownload, - false, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kDownloadExtensionsToOpen, - "", - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kDownloadDirUpgraded, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kSaveFileType, - content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML, - PrefServiceSyncable::UNSYNCABLE_PREF); +void DownloadPrefs::RegisterUserPrefs(PrefService* prefs, + PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kPromptForDownload, + false, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterStringPref(prefs::kDownloadExtensionsToOpen, + "", + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kDownloadDirUpgraded, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kSaveFileType, + content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML, + PrefRegistrySyncable::UNSYNCABLE_PREF); // The default download path is userprofile\download. const base::FilePath& default_download_path = download_util::GetDefaultDownloadDirectory(); - prefs->RegisterFilePathPref(prefs::kDownloadDefaultDirectory, - default_download_path, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterFilePathPref(prefs::kDownloadDefaultDirectory, + default_download_path, + PrefRegistrySyncable::UNSYNCABLE_PREF); #if defined(OS_CHROMEOS) // Ensure that the download directory specified in the preferences exists. @@ -96,6 +98,8 @@ void DownloadPrefs::RegisterUserPrefs(PrefServiceSyncable* prefs) { default_download_path)); #endif // defined(OS_CHROMEOS) + // TODO(joi): Move this out, and get rid of PrefService param above. + // If the download path is dangerous we forcefully reset it. But if we do // so we set a flag to make sure we only do it once, to avoid fighting // the user if he really wants it on an unsafe place such as the desktop. diff --git a/chrome/browser/download/download_prefs.h b/chrome/browser/download/download_prefs.h index 516bcfd..03b3742 100644 --- a/chrome/browser/download/download_prefs.h +++ b/chrome/browser/download/download_prefs.h @@ -10,7 +10,8 @@ #include "base/file_path.h" #include "base/prefs/public/pref_member.h" -class PrefServiceSyncable; +class PrefRegistrySyncable; +class PrefService; class Profile; namespace content { @@ -24,7 +25,8 @@ class DownloadPrefs { explicit DownloadPrefs(Profile* profile); ~DownloadPrefs(); - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefService* user_prefs, + PrefRegistrySyncable* registry); // Returns the DownloadPrefs corresponding to the given DownloadManager // or BrowserContext. diff --git a/chrome/browser/extensions/api/commands/command_service.cc b/chrome/browser/extensions/api/commands/command_service.cc index 91fae35..84b40e4 100644 --- a/chrome/browser/extensions/api/commands/command_service.cc +++ b/chrome/browser/extensions/api/commands/command_service.cc @@ -12,6 +12,7 @@ #include "chrome/browser/extensions/extension_keybinding_registry.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_system.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_notification_types.h" @@ -39,9 +40,9 @@ std::string GetPlatformKeybindingKeyForAccelerator( namespace extensions { // static -void CommandService::RegisterUserPrefs(PrefServiceSyncable* user_prefs) { - user_prefs->RegisterDictionaryPref(prefs::kExtensionCommands, - PrefServiceSyncable::SYNCABLE_PREF); +void CommandService::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterDictionaryPref(prefs::kExtensionCommands, + PrefRegistrySyncable::SYNCABLE_PREF); } CommandService::CommandService(Profile* profile) diff --git a/chrome/browser/extensions/api/commands/command_service.h b/chrome/browser/extensions/api/commands/command_service.h index 294c3c5..50c0af7 100644 --- a/chrome/browser/extensions/api/commands/command_service.h +++ b/chrome/browser/extensions/api/commands/command_service.h @@ -16,7 +16,7 @@ #include "content/public/browser/notification_registrar.h" #include "content/public/browser/notification_source.h" -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; namespace base { @@ -43,7 +43,7 @@ class CommandService : public ProfileKeyedAPI, }; // Register prefs for keybinding. - static void RegisterUserPrefs(PrefServiceSyncable* user_prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Constructs a CommandService object for the given profile. explicit CommandService(Profile* profile); diff --git a/chrome/browser/extensions/api/tabs/tabs_api.cc b/chrome/browser/extensions/api/tabs/tabs_api.cc index cfc2d29..2d2da44 100644 --- a/chrome/browser/extensions/api/tabs/tabs_api.cc +++ b/chrome/browser/extensions/api/tabs/tabs_api.cc @@ -32,6 +32,7 @@ #include "chrome/browser/extensions/window_controller.h" #include "chrome/browser/extensions/window_controller_list.h" #include "chrome/browser/prefs/incognito_mode_prefs.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/translate/translate_tab_helper.h" @@ -1813,9 +1814,9 @@ void TabsCaptureVisibleTabFunction::SendResultFromBitmap( } void TabsCaptureVisibleTabFunction::RegisterUserPrefs( - PrefServiceSyncable* service) { - service->RegisterBooleanPref(prefs::kDisableScreenshots, false, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kDisableScreenshots, false, + PrefRegistrySyncable::UNSYNCABLE_PREF); } bool TabsDetectLanguageFunction::RunImpl() { diff --git a/chrome/browser/extensions/api/tabs/tabs_api.h b/chrome/browser/extensions/api/tabs/tabs_api.h index 2e41121..d60abfe 100644 --- a/chrome/browser/extensions/api/tabs/tabs_api.h +++ b/chrome/browser/extensions/api/tabs/tabs_api.h @@ -18,7 +18,7 @@ class BackingStore; class GURL; -class PrefServiceSyncable; +class PrefRegistrySyncable; class SkBitmap; namespace base { @@ -177,7 +177,7 @@ class TabsDetectLanguageFunction : public AsyncExtensionFunction, class TabsCaptureVisibleTabFunction : public AsyncExtensionFunction, public content::NotificationObserver { public: - static void RegisterUserPrefs(PrefServiceSyncable* service); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); protected: enum ImageFormat { diff --git a/chrome/browser/extensions/component_loader.cc b/chrome/browser/extensions/component_loader.cc index 392c00e..a3e87cd 100644 --- a/chrome/browser/extensions/component_loader.cc +++ b/chrome/browser/extensions/component_loader.cc @@ -12,6 +12,7 @@ #include "base/prefs/public/pref_change_registrar.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/extensions/extension_service.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_notification_types.h" @@ -437,13 +438,13 @@ void ComponentLoader::UnloadComponent(ComponentExtensionInfo* component) { } // static -void ComponentLoader::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterStringPref(prefs::kEnterpriseWebStoreURL, - std::string() /* default_value */, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kEnterpriseWebStoreName, - std::string() /* default_value */, - PrefServiceSyncable::UNSYNCABLE_PREF); +void ComponentLoader::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterStringPref(prefs::kEnterpriseWebStoreURL, + std::string() /* default_value */, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kEnterpriseWebStoreName, + std::string() /* default_value */, + PrefRegistrySyncable::UNSYNCABLE_PREF); } } // namespace extensions diff --git a/chrome/browser/extensions/component_loader.h b/chrome/browser/extensions/component_loader.h index 95e1a653..682d69b 100644 --- a/chrome/browser/extensions/component_loader.h +++ b/chrome/browser/extensions/component_loader.h @@ -15,7 +15,7 @@ class ExtensionServiceInterface; class PrefServiceBase; -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace extensions { @@ -80,7 +80,7 @@ class ComponentLoader { // platforms this |skip_session_components| is expected to be unset. void AddDefaultComponentExtensions(bool skip_session_components); - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Parse the given JSON manifest. Returns NULL if it cannot be parsed, or if // if the result is not a DictionaryValue. diff --git a/chrome/browser/extensions/component_loader_unittest.cc b/chrome/browser/extensions/component_loader_unittest.cc index 6b270af..a9cdc83 100644 --- a/chrome/browser/extensions/component_loader_unittest.cc +++ b/chrome/browser/extensions/component_loader_unittest.cc @@ -10,6 +10,7 @@ #include "base/path_service.h" #include "chrome/browser/extensions/test_extension_service.h" #include "chrome/browser/prefs/pref_registry_simple.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_set.h" @@ -92,12 +93,14 @@ class ComponentLoaderTest : public testing::Test { &manifest_contents_)); // Register the user prefs that ComponentLoader will read. - prefs_.RegisterStringPref(prefs::kEnterpriseWebStoreURL, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs_.RegisterStringPref(prefs::kEnterpriseWebStoreName, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); + prefs_.registry()->RegisterStringPref( + prefs::kEnterpriseWebStoreURL, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + prefs_.registry()->RegisterStringPref( + prefs::kEnterpriseWebStoreName, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); // Register the local state prefs. #if defined(OS_CHROMEOS) diff --git a/chrome/browser/extensions/default_apps.cc b/chrome/browser/extensions/default_apps.cc index 6c98681..d268aeb 100644 --- a/chrome/browser/extensions/default_apps.cc +++ b/chrome/browser/extensions/default_apps.cc @@ -6,6 +6,7 @@ #include "base/command_line.h" #include "chrome/browser/browser_process.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #if !defined(OS_ANDROID) #include "chrome/browser/first_run/first_run.h" #endif @@ -48,9 +49,9 @@ bool IsLocaleSupported() { namespace default_apps { -void RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterIntegerPref(prefs::kDefaultAppsInstallState, kUnknown, - PrefServiceSyncable::UNSYNCABLE_PREF); +void RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterIntegerPref(prefs::kDefaultAppsInstallState, kUnknown, + PrefRegistrySyncable::UNSYNCABLE_PREF); } bool Provider::ShouldInstallInProfile() { diff --git a/chrome/browser/extensions/default_apps.h b/chrome/browser/extensions/default_apps.h index d5b16cb..31d21ea 100644 --- a/chrome/browser/extensions/default_apps.h +++ b/chrome/browser/extensions/default_apps.h @@ -9,7 +9,7 @@ #include "chrome/browser/extensions/external_provider_impl.h" #include "chrome/common/extensions/manifest.h" -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; namespace base { @@ -31,7 +31,7 @@ enum InstallState { // Register preference properties used by default apps to maintain // install state. -void RegisterUserPrefs(PrefServiceSyncable* prefs); +void RegisterUserPrefs(PrefRegistrySyncable* registry); // A specialization of the ExternalProviderImpl that conditionally installs apps // from the chrome::DIR_DEFAULT_APPS location based on a preference in the diff --git a/chrome/browser/extensions/extension_prefs.cc b/chrome/browser/extensions/extension_prefs.cc index c4a1296..8ccbf96 100644 --- a/chrome/browser/extensions/extension_prefs.cc +++ b/chrome/browser/extensions/extension_prefs.cc @@ -14,6 +14,7 @@ #include "chrome/browser/extensions/api/omnibox/omnibox_api.h" #include "chrome/browser/extensions/extension_pref_store.h" #include "chrome/browser/extensions/extension_sorting.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/common/chrome_notification_types.h" @@ -370,7 +371,7 @@ base::Time ExtensionPrefs::TimeProvider::GetCurrentTime() const { // static scoped_ptr<ExtensionPrefs> ExtensionPrefs::Create( - PrefServiceSyncable* prefs, + PrefService* prefs, const base::FilePath& root_dir, ExtensionPrefValueMap* extension_pref_value_map, bool extensions_disabled) { @@ -383,7 +384,7 @@ scoped_ptr<ExtensionPrefs> ExtensionPrefs::Create( // static scoped_ptr<ExtensionPrefs> ExtensionPrefs::Create( - PrefServiceSyncable* pref_service, + PrefService* pref_service, const base::FilePath& root_dir, ExtensionPrefValueMap* extension_pref_value_map, bool extensions_disabled, @@ -2188,7 +2189,7 @@ void ExtensionPrefs::SetGeometryCache( } ExtensionPrefs::ExtensionPrefs( - PrefServiceSyncable* prefs, + PrefService* prefs, const base::FilePath& root_dir, ExtensionPrefValueMap* extension_pref_value_map, scoped_ptr<TimeProvider> time_provider) @@ -2218,51 +2219,51 @@ bool ExtensionPrefs::NeedsStorageGarbageCollection() { } // static -void ExtensionPrefs::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterDictionaryPref(kExtensionsPref, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(kExtensionToolbar, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(kExtensionActionBox, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(kExtensionActionBoxBar, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kExtensionToolbarSize, - -1, // default value - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDictionaryPref(kExtensionsBlacklistUpdate, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kExtensionInstallAllowList, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kExtensionInstallDenyList, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDictionaryPref(prefs::kExtensionInstallForceList, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kExtensionAllowedTypes, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(kWebStoreLogin, - std::string(), // default value - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kExtensionBlacklistUpdateVersion, - "0", // default value - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kExtensionStorageGarbageCollect, - false, // default value - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterInt64Pref(prefs::kLastExtensionsUpdateCheck, - 0, // default value - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterInt64Pref(prefs::kNextExtensionsUpdateCheck, - 0, // default value - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kExtensionAllowedInstallSites, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(kExtensionsLastChromeVersion, - std::string(), // default value - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(kSideloadWipeoutDone, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); +void ExtensionPrefs::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterDictionaryPref(kExtensionsPref, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(kExtensionToolbar, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(kExtensionActionBox, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(kExtensionActionBoxBar, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kExtensionToolbarSize, + -1, // default value + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref(kExtensionsBlacklistUpdate, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kExtensionInstallAllowList, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kExtensionInstallDenyList, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref(prefs::kExtensionInstallForceList, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kExtensionAllowedTypes, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(kWebStoreLogin, + std::string(), // default value + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kExtensionBlacklistUpdateVersion, + "0", // default value + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kExtensionStorageGarbageCollect, + false, // default value + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterInt64Pref(prefs::kLastExtensionsUpdateCheck, + 0, // default value + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterInt64Pref(prefs::kNextExtensionsUpdateCheck, + 0, // default value + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kExtensionAllowedInstallSites, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(kExtensionsLastChromeVersion, + std::string(), // default value + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(kSideloadWipeoutDone, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); } ExtensionIdList ExtensionPrefs::GetExtensionPrefAsVector( diff --git a/chrome/browser/extensions/extension_prefs.h b/chrome/browser/extensions/extension_prefs.h index fd6121d..1c32070 100644 --- a/chrome/browser/extensions/extension_prefs.h +++ b/chrome/browser/extensions/extension_prefs.h @@ -24,7 +24,7 @@ class ExtensionPrefValueMap; class ExtensionSorting; class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace extensions { class ExtensionPrefsUninstallExtension; @@ -93,7 +93,7 @@ class ExtensionPrefs : public ContentSettingsStore::Observer, // Creates and initializes an ExtensionPrefs object. // Does not take ownership of |prefs| and |extension_pref_value_map|. static scoped_ptr<ExtensionPrefs> Create( - PrefServiceSyncable* prefs, + PrefService* prefs, const base::FilePath& root_dir, ExtensionPrefValueMap* extension_pref_value_map, bool extensions_disabled); @@ -101,7 +101,7 @@ class ExtensionPrefs : public ContentSettingsStore::Observer, // A version of Create which allows injection of a custom base::Time provider. // Use this as needed for testing. static scoped_ptr<ExtensionPrefs> Create( - PrefServiceSyncable* prefs, + PrefService* prefs, const base::FilePath& root_dir, ExtensionPrefValueMap* extension_pref_value_map, bool extensions_disabled, @@ -479,14 +479,14 @@ class ExtensionPrefs : public ContentSettingsStore::Observer, // found. base::Time GetInstallTime(const std::string& extension_id) const; - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); ContentSettingsStore* content_settings_store() { return content_settings_store_.get(); } // The underlying PrefService. - PrefServiceSyncable* pref_service() const { return prefs_; } + PrefService* pref_service() const { return prefs_; } // The underlying ExtensionSorting. ExtensionSorting* extension_sorting() const { @@ -515,7 +515,7 @@ class ExtensionPrefs : public ContentSettingsStore::Observer, friend class ExtensionPrefsUninstallExtension; // Unit test. // See the Create methods. - ExtensionPrefs(PrefServiceSyncable* prefs, + ExtensionPrefs(PrefService* prefs, const base::FilePath& root_dir, ExtensionPrefValueMap* extension_pref_value_map, scoped_ptr<TimeProvider> time_provider); @@ -635,7 +635,7 @@ class ExtensionPrefs : public ContentSettingsStore::Observer, DictionaryValue* extension_dict); // The pref service specific to this set of extension prefs. Owned by profile. - PrefServiceSyncable* prefs_; + PrefService* prefs_; // Base extensions install directory. base::FilePath install_directory_; diff --git a/chrome/browser/extensions/extension_prefs_unittest.cc b/chrome/browser/extensions/extension_prefs_unittest.cc index f328378..765fa37 100644 --- a/chrome/browser/extensions/extension_prefs_unittest.cc +++ b/chrome/browser/extensions/extension_prefs_unittest.cc @@ -15,6 +15,8 @@ #include "chrome/browser/extensions/extension_pref_value_map.h" #include "chrome/browser/extensions/extension_prefs.h" #include "chrome/browser/prefs/mock_pref_change_callback.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/extensions/extension_manifest_constants.h" @@ -59,10 +61,10 @@ ExtensionPrefsTest::ExtensionPrefsTest() ExtensionPrefsTest::~ExtensionPrefsTest() { } -void ExtensionPrefsTest::RegisterPreferences() {} +void ExtensionPrefsTest::RegisterPreferences(PrefRegistrySyncable* registry) {} void ExtensionPrefsTest::SetUp() { - RegisterPreferences(); + RegisterPreferences(prefs_.pref_registry()); Initialize(); } @@ -70,8 +72,9 @@ void ExtensionPrefsTest::TearDown() { Verify(); // Reset ExtensionPrefs, and re-verify. + prefs_.ResetPrefRegistry(); + RegisterPreferences(prefs_.pref_registry()); prefs_.RecreateExtensionPrefs(); - RegisterPreferences(); Verify(); prefs_.pref_service()->CommitPendingWrite(); message_loop_.RunUntilIdle(); @@ -820,15 +823,16 @@ ExtensionPrefsPrepopulatedTest::ExtensionPrefsPrepopulatedTest() ExtensionPrefsPrepopulatedTest::~ExtensionPrefsPrepopulatedTest() {} -void ExtensionPrefsPrepopulatedTest::RegisterPreferences() { - prefs()->pref_service()->RegisterStringPref( - kPref1, kDefaultPref1, PrefServiceSyncable::UNSYNCABLE_PREF); - prefs()->pref_service()->RegisterStringPref( - kPref2, kDefaultPref2, PrefServiceSyncable::UNSYNCABLE_PREF); - prefs()->pref_service()->RegisterStringPref( - kPref3, kDefaultPref3, PrefServiceSyncable::UNSYNCABLE_PREF); - prefs()->pref_service()->RegisterStringPref( - kPref4, kDefaultPref4, PrefServiceSyncable::UNSYNCABLE_PREF); +void ExtensionPrefsPrepopulatedTest::RegisterPreferences( + PrefRegistrySyncable* registry) { + registry->RegisterStringPref( + kPref1, kDefaultPref1, PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref( + kPref2, kDefaultPref2, PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref( + kPref3, kDefaultPref3, PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref( + kPref4, kDefaultPref4, PrefRegistrySyncable::UNSYNCABLE_PREF); } void ExtensionPrefsPrepopulatedTest::InstallExtControlledPref( diff --git a/chrome/browser/extensions/extension_prefs_unittest.h b/chrome/browser/extensions/extension_prefs_unittest.h index f96ffb6..c199d19 100644 --- a/chrome/browser/extensions/extension_prefs_unittest.h +++ b/chrome/browser/extensions/extension_prefs_unittest.h @@ -10,6 +10,8 @@ #include "content/public/test/test_browser_thread.h" #include "testing/gtest/include/gtest/gtest.h" +class PrefRegistrySyncable; + namespace base { class Value; } @@ -33,7 +35,7 @@ class ExtensionPrefsTest : public testing::Test { virtual void Verify() = 0; // This function is called to Register preference default values. - virtual void RegisterPreferences(); + virtual void RegisterPreferences(PrefRegistrySyncable* registry); virtual void SetUp() OVERRIDE; @@ -56,7 +58,7 @@ class ExtensionPrefsPrepopulatedTest : public ExtensionPrefsTest { ExtensionPrefsPrepopulatedTest(); virtual ~ExtensionPrefsPrepopulatedTest(); - virtual void RegisterPreferences() OVERRIDE; + virtual void RegisterPreferences(PrefRegistrySyncable* registry) OVERRIDE; void InstallExtControlledPref(Extension* ext, const std::string& key, diff --git a/chrome/browser/extensions/extension_service_unittest.cc b/chrome/browser/extensions/extension_service_unittest.cc index 86e9ecd..804d956 100644 --- a/chrome/browser/extensions/extension_service_unittest.cc +++ b/chrome/browser/extensions/extension_service_unittest.cc @@ -56,7 +56,9 @@ #include "chrome/browser/extensions/updater/extension_updater.h" #include "chrome/browser/plugins/plugin_prefs_factory.h" #include "chrome/browser/prefs/browser_prefs.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service_mock_builder.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/common/chrome_constants.h" #include "chrome/common/chrome_notification_types.h" @@ -444,9 +446,10 @@ void ExtensionServiceTestBase::InitializeExtensionService( PrefServiceMockBuilder builder; builder.WithUserFilePrefs( pref_file, loop_.message_loop_proxy()); - scoped_ptr<PrefServiceSyncable> prefs(builder.CreateSyncable()); - Profile::RegisterUserPrefs(prefs.get()); - chrome::RegisterUserPrefs(prefs.get()); + scoped_refptr<PrefRegistrySyncable> registry(new PrefRegistrySyncable); + scoped_ptr<PrefServiceSyncable> prefs(builder.CreateSyncable(registry)); + Profile::RegisterUserPrefs(registry); + chrome::RegisterUserPrefs(prefs.get(), registry); profile_builder.SetPrefService(prefs.Pass()); profile_builder.SetPath(profile_path); profile_ = profile_builder.Build(); diff --git a/chrome/browser/extensions/extension_web_ui.cc b/chrome/browser/extensions/extension_web_ui.cc index 35b679a..7e41fca 100644 --- a/chrome/browser/extensions/extension_web_ui.cc +++ b/chrome/browser/extensions/extension_web_ui.cc @@ -15,6 +15,7 @@ #include "chrome/browser/extensions/extension_tab_util.h" #include "chrome/browser/extensions/image_loader.h" #include "chrome/browser/favicon/favicon_util.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" @@ -180,9 +181,9 @@ ExtensionWebUI::bookmark_manager_private_event_router() { // chrome:// URL overrides // static -void ExtensionWebUI::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterDictionaryPref(kExtensionURLOverrides, - PrefServiceSyncable::UNSYNCABLE_PREF); +void ExtensionWebUI::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterDictionaryPref(kExtensionURLOverrides, + PrefRegistrySyncable::UNSYNCABLE_PREF); } // static diff --git a/chrome/browser/extensions/extension_web_ui.h b/chrome/browser/extensions/extension_web_ui.h index 46ce3a6..f1d8f2a 100644 --- a/chrome/browser/extensions/extension_web_ui.h +++ b/chrome/browser/extensions/extension_web_ui.h @@ -21,7 +21,7 @@ namespace extensions { class BookmarkManagerPrivateEventRouter; } -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; // This class implements WebUI for extensions and allows extensions to put UI in @@ -57,7 +57,7 @@ class ExtensionWebUI : public content::WebUIController { const base::Value* override); // Called from BrowserPrefs - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Get the favicon for the extension by getting an icon from the manifest. // Note. |callback| is always run asynchronously. diff --git a/chrome/browser/extensions/menu_manager_unittest.cc b/chrome/browser/extensions/menu_manager_unittest.cc index 6f4bae3..4050315 100644 --- a/chrome/browser/extensions/menu_manager_unittest.cc +++ b/chrome/browser/extensions/menu_manager_unittest.cc @@ -18,6 +18,7 @@ #include "chrome/browser/extensions/test_extension_prefs.h" #include "chrome/browser/extensions/test_extension_system.h" #include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/common/chrome_notification_types.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/extensions/extension.h" diff --git a/chrome/browser/extensions/platform_app_browsertest.cc b/chrome/browser/extensions/platform_app_browsertest.cc index 8045b41..1b2fe67 100644 --- a/chrome/browser/extensions/platform_app_browsertest.cc +++ b/chrome/browser/extensions/platform_app_browsertest.cc @@ -18,6 +18,7 @@ #include "chrome/browser/extensions/platform_app_browsertest_util.h" #include "chrome/browser/extensions/platform_app_launcher.h" #include "chrome/browser/extensions/shell_window_registry.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/tab_contents/render_view_context_menu.h" #include "chrome/browser/ui/browser.h" @@ -875,8 +876,11 @@ IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, std::string pref_path("extensions.settings."); pref_path += extension->id(); pref_path += ".manifest.version"; - extension_prefs->pref_service()->RegisterStringPref( - pref_path.c_str(), std::string(), PrefServiceSyncable::UNSYNCABLE_PREF); + // TODO(joi): Do registrations up front. + PrefRegistrySyncable* registry = static_cast<PrefRegistrySyncable*>( + extension_prefs->pref_service()->DeprecatedGetPrefRegistry()); + registry->RegisterStringPref( + pref_path.c_str(), std::string(), PrefRegistrySyncable::UNSYNCABLE_PREF); extension_prefs->pref_service()->Set(pref_path.c_str(), old_version); } diff --git a/chrome/browser/extensions/shell_window_geometry_cache_unittest.cc b/chrome/browser/extensions/shell_window_geometry_cache_unittest.cc index 44d7676..d6e7ce4 100644 --- a/chrome/browser/extensions/shell_window_geometry_cache_unittest.cc +++ b/chrome/browser/extensions/shell_window_geometry_cache_unittest.cc @@ -8,6 +8,7 @@ #include "chrome/browser/extensions/shell_window_geometry_cache.h" #include "chrome/browser/extensions/test_extension_prefs.h" #include "chrome/browser/prefs/mock_pref_change_callback.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/test/base/testing_profile.h" #include "content/public/test/test_browser_thread.h" #include "content/public/test/test_utils.h" diff --git a/chrome/browser/extensions/test_extension_prefs.cc b/chrome/browser/extensions/test_extension_prefs.cc index 08f1e31..5424931 100644 --- a/chrome/browser/extensions/test_extension_prefs.cc +++ b/chrome/browser/extensions/test_extension_prefs.cc @@ -18,8 +18,9 @@ #include "chrome/browser/extensions/extension_pref_store.h" #include "chrome/browser/extensions/extension_pref_value_map.h" #include "chrome/browser/extensions/extension_prefs.h" -#include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service_mock_builder.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/prefs/pref_value_store.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_manifest_constants.h" @@ -56,21 +57,35 @@ class IncrementalTimeProvider : public ExtensionPrefs::TimeProvider { } // namespace -TestExtensionPrefs::TestExtensionPrefs( - base::SequencedTaskRunner* task_runner) : pref_service_(NULL), - task_runner_(task_runner), - extensions_disabled_(false) { +TestExtensionPrefs::TestExtensionPrefs(base::SequencedTaskRunner* task_runner) + : pref_service_(NULL), + task_runner_(task_runner), + extensions_disabled_(false) { EXPECT_TRUE(temp_dir_.CreateUniqueTempDir()); preferences_file_ = temp_dir_.path().AppendASCII("Preferences"); extensions_dir_ = temp_dir_.path().AppendASCII("Extensions"); EXPECT_TRUE(file_util::CreateDirectory(extensions_dir_)); + ResetPrefRegistry(); RecreateExtensionPrefs(); } TestExtensionPrefs::~TestExtensionPrefs() { } +PrefService* TestExtensionPrefs::pref_service() { + return pref_service_.get(); +} + +const scoped_refptr<PrefRegistrySyncable>& TestExtensionPrefs::pref_registry() { + return pref_registry_; +} + +void TestExtensionPrefs::ResetPrefRegistry() { + pref_registry_ = new PrefRegistrySyncable; + ExtensionPrefs::RegisterUserPrefs(pref_registry_); +} + void TestExtensionPrefs::RecreateExtensionPrefs() { // We persist and reload the PrefService's PrefStores because this process // deletes all empty dictionaries. The ExtensionPrefs implementation @@ -93,8 +108,7 @@ void TestExtensionPrefs::RecreateExtensionPrefs() { builder.WithUserFilePrefs(preferences_file_, task_runner_); builder.WithExtensionPrefs( new ExtensionPrefStore(extension_pref_value_map_.get(), false)); - pref_service_.reset(builder.CreateSyncable()); - ExtensionPrefs::RegisterUserPrefs(pref_service_.get()); + pref_service_.reset(builder.CreateSyncable(pref_registry_)); prefs_ = ExtensionPrefs::Create( pref_service_.get(), @@ -156,7 +170,7 @@ std::string TestExtensionPrefs::AddExtensionAndReturnId(std::string name) { return extension->id(); } -PrefServiceSyncable* TestExtensionPrefs::CreateIncognitoPrefService() const { +PrefService* TestExtensionPrefs::CreateIncognitoPrefService() const { return pref_service_->CreateIncognitoPrefService( new ExtensionPrefStore(extension_pref_value_map_.get(), true)); } diff --git a/chrome/browser/extensions/test_extension_prefs.h b/chrome/browser/extensions/test_extension_prefs.h index 1b7fc70..b28aa5e 100644 --- a/chrome/browser/extensions/test_extension_prefs.h +++ b/chrome/browser/extensions/test_extension_prefs.h @@ -13,6 +13,8 @@ #include "chrome/common/extensions/manifest.h" class ExtensionPrefValueMap; +class PrefRegistrySyncable; +class PrefService; class PrefServiceSyncable; namespace base { @@ -35,7 +37,9 @@ class TestExtensionPrefs { const ExtensionPrefs& const_prefs() const { return *prefs_.get(); } - PrefServiceSyncable* pref_service() { return pref_service_.get(); } + PrefService* pref_service(); + const scoped_refptr<PrefRegistrySyncable>& pref_registry(); + void ResetPrefRegistry(); const base::FilePath& temp_dir() const { return temp_dir_.path(); } const base::FilePath& extensions_dir() const { return extensions_dir_; } @@ -67,7 +71,7 @@ class TestExtensionPrefs { // assigned. std::string AddExtensionAndReturnId(std::string name); - PrefServiceSyncable* CreateIncognitoPrefService() const; + PrefService* CreateIncognitoPrefService() const; // Allows disabling the loading of preferences of extensions. Becomes // active after calling RecreateExtensionPrefs(). Defaults to false. @@ -77,6 +81,7 @@ class TestExtensionPrefs { base::ScopedTempDir temp_dir_; base::FilePath preferences_file_; base::FilePath extensions_dir_; + scoped_refptr<PrefRegistrySyncable> pref_registry_; scoped_ptr<PrefServiceSyncable> pref_service_; scoped_ptr<ExtensionPrefs> prefs_; scoped_ptr<ExtensionPrefValueMap> extension_pref_value_map_; diff --git a/chrome/browser/extensions/updater/extension_updater_unittest.cc b/chrome/browser/extensions/updater/extension_updater_unittest.cc index 2f12185..1551700 100644 --- a/chrome/browser/extensions/updater/extension_updater_unittest.cc +++ b/chrome/browser/extensions/updater/extension_updater_unittest.cc @@ -39,7 +39,7 @@ #include "chrome/browser/extensions/updater/manifest_fetch_data.h" #include "chrome/browser/extensions/updater/request_queue_impl.h" #include "chrome/browser/google/google_util.h" -#include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/common/chrome_notification_types.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_manifest_constants.h" @@ -224,7 +224,7 @@ class MockService : public TestExtensionService { ExtensionPrefs* extension_prefs() { return prefs_->prefs(); } - PrefServiceSyncable* pref_service() { return prefs_->pref_service(); } + PrefService* pref_service() { return prefs_->pref_service(); } Blacklist* blacklist() { return &blacklist_; } diff --git a/chrome/browser/first_run/first_run.cc b/chrome/browser/first_run/first_run.cc index 39eb69a..3c06b3c 100644 --- a/chrome/browser/first_run/first_run.cc +++ b/chrome/browser/first_run/first_run.cc @@ -26,6 +26,7 @@ #include "chrome/browser/importer/importer_progress_dialog.h" #include "chrome/browser/importer/importer_progress_observer.h" #include "chrome/browser/prefs/pref_registry_simple.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/process_singleton.h" #include "chrome/browser/profiles/profile_manager.h" @@ -410,10 +411,10 @@ std::string GetPingDelayPrefName() { installer::master_preferences::kDistroPingDelay); } -void RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterIntegerPref(GetPingDelayPrefName().c_str(), - 0, - PrefServiceSyncable::UNSYNCABLE_PREF); +void RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterIntegerPref(GetPingDelayPrefName().c_str(), + 0, + PrefRegistrySyncable::UNSYNCABLE_PREF); } bool RemoveSentinel() { diff --git a/chrome/browser/first_run/first_run.h b/chrome/browser/first_run/first_run.h index cf93bcf..299d78d 100644 --- a/chrome/browser/first_run/first_run.h +++ b/chrome/browser/first_run/first_run.h @@ -18,7 +18,7 @@ class CommandLine; class GURL; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; class ProcessSingleton; @@ -83,7 +83,7 @@ bool CreateSentinel(); std::string GetPingDelayPrefName(); // Register user preferences used by the MasterPrefs structure. -void RegisterUserPrefs(PrefServiceSyncable* prefs); +void RegisterUserPrefs(PrefRegistrySyncable* registry); // Removes the sentinel file created in ConfigDone(). Returns false if the // sentinel file could not be removed. diff --git a/chrome/browser/geolocation/chrome_geolocation_permission_context_factory.cc b/chrome/browser/geolocation/chrome_geolocation_permission_context_factory.cc index 985ab16..1cab5df 100644 --- a/chrome/browser/geolocation/chrome_geolocation_permission_context_factory.cc +++ b/chrome/browser/geolocation/chrome_geolocation_permission_context_factory.cc @@ -4,6 +4,7 @@ #include "chrome/browser/geolocation/chrome_geolocation_permission_context_factory.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/profiles/profile_dependency_manager.h" #include "chrome/common/pref_names.h" #if defined(OS_ANDROID) @@ -71,11 +72,11 @@ ChromeGeolocationPermissionContextFactory::BuildServiceInstanceFor( } void ChromeGeolocationPermissionContextFactory::RegisterUserPrefs( - PrefServiceSyncable* user_prefs) { + PrefRegistrySyncable* registry) { #if defined(OS_ANDROID) - user_prefs->RegisterBooleanPref(prefs::kGeolocationEnabled, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kGeolocationEnabled, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); #endif } diff --git a/chrome/browser/geolocation/chrome_geolocation_permission_context_factory.h b/chrome/browser/geolocation/chrome_geolocation_permission_context_factory.h index b928fe6..3ab4289 100644 --- a/chrome/browser/geolocation/chrome_geolocation_permission_context_factory.h +++ b/chrome/browser/geolocation/chrome_geolocation_permission_context_factory.h @@ -11,6 +11,7 @@ #include "chrome/browser/profiles/profile_keyed_service_factory.h" class ChromeGeolocationPermissionContext; +class PrefRegistrySyncable; class Profile; class ChromeGeolocationPermissionContextFactory @@ -30,7 +31,7 @@ class ChromeGeolocationPermissionContextFactory // |ProfileKeyedBaseFactory| methods: virtual ProfileKeyedService* BuildServiceInstanceFor(Profile* profile) const OVERRIDE; - virtual void RegisterUserPrefs(PrefServiceSyncable* user_prefs) OVERRIDE; + virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) OVERRIDE; virtual bool ServiceRedirectedInIncognito() const OVERRIDE; DISALLOW_COPY_AND_ASSIGN(ChromeGeolocationPermissionContextFactory); diff --git a/chrome/browser/geolocation/geolocation_prefs.h b/chrome/browser/geolocation/geolocation_prefs.h index d5be8e5..999619c 100644 --- a/chrome/browser/geolocation/geolocation_prefs.h +++ b/chrome/browser/geolocation/geolocation_prefs.h @@ -6,7 +6,6 @@ #define CHROME_BROWSER_GEOLOCATION_GEOLOCATION_PREFS_H_ class PrefRegistrySimple; -class PrefServiceSyncable; namespace geolocation { void RegisterPrefs(PrefRegistrySimple* registry); diff --git a/chrome/browser/google/google_url_tracker_factory.cc b/chrome/browser/google/google_url_tracker_factory.cc index 732cdc1..ad49875 100644 --- a/chrome/browser/google/google_url_tracker_factory.cc +++ b/chrome/browser/google/google_url_tracker_factory.cc @@ -5,6 +5,7 @@ #include "chrome/browser/google/google_url_tracker_factory.h" #include "chrome/browser/google/google_url_tracker.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile_dependency_manager.h" #include "chrome/common/pref_names.h" @@ -35,13 +36,13 @@ ProfileKeyedService* GoogleURLTrackerFactory::BuildServiceInstanceFor( } void GoogleURLTrackerFactory::RegisterUserPrefs( - PrefServiceSyncable* user_prefs) { + PrefRegistrySyncable* user_prefs) { user_prefs->RegisterStringPref(prefs::kLastKnownGoogleURL, GoogleURLTracker::kDefaultGoogleHomepage, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); user_prefs->RegisterStringPref(prefs::kLastPromptedGoogleURL, std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); } bool GoogleURLTrackerFactory::ServiceRedirectedInIncognito() const { diff --git a/chrome/browser/google/google_url_tracker_factory.h b/chrome/browser/google/google_url_tracker_factory.h index e74d112..47e6624 100644 --- a/chrome/browser/google/google_url_tracker_factory.h +++ b/chrome/browser/google/google_url_tracker_factory.h @@ -10,7 +10,7 @@ #include "chrome/browser/profiles/profile_keyed_service_factory.h" class GoogleURLTracker; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; // Singleton that owns all GoogleURLTrackers and associates them with Profiles. @@ -31,7 +31,7 @@ class GoogleURLTrackerFactory : public ProfileKeyedServiceFactory { // ProfileKeyedServiceFactory: virtual ProfileKeyedService* BuildServiceInstanceFor( Profile* profile) const OVERRIDE; - virtual void RegisterUserPrefs(PrefServiceSyncable* user_prefs) OVERRIDE; + virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) OVERRIDE; virtual bool ServiceRedirectedInIncognito() const OVERRIDE; virtual bool ServiceIsCreatedWithProfile() const OVERRIDE; virtual bool ServiceIsNULLWhileTesting() const OVERRIDE; diff --git a/chrome/browser/intents/web_intents_util.cc b/chrome/browser/intents/web_intents_util.cc index 868d8d0..0624a10 100644 --- a/chrome/browser/intents/web_intents_util.cc +++ b/chrome/browser/intents/web_intents_util.cc @@ -7,6 +7,7 @@ #include "base/command_line.h" #include "base/string_util.h" #include "base/utf_string_conversions.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/ui/browser.h" @@ -59,9 +60,9 @@ const char kQuickOfficeViewerServiceURL[] = const char kQuickOfficeViewerDevServiceURL[] = "chrome-extension://ionpfmkccalenbmnddpbmocokhaknphg/views/appEditor.html"; -void RegisterUserPrefs(PrefServiceSyncable* user_prefs) { - user_prefs->RegisterBooleanPref(prefs::kWebIntentsEnabled, true, - PrefServiceSyncable::SYNCABLE_PREF); +void RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kWebIntentsEnabled, true, + PrefRegistrySyncable::SYNCABLE_PREF); } bool IsWebIntentsEnabled(PrefService* prefs) { diff --git a/chrome/browser/intents/web_intents_util.h b/chrome/browser/intents/web_intents_util.h index e53286d..2dfa99f 100644 --- a/chrome/browser/intents/web_intents_util.h +++ b/chrome/browser/intents/web_intents_util.h @@ -10,7 +10,7 @@ class Browser; class Profile; class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace web_intents { @@ -38,7 +38,7 @@ extern const char kQuickOfficeViewerServiceURL[]; extern const char kQuickOfficeViewerDevServiceURL[]; // Registers the preferences related to Web Intents. -void RegisterUserPrefs(PrefServiceSyncable* user_prefs); +void RegisterUserPrefs(PrefRegistrySyncable* registry); // Returns true if WebIntents are enabled in preferences. bool IsWebIntentsEnabled(PrefService* prefs); diff --git a/chrome/browser/managed_mode/managed_mode.h b/chrome/browser/managed_mode/managed_mode.h index 8318336..7301624 100644 --- a/chrome/browser/managed_mode/managed_mode.h +++ b/chrome/browser/managed_mode/managed_mode.h @@ -25,7 +25,7 @@ class ManagedModeSiteList; class ManagedModeURLFilter; class PrefChangeRegistrar; class PrefRegistrySimple; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; namespace policy { diff --git a/chrome/browser/managed_mode/managed_mode_browsertest.cc b/chrome/browser/managed_mode/managed_mode_browsertest.cc index 3b32f64..f3de7d1 100644 --- a/chrome/browser/managed_mode/managed_mode_browsertest.cc +++ b/chrome/browser/managed_mode/managed_mode_browsertest.cc @@ -11,7 +11,8 @@ #include "chrome/browser/managed_mode/managed_mode.h" #include "chrome/browser/managed_mode/managed_user_service.h" #include "chrome/browser/managed_mode/managed_user_service_factory.h" -#include "chrome/browser/prefs/pref_service_syncable.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/ui/browser.h" #include "chrome/browser/ui/browser_navigator.h" diff --git a/chrome/browser/managed_mode/managed_user_service.cc b/chrome/browser/managed_mode/managed_user_service.cc index 756c97d..045dc9a 100644 --- a/chrome/browser/managed_mode/managed_user_service.cc +++ b/chrome/browser/managed_mode/managed_user_service.cc @@ -9,6 +9,7 @@ #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_system.h" #include "chrome/browser/managed_mode/managed_mode_site_list.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" @@ -98,14 +99,14 @@ bool ManagedUserService::ProfileIsManaged() const { } // static -void ManagedUserService::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterDictionaryPref(prefs::kManagedModeManualHosts, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDictionaryPref(prefs::kManagedModeManualURLs, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kDefaultManagedModeFilteringBehavior, - ManagedModeURLFilter::BLOCK, - PrefServiceSyncable::UNSYNCABLE_PREF); +void ManagedUserService::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterDictionaryPref(prefs::kManagedModeManualHosts, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref(prefs::kManagedModeManualURLs, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kDefaultManagedModeFilteringBehavior, + ManagedModeURLFilter::BLOCK, + PrefRegistrySyncable::UNSYNCABLE_PREF); } scoped_refptr<const ManagedModeURLFilter> diff --git a/chrome/browser/managed_mode/managed_user_service.h b/chrome/browser/managed_mode/managed_user_service.h index 7120eee..1f7e781 100644 --- a/chrome/browser/managed_mode/managed_user_service.h +++ b/chrome/browser/managed_mode/managed_user_service.h @@ -17,7 +17,7 @@ class ManagedModeURLFilter; class ManagedModeSiteList; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; // This class handles all the information related to a given managed profile @@ -40,7 +40,7 @@ class ManagedUserService : public ProfileKeyedService, bool ProfileIsManaged() const; - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Returns the URL filter for the IO thread, for filtering network requests // (in ManagedModeResourceThrottle). diff --git a/chrome/browser/media/media_capture_devices_dispatcher.cc b/chrome/browser/media/media_capture_devices_dispatcher.cc index 23136c9..215b58d 100644 --- a/chrome/browser/media/media_capture_devices_dispatcher.cc +++ b/chrome/browser/media/media_capture_devices_dispatcher.cc @@ -5,6 +5,8 @@ #include "chrome/browser/media/media_capture_devices_dispatcher.h" #include "chrome/browser/media/media_stream_capture_indicator.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" +#include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/pref_names.h" @@ -47,16 +49,18 @@ MediaCaptureDevicesDispatcher::MediaCaptureDevicesDispatcher() MediaCaptureDevicesDispatcher::~MediaCaptureDevicesDispatcher() {} void MediaCaptureDevicesDispatcher::RegisterUserPrefs( - PrefServiceSyncable* user_prefs) { + PrefService* user_prefs, + PrefRegistrySyncable* registry) { + // TODO(joi): Get rid of the need for PrefService param above. if (!user_prefs->FindPreference(prefs::kDefaultAudioCaptureDevice)) { - user_prefs->RegisterStringPref(prefs::kDefaultAudioCaptureDevice, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kDefaultAudioCaptureDevice, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); } if (!user_prefs->FindPreference(prefs::kDefaultVideoCaptureDevice)) { - user_prefs->RegisterStringPref(prefs::kDefaultVideoCaptureDevice, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kDefaultVideoCaptureDevice, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); } } diff --git a/chrome/browser/media/media_capture_devices_dispatcher.h b/chrome/browser/media/media_capture_devices_dispatcher.h index b28bb2f..8c35331 100644 --- a/chrome/browser/media/media_capture_devices_dispatcher.h +++ b/chrome/browser/media/media_capture_devices_dispatcher.h @@ -13,7 +13,8 @@ #include "content/public/common/media_stream_request.h" class MediaStreamCaptureIndicator; -class PrefServiceSyncable; +class PrefRegistrySyncable; +class PrefService; class Profile; // This singleton is used to receive updates about media events from the content @@ -45,7 +46,8 @@ class MediaCaptureDevicesDispatcher : public content::MediaObserver { static MediaCaptureDevicesDispatcher* GetInstance(); // Registers the preferences related to Media Stream default devices. - static void RegisterUserPrefs(PrefServiceSyncable* user_prefs); + static void RegisterUserPrefs(PrefService* user_prefs, + PrefRegistrySyncable* registry); // Methods for observers. Called on UI thread. // Observers should add themselves on construction and remove themselves diff --git a/chrome/browser/media/media_stream_devices_controller.cc b/chrome/browser/media/media_stream_devices_controller.cc index e07b7cc..08bc4cc 100644 --- a/chrome/browser/media/media_stream_devices_controller.cc +++ b/chrome/browser/media/media_stream_devices_controller.cc @@ -12,6 +12,8 @@ #include "chrome/browser/extensions/api/tab_capture/tab_capture_registry.h" #include "chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.h" #include "chrome/browser/media/media_capture_devices_dispatcher.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" +#include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" @@ -66,13 +68,13 @@ MediaStreamDevicesController::~MediaStreamDevicesController() {} // static void MediaStreamDevicesController::RegisterUserPrefs( - PrefServiceSyncable* prefs) { + PrefRegistrySyncable* prefs) { prefs->RegisterBooleanPref(prefs::kVideoCaptureAllowed, true, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); prefs->RegisterBooleanPref(prefs::kAudioCaptureAllowed, true, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); } @@ -184,11 +186,11 @@ MediaStreamDevicesController::DevicePolicy MediaStreamDevicesController::GetDevicePolicy(const char* policy_name) const { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - PrefServiceSyncable* pref = profile_->GetPrefs(); - if (!pref->IsManagedPreference(policy_name)) + PrefService* prefs = profile_->GetPrefs(); + if (!prefs->IsManagedPreference(policy_name)) return POLICY_NOT_SET; - return pref->GetBoolean(policy_name) ? ALWAYS_ALLOW : ALWAYS_DENY; + return prefs->GetBoolean(policy_name) ? ALWAYS_ALLOW : ALWAYS_DENY; } bool MediaStreamDevicesController::IsRequestAllowedByDefault() const { diff --git a/chrome/browser/media/media_stream_devices_controller.h b/chrome/browser/media/media_stream_devices_controller.h index 4139a42..5276b72 100644 --- a/chrome/browser/media/media_stream_devices_controller.h +++ b/chrome/browser/media/media_stream_devices_controller.h @@ -9,7 +9,7 @@ #include "content/public/browser/web_contents_delegate.h" -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; class TabSpecificContentSettings; @@ -23,7 +23,7 @@ class MediaStreamDevicesController { virtual ~MediaStreamDevicesController(); // Registers the prefs backing the audio and video policies. - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Public method to be called before creating the MediaStreamInfoBarDelegate. // This function will check the content settings exceptions and take the diff --git a/chrome/browser/media_gallery/media_galleries_preferences.cc b/chrome/browser/media_gallery/media_galleries_preferences.cc index bce2a38..978035d 100644 --- a/chrome/browser/media_gallery/media_galleries_preferences.cc +++ b/chrome/browser/media_gallery/media_galleries_preferences.cc @@ -14,6 +14,7 @@ #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_system.h" #include "chrome/browser/media_gallery/media_file_system_registry.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" @@ -476,12 +477,13 @@ bool MediaGalleriesPreferences::APIHasBeenUsed(Profile* profile) { } // static -void MediaGalleriesPreferences::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterListPref(prefs::kMediaGalleriesRememberedGalleries, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterUint64Pref(prefs::kMediaGalleriesUniqueId, - kInvalidMediaGalleryPrefId + 1, - PrefServiceSyncable::UNSYNCABLE_PREF); +void MediaGalleriesPreferences::RegisterUserPrefs( + PrefRegistrySyncable* registry) { + registry->RegisterListPref(prefs::kMediaGalleriesRememberedGalleries, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterUint64Pref(prefs::kMediaGalleriesUniqueId, + kInvalidMediaGalleryPrefId + 1, + PrefRegistrySyncable::UNSYNCABLE_PREF); } extensions::ExtensionPrefs* diff --git a/chrome/browser/media_gallery/media_galleries_preferences.h b/chrome/browser/media_gallery/media_galleries_preferences.h index dd4b517..50fb2ec 100644 --- a/chrome/browser/media_gallery/media_galleries_preferences.h +++ b/chrome/browser/media_gallery/media_galleries_preferences.h @@ -15,7 +15,7 @@ #include "base/string16.h" #include "chrome/browser/profiles/profile_keyed_service.h" -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; namespace base { @@ -139,7 +139,7 @@ class MediaGalleriesPreferences : public ProfileKeyedService { // ProfileKeyedService implementation: virtual void Shutdown() OVERRIDE; - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Returns true if the media gallery preferences system has ever been used // for this profile. To be exact, it checks if a gallery has ever been added diff --git a/chrome/browser/media_gallery/media_galleries_preferences_factory.cc b/chrome/browser/media_gallery/media_galleries_preferences_factory.cc index 0e7fda3..4be56d8 100644 --- a/chrome/browser/media_gallery/media_galleries_preferences_factory.cc +++ b/chrome/browser/media_gallery/media_galleries_preferences_factory.cc @@ -5,6 +5,7 @@ #include "chrome/browser/media_gallery/media_galleries_preferences_factory.h" #include "chrome/browser/media_gallery/media_galleries_preferences.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/profiles/profile_dependency_manager.h" // static @@ -32,8 +33,8 @@ ProfileKeyedService* MediaGalleriesPreferencesFactory::BuildServiceInstanceFor( } void MediaGalleriesPreferencesFactory::RegisterUserPrefs( - PrefServiceSyncable* prefs) { - chrome::MediaGalleriesPreferences::RegisterUserPrefs(prefs); + PrefRegistrySyncable* prefs) { + chrome::MediaGalleriesPreferences::RegisterUserPrefs(prefs); } bool MediaGalleriesPreferencesFactory::ServiceRedirectedInIncognito() const { diff --git a/chrome/browser/media_gallery/media_galleries_preferences_factory.h b/chrome/browser/media_gallery/media_galleries_preferences_factory.h index 2ccf97a..3ec8636 100644 --- a/chrome/browser/media_gallery/media_galleries_preferences_factory.h +++ b/chrome/browser/media_gallery/media_galleries_preferences_factory.h @@ -9,7 +9,7 @@ #include "base/memory/singleton.h" #include "chrome/browser/profiles/profile_keyed_service_factory.h" -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; namespace chrome { @@ -35,7 +35,7 @@ class MediaGalleriesPreferencesFactory : public ProfileKeyedServiceFactory { // ProfileKeyedServiceFactory: virtual ProfileKeyedService* BuildServiceInstanceFor( Profile* profile) const OVERRIDE; - virtual void RegisterUserPrefs(PrefServiceSyncable* prefs) OVERRIDE; + virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) OVERRIDE; virtual bool ServiceRedirectedInIncognito() const OVERRIDE; DISALLOW_COPY_AND_ASSIGN(MediaGalleriesPreferencesFactory); diff --git a/chrome/browser/metrics/metrics_log_unittest.cc b/chrome/browser/metrics/metrics_log_unittest.cc index 0a138dc..19ac1e5 100644 --- a/chrome/browser/metrics/metrics_log_unittest.cc +++ b/chrome/browser/metrics/metrics_log_unittest.cc @@ -51,7 +51,7 @@ class TestMetricsLog : public MetricsLog { TestMetricsLog(const std::string& client_id, int session_id) : MetricsLog(client_id, session_id), brand_for_testing_(kBrandForTesting) { - chrome::RegisterLocalState(prefs_.registry(), &prefs_); + chrome::RegisterLocalState(&prefs_, prefs_.registry()); #if defined(OS_CHROMEOS) prefs_.SetInteger(prefs::kStabilityChildProcessCrashCount, 10); diff --git a/chrome/browser/net/http_server_properties_manager.cc b/chrome/browser/net/http_server_properties_manager.cc index 879e62a..1e9c291 100644 --- a/chrome/browser/net/http_server_properties_manager.cc +++ b/chrome/browser/net/http_server_properties_manager.cc @@ -8,6 +8,7 @@ #include "base/stringprintf.h" #include "base/strings/string_number_conversions.h" #include "base/values.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/common/chrome_notification_types.h" #include "chrome/common/pref_names.h" @@ -90,9 +91,9 @@ void HttpServerPropertiesManager::ShutdownOnUIThread() { // static void HttpServerPropertiesManager::RegisterUserPrefs( - PrefServiceSyncable* prefs) { + PrefRegistrySyncable* prefs) { prefs->RegisterDictionaryPref(prefs::kHttpServerProperties, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); } // This is required for conformance with the HttpServerProperties interface. diff --git a/chrome/browser/net/http_server_properties_manager.h b/chrome/browser/net/http_server_properties_manager.h index c9ede4a..48dfd2d 100644 --- a/chrome/browser/net/http_server_properties_manager.h +++ b/chrome/browser/net/http_server_properties_manager.h @@ -20,7 +20,7 @@ #include "net/http/http_server_properties_impl.h" class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace chrome_browser_net { @@ -64,7 +64,7 @@ class HttpServerPropertiesManager void ShutdownOnUIThread(); // Register |prefs| for properties managed here. - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Deletes all data. Works asynchronously, but if a |completion| callback is // provided, it will be fired on the UI thread when everything is done. diff --git a/chrome/browser/net/net_pref_observer.cc b/chrome/browser/net/net_pref_observer.cc index 411f657..e2cdc24 100644 --- a/chrome/browser/net/net_pref_observer.cc +++ b/chrome/browser/net/net_pref_observer.cc @@ -5,6 +5,7 @@ #include "chrome/browser/net/net_pref_observer.h" #include "chrome/browser/net/predictor.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prerender/prerender_manager.h" #include "chrome/common/chrome_notification_types.h" @@ -47,11 +48,11 @@ void NetPrefObserver::ApplySettings() { } // static -void NetPrefObserver::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterBooleanPref(prefs::kNetworkPredictionEnabled, - true, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kDisableSpdy, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); +void NetPrefObserver::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kNetworkPredictionEnabled, + true, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kDisableSpdy, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); } diff --git a/chrome/browser/net/net_pref_observer.h b/chrome/browser/net/net_pref_observer.h index 69afe8b..e4d497f 100644 --- a/chrome/browser/net/net_pref_observer.h +++ b/chrome/browser/net/net_pref_observer.h @@ -17,7 +17,7 @@ class PrerenderManager; } class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; // Monitors network-related preferences for changes and applies them. // The supplied PrefService must outlive this NetPrefObserver. @@ -32,7 +32,7 @@ class NetPrefObserver { chrome_browser_net::Predictor* predictor); virtual ~NetPrefObserver(); - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); private: void ApplySettings(); diff --git a/chrome/browser/net/predictor.cc b/chrome/browser/net/predictor.cc index d513126..88ddd6b 100644 --- a/chrome/browser/net/predictor.cc +++ b/chrome/browser/net/predictor.cc @@ -23,6 +23,7 @@ #include "base/values.h" #include "chrome/browser/io_thread.h" #include "chrome/browser/net/preconnect.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/prefs/session_startup_pref.h" @@ -154,11 +155,11 @@ Predictor* Predictor::CreatePredictor(bool preconnect_enabled, return new Predictor(preconnect_enabled); } -void Predictor::RegisterUserPrefs(PrefServiceSyncable* user_prefs) { - user_prefs->RegisterListPref(prefs::kDnsPrefetchingStartupList, - PrefServiceSyncable::UNSYNCABLE_PREF); - user_prefs->RegisterListPref(prefs::kDnsPrefetchingHostReferralList, - PrefServiceSyncable::UNSYNCABLE_PREF); +void Predictor::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterListPref(prefs::kDnsPrefetchingStartupList, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kDnsPrefetchingHostReferralList, + PrefRegistrySyncable::UNSYNCABLE_PREF); } // --------------------- Start UI methods. ------------------------------------ diff --git a/chrome/browser/net/predictor.h b/chrome/browser/net/predictor.h index 66a2ff6..8db8a38 100644 --- a/chrome/browser/net/predictor.h +++ b/chrome/browser/net/predictor.h @@ -28,8 +28,8 @@ #include "base/gtest_prod_util.h" #include "base/memory/scoped_ptr.h" #include "base/memory/weak_ptr.h" -#include "chrome/browser/net/url_info.h" #include "chrome/browser/net/referrer.h" +#include "chrome/browser/net/url_info.h" #include "chrome/common/net/predictor_common.h" #include "net/base/host_port_pair.h" @@ -48,7 +48,7 @@ class URLRequestContextGetter; class IOThread; class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; namespace chrome_browser_net { @@ -102,7 +102,7 @@ class Predictor { static Predictor* CreatePredictor(bool preconnect_enabled, bool simple_shutdown); - static void RegisterUserPrefs(PrefServiceSyncable* user_prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // ------------- Start UI thread methods. diff --git a/chrome/browser/net/pref_proxy_config_tracker_impl.cc b/chrome/browser/net/pref_proxy_config_tracker_impl.cc index ccc12ba..4c48a32 100644 --- a/chrome/browser/net/pref_proxy_config_tracker_impl.cc +++ b/chrome/browser/net/pref_proxy_config_tracker_impl.cc @@ -7,6 +7,7 @@ #include "base/bind.h" #include "base/values.h" #include "chrome/browser/prefs/pref_registry_simple.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/proxy_config_dictionary.h" #include "chrome/common/chrome_notification_types.h" @@ -203,11 +204,11 @@ void PrefProxyConfigTrackerImpl::RegisterPrefs(PrefRegistrySimple* registry) { // static void PrefProxyConfigTrackerImpl::RegisterUserPrefs( - PrefServiceSyncable* pref_service) { + PrefRegistrySyncable* pref_service) { DictionaryValue* default_settings = ProxyConfigDictionary::CreateSystem(); pref_service->RegisterDictionaryPref(prefs::kProxy, default_settings, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); } ProxyPrefs::ConfigState PrefProxyConfigTrackerImpl::GetProxyConfig( diff --git a/chrome/browser/net/pref_proxy_config_tracker_impl.h b/chrome/browser/net/pref_proxy_config_tracker_impl.h index ea546c1..a449527 100644 --- a/chrome/browser/net/pref_proxy_config_tracker_impl.h +++ b/chrome/browser/net/pref_proxy_config_tracker_impl.h @@ -16,7 +16,7 @@ class PrefService; class PrefRegistrySimple; -class PrefServiceSyncable; +class PrefRegistrySyncable; // A net::ProxyConfigService implementation that applies preference proxy // settings (pushed from PrefProxyConfigTrackerImpl) as overrides to the proxy @@ -120,7 +120,7 @@ class PrefProxyConfigTrackerImpl { // Registers the proxy preferences. These are actually registered // the same way in local state and in user prefs. static void RegisterPrefs(PrefRegistrySimple* registry); - static void RegisterUserPrefs(PrefServiceSyncable* user_prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); protected: // Get the proxy configuration currently defined by preferences. diff --git a/chrome/browser/notifications/desktop_notification_service.cc b/chrome/browser/notifications/desktop_notification_service.cc index 323f913..4f09b19 100644 --- a/chrome/browser/notifications/desktop_notification_service.cc +++ b/chrome/browser/notifications/desktop_notification_service.cc @@ -19,7 +19,7 @@ #include "chrome/browser/notifications/notification.h" #include "chrome/browser/notifications/notification_object_proxy.h" #include "chrome/browser/notifications/notification_ui_manager.h" -#include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" @@ -192,10 +192,11 @@ bool NotificationPermissionInfoBarDelegate::Cancel() { // DesktopNotificationService ------------------------------------------------- // static -void DesktopNotificationService::RegisterUserPrefs(PrefServiceSyncable* prefs) { +void DesktopNotificationService::RegisterUserPrefs( + PrefRegistrySyncable* registry) { #if defined(OS_CHROMEOS) || defined(ENABLE_MESSAGE_CENTER) - prefs->RegisterListPref(prefs::kMessageCenterDisabledExtensionIds, - PrefServiceSyncable::SYNCABLE_PREF); + registry->RegisterListPref(prefs::kMessageCenterDisabledExtensionIds, + PrefRegistrySyncable::SYNCABLE_PREF); #endif } diff --git a/chrome/browser/notifications/desktop_notification_service.h b/chrome/browser/notifications/desktop_notification_service.h index a540a67..965ab8d 100644 --- a/chrome/browser/notifications/desktop_notification_service.h +++ b/chrome/browser/notifications/desktop_notification_service.h @@ -26,7 +26,7 @@ class ContentSettingsPattern; class Notification; class NotificationDelegate; class NotificationUIManager; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; namespace content { @@ -49,7 +49,7 @@ class DesktopNotificationService : public content::NotificationObserver, }; // Register profile-specific prefs of notifications. - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* prefs); DesktopNotificationService(Profile* profile, NotificationUIManager* ui_manager); diff --git a/chrome/browser/notifications/desktop_notifications_unittest.cc b/chrome/browser/notifications/desktop_notifications_unittest.cc index 8925bb3..66bed7d 100644 --- a/chrome/browser/notifications/desktop_notifications_unittest.cc +++ b/chrome/browser/notifications/desktop_notifications_unittest.cc @@ -103,7 +103,7 @@ void DesktopNotificationsTest::SetUp() { active_desktop_monitor_.reset(new ActiveDesktopMonitor); #endif - chrome::RegisterLocalState(local_state_.registry(), &local_state_); + chrome::RegisterLocalState(&local_state_, local_state_.registry()); profile_.reset(new TestingProfile()); ui_manager_.reset(new BalloonNotificationUIManager(&local_state_)); balloon_collection_ = new MockBalloonCollection(); diff --git a/chrome/browser/password_manager/password_manager.cc b/chrome/browser/password_manager/password_manager.cc index 6952085..e1f93fc 100644 --- a/chrome/browser/password_manager/password_manager.cc +++ b/chrome/browser/password_manager/password_manager.cc @@ -5,11 +5,12 @@ #include "chrome/browser/password_manager/password_manager.h" #include "base/metrics/histogram.h" -#include "base/threading/platform_thread.h" #include "base/string_util.h" +#include "base/threading/platform_thread.h" #include "base/utf_string_conversions.h" #include "chrome/browser/password_manager/password_form_manager.h" #include "chrome/browser/password_manager/password_manager_delegate.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/autofill_messages.h" @@ -57,13 +58,13 @@ void ReportMetrics(bool password_manager_enabled) { } // anonymous namespace // static -void PasswordManager::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterBooleanPref(prefs::kPasswordManagerEnabled, - true, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kPasswordManagerAllowShowPasswords, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); +void PasswordManager::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kPasswordManagerEnabled, + true, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kPasswordManagerAllowShowPasswords, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); } // static diff --git a/chrome/browser/password_manager/password_manager.h b/chrome/browser/password_manager/password_manager.h index ac0db2d..4717449 100644 --- a/chrome/browser/password_manager/password_manager.h +++ b/chrome/browser/password_manager/password_manager.h @@ -21,7 +21,7 @@ class PasswordManagerDelegate; class PasswordManagerTest; class PasswordFormManager; -class PrefServiceSyncable; +class PrefRegistrySyncable; // Per-tab password manager. Handles creation and management of UI elements, // receiving password form data from the renderer and managing the password @@ -31,7 +31,7 @@ class PasswordManager : public LoginModel, public content::WebContentsObserver, public content::WebContentsUserData<PasswordManager> { public: - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); static void CreateForWebContentsAndDelegate( content::WebContents* contents, diff --git a/chrome/browser/password_manager/password_store_factory.cc b/chrome/browser/password_manager/password_store_factory.cc index e69a12e..db128af 100644 --- a/chrome/browser/password_manager/password_store_factory.cc +++ b/chrome/browser/password_manager/password_store_factory.cc @@ -9,6 +9,7 @@ #include "chrome/browser/password_manager/login_database.h" #include "chrome/browser/password_manager/password_store.h" #include "chrome/browser/password_manager/password_store_default.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile_dependency_manager.h" #include "chrome/browser/webdata/web_data_service.h" @@ -192,16 +193,16 @@ PasswordStoreFactory::BuildServiceInstanceFor(Profile* profile) const { return ps; } -void PasswordStoreFactory::RegisterUserPrefs(PrefServiceSyncable* prefs) { +void PasswordStoreFactory::RegisterUserPrefs(PrefRegistrySyncable* registry) { #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) \ && defined(OS_POSIX) - prefs->RegisterIntegerPref(prefs::kLocalProfileId, - kInvalidLocalProfileId, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kLocalProfileId, + kInvalidLocalProfileId, + PrefRegistrySyncable::UNSYNCABLE_PREF); // Notice that the preprocessor conditions above are exactly those that will // result in using PasswordStoreX in CreatePasswordStore() below. - PasswordStoreX::RegisterUserPrefs(prefs); + PasswordStoreX::RegisterUserPrefs(registry); #endif } diff --git a/chrome/browser/password_manager/password_store_factory.h b/chrome/browser/password_manager/password_store_factory.h index 8eea9ae..0246134 100644 --- a/chrome/browser/password_manager/password_store_factory.h +++ b/chrome/browser/password_manager/password_store_factory.h @@ -11,7 +11,7 @@ #include "chrome/browser/profiles/refcounted_profile_keyed_service_factory.h" class PasswordStore; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) && defined(OS_POSIX) @@ -45,7 +45,7 @@ class PasswordStoreFactory : public RefcountedProfileKeyedServiceFactory { // ProfileKeyedServiceFactory: virtual scoped_refptr<RefcountedProfileKeyedService> BuildServiceInstanceFor( Profile* profile) const OVERRIDE; - virtual void RegisterUserPrefs(PrefServiceSyncable* prefs) OVERRIDE; + virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) OVERRIDE; virtual bool ServiceRedirectedInIncognito() const OVERRIDE; virtual bool ServiceIsNULLWhileTesting() const OVERRIDE; diff --git a/chrome/browser/password_manager/password_store_x.cc b/chrome/browser/password_manager/password_store_x.cc index 2e5dc10..017c838 100644 --- a/chrome/browser/password_manager/password_store_x.cc +++ b/chrome/browser/password_manager/password_store_x.cc @@ -12,6 +12,7 @@ #include "base/logging.h" #include "base/stl_util.h" #include "chrome/browser/password_manager/password_store_change.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/common/chrome_notification_types.h" #include "chrome/common/pref_names.h" @@ -270,11 +271,12 @@ ssize_t PasswordStoreX::MigrateLogins() { #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) && defined(OS_POSIX) // static -void PasswordStoreX::RegisterUserPrefs(PrefServiceSyncable* prefs) { +void PasswordStoreX::RegisterUserPrefs(PrefRegistrySyncable* registry) { // Normally we should be on the UI thread here, but in tests we might not. - prefs->RegisterBooleanPref(prefs::kPasswordsUseLocalProfileId, - false, // default: passwords don't use local ids - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kPasswordsUseLocalProfileId, + // default: passwords don't use local ids + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); } // static diff --git a/chrome/browser/password_manager/password_store_x.h b/chrome/browser/password_manager/password_store_x.h index 4a25ae9..3e01da7 100644 --- a/chrome/browser/password_manager/password_store_x.h +++ b/chrome/browser/password_manager/password_store_x.h @@ -13,7 +13,7 @@ class LoginDatabase; class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; // PasswordStoreX is used on Linux and other non-Windows, non-Mac OS X @@ -57,7 +57,7 @@ class PasswordStoreX : public PasswordStoreDefault { #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) && defined(OS_POSIX) // Registers the pref setting used for the methods below. - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Returns true if passwords have been tagged with the local profile id. static bool PasswordsUseLocalProfileId(PrefService* prefs); diff --git a/chrome/browser/pepper_flash_settings_manager.cc b/chrome/browser/pepper_flash_settings_manager.cc index 6964693..e5b3e18 100644 --- a/chrome/browser/pepper_flash_settings_manager.cc +++ b/chrome/browser/pepper_flash_settings_manager.cc @@ -13,6 +13,7 @@ #include "base/sequenced_task_runner_helpers.h" #include "base/utf_string_conversions.h" #include "chrome/browser/plugins/plugin_prefs.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/pref_names.h" @@ -927,14 +928,15 @@ bool PepperFlashSettingsManager::IsPepperFlashInUse( } // static -void PepperFlashSettingsManager::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterBooleanPref(prefs::kDeauthorizeContentLicenses, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - - prefs->RegisterBooleanPref(prefs::kPepperFlashSettingsEnabled, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); +void PepperFlashSettingsManager::RegisterUserPrefs( + PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kDeauthorizeContentLicenses, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + + registry->RegisterBooleanPref(prefs::kPepperFlashSettingsEnabled, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); } uint32 PepperFlashSettingsManager::DeauthorizeContentLicenses() { diff --git a/chrome/browser/pepper_flash_settings_manager.h b/chrome/browser/pepper_flash_settings_manager.h index 4ff992e..77c9d53 100644 --- a/chrome/browser/pepper_flash_settings_manager.h +++ b/chrome/browser/pepper_flash_settings_manager.h @@ -12,7 +12,7 @@ #include "ppapi/shared_impl/ppp_flash_browser_operations_shared.h" class PluginPrefs; -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace content { class BrowserContext; @@ -62,7 +62,7 @@ class PepperFlashSettingsManager { static bool IsPepperFlashInUse(PluginPrefs* plugin_prefs, webkit::WebPluginInfo* plugin_info); - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Requests to deauthorize content licenses. // Client::OnDeauthorizeContentLicensesCompleted() will be called when the diff --git a/chrome/browser/plugins/plugin_prefs_factory.cc b/chrome/browser/plugins/plugin_prefs_factory.cc index 123126f..6f49307 100644 --- a/chrome/browser/plugins/plugin_prefs_factory.cc +++ b/chrome/browser/plugins/plugin_prefs_factory.cc @@ -6,6 +6,7 @@ #include "base/path_service.h" #include "chrome/browser/plugins/plugin_prefs.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/profiles/profile_dependency_manager.h" @@ -47,29 +48,29 @@ PluginPrefsFactory::BuildServiceInstanceFor(Profile* profile) const { return plugin_prefs; } -void PluginPrefsFactory::RegisterUserPrefs(PrefServiceSyncable* prefs) { +void PluginPrefsFactory::RegisterUserPrefs(PrefRegistrySyncable* registry) { base::FilePath internal_dir; PathService::Get(chrome::DIR_INTERNAL_PLUGINS, &internal_dir); - prefs->RegisterFilePathPref(prefs::kPluginsLastInternalDirectory, - internal_dir, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kPluginsEnabledInternalPDF, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kPluginsEnabledNaCl, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kPluginsMigratedToPepperFlash, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kPluginsPluginsList, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kPluginsDisabledPlugins, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kPluginsDisabledPluginsExceptions, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kPluginsEnabledPlugins, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterFilePathPref(prefs::kPluginsLastInternalDirectory, + internal_dir, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kPluginsEnabledInternalPDF, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kPluginsEnabledNaCl, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kPluginsMigratedToPepperFlash, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kPluginsPluginsList, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kPluginsDisabledPlugins, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kPluginsDisabledPluginsExceptions, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kPluginsEnabledPlugins, + PrefRegistrySyncable::UNSYNCABLE_PREF); } bool PluginPrefsFactory::ServiceRedirectedInIncognito() const { diff --git a/chrome/browser/plugins/plugin_prefs_factory.h b/chrome/browser/plugins/plugin_prefs_factory.h index 7c4c251..73ba376 100644 --- a/chrome/browser/plugins/plugin_prefs_factory.h +++ b/chrome/browser/plugins/plugin_prefs_factory.h @@ -10,7 +10,7 @@ #include "chrome/browser/profiles/refcounted_profile_keyed_service_factory.h" class PluginPrefs; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; class ProfileKeyedService; @@ -36,7 +36,7 @@ class PluginPrefsFactory : public RefcountedProfileKeyedServiceFactory { Profile* profile) const OVERRIDE; // ProfileKeyedServiceFactory methods: - virtual void RegisterUserPrefs(PrefServiceSyncable* prefs) OVERRIDE; + virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) OVERRIDE; virtual bool ServiceRedirectedInIncognito() const OVERRIDE; virtual bool ServiceIsNULLWhileTesting() const OVERRIDE; virtual bool ServiceIsCreatedWithProfile() const OVERRIDE; diff --git a/chrome/browser/policy/cloud_policy_core_unittest.cc b/chrome/browser/policy/cloud_policy_core_unittest.cc index 18db1b3..c53986f 100644 --- a/chrome/browser/policy/cloud_policy_core_unittest.cc +++ b/chrome/browser/policy/cloud_policy_core_unittest.cc @@ -23,7 +23,7 @@ class CloudPolicyCoreTest : public testing::Test { : core_(PolicyNamespaceKey(dm_protocol::kChromeUserPolicyType, std::string()), &store_) { - chrome::RegisterLocalState(prefs_.registry(), &prefs_); + chrome::RegisterLocalState(&prefs_, prefs_.registry()); } MessageLoop loop_; diff --git a/chrome/browser/policy/device_cloud_policy_manager_chromeos_unittest.cc b/chrome/browser/policy/device_cloud_policy_manager_chromeos_unittest.cc index 32cf49f..0646374 100644 --- a/chrome/browser/policy/device_cloud_policy_manager_chromeos_unittest.cc +++ b/chrome/browser/policy/device_cloud_policy_manager_chromeos_unittest.cc @@ -47,7 +47,7 @@ class DeviceCloudPolicyManagerChromeOSTest virtual void SetUp() OVERRIDE { DeviceSettingsTestBase::SetUp(); - chrome::RegisterLocalState(local_state_.registry(), &local_state_); + chrome::RegisterLocalState(&local_state_, local_state_.registry()); manager_.Init(); } diff --git a/chrome/browser/policy/policy_statistics_collector_unittest.cc b/chrome/browser/policy/policy_statistics_collector_unittest.cc index 294af94..fa37c45 100644 --- a/chrome/browser/policy/policy_statistics_collector_unittest.cc +++ b/chrome/browser/policy/policy_statistics_collector_unittest.cc @@ -60,7 +60,7 @@ class PolicyStatisticsCollectorTest : public testing::Test { } virtual void SetUp() OVERRIDE { - chrome::RegisterLocalState(prefs_.registry(), &prefs_); + chrome::RegisterLocalState(&prefs_, prefs_.registry()); // Find ids for kTestPolicy1 and kTestPolicy2. const policy::PolicyDefinitionList* policy_list = diff --git a/chrome/browser/policy/url_blacklist_manager.cc b/chrome/browser/policy/url_blacklist_manager.cc index 9c3d216..3bc2669 100644 --- a/chrome/browser/policy/url_blacklist_manager.cc +++ b/chrome/browser/policy/url_blacklist_manager.cc @@ -10,6 +10,7 @@ #include "base/strings/string_number_conversions.h" #include "base/values.h" #include "chrome/browser/net/url_fixer_upper.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/common/chrome_notification_types.h" #include "chrome/common/pref_names.h" @@ -359,11 +360,11 @@ bool URLBlacklistManager::IsURLBlocked(const GURL& url) const { } // static -void URLBlacklistManager::RegisterUserPrefs(PrefServiceSyncable* pref_service) { - pref_service->RegisterListPref(prefs::kUrlBlacklist, - PrefServiceSyncable::UNSYNCABLE_PREF); - pref_service->RegisterListPref(prefs::kUrlWhitelist, - PrefServiceSyncable::UNSYNCABLE_PREF); +void URLBlacklistManager::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterListPref(prefs::kUrlBlacklist, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kUrlWhitelist, + PrefRegistrySyncable::UNSYNCABLE_PREF); } } // namespace policy diff --git a/chrome/browser/policy/url_blacklist_manager.h b/chrome/browser/policy/url_blacklist_manager.h index 150323d..ea77d2e 100644 --- a/chrome/browser/policy/url_blacklist_manager.h +++ b/chrome/browser/policy/url_blacklist_manager.h @@ -19,7 +19,7 @@ class GURL; class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace base { class ListValue; @@ -134,7 +134,7 @@ class URLBlacklistManager { virtual void SetBlacklist(scoped_ptr<URLBlacklist> blacklist); // Registers the preferences related to blacklisting in the given PrefService. - static void RegisterUserPrefs(PrefServiceSyncable* pref_service); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); protected: // Used to delay updating the blacklist while the preferences are diff --git a/chrome/browser/policy/user_cloud_policy_manager_chromeos_unittest.cc b/chrome/browser/policy/user_cloud_policy_manager_chromeos_unittest.cc index 9794fae4..86fd7ed 100644 --- a/chrome/browser/policy/user_cloud_policy_manager_chromeos_unittest.cc +++ b/chrome/browser/policy/user_cloud_policy_manager_chromeos_unittest.cc @@ -35,7 +35,7 @@ class UserCloudPolicyManagerChromeOSTest : public testing::Test { : store_(NULL) {} virtual void SetUp() OVERRIDE { - chrome::RegisterLocalState(prefs_.registry(), &prefs_); + chrome::RegisterLocalState(&prefs_, prefs_.registry()); // Set up a policy map for testing. policy_map_.Set("key", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, diff --git a/chrome/browser/policy/user_policy_signin_service_factory.cc b/chrome/browser/policy/user_policy_signin_service_factory.cc index 22f4ec2..7c69c78 100644 --- a/chrome/browser/policy/user_policy_signin_service_factory.cc +++ b/chrome/browser/policy/user_policy_signin_service_factory.cc @@ -6,6 +6,7 @@ #include "chrome/browser/policy/user_cloud_policy_manager_factory.h" #include "chrome/browser/policy/user_policy_signin_service.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/profiles/profile_dependency_manager.h" @@ -49,9 +50,9 @@ bool UserPolicySigninServiceFactory::ServiceIsCreatedWithProfile() const { } void UserPolicySigninServiceFactory::RegisterUserPrefs( - PrefServiceSyncable* user_prefs) { + PrefRegistrySyncable* user_prefs) { user_prefs->RegisterBooleanPref(prefs::kDisableCloudPolicyOnSignin, - false, PrefServiceSyncable::UNSYNCABLE_PREF); + false, PrefRegistrySyncable::UNSYNCABLE_PREF); } } // namespace policy diff --git a/chrome/browser/policy/user_policy_signin_service_factory.h b/chrome/browser/policy/user_policy_signin_service_factory.h index f935eb1..03f5d7b 100644 --- a/chrome/browser/policy/user_policy_signin_service_factory.h +++ b/chrome/browser/policy/user_policy_signin_service_factory.h @@ -8,7 +8,7 @@ #include "base/memory/singleton.h" #include "chrome/browser/profiles/profile_keyed_service_factory.h" -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace policy { @@ -34,7 +34,7 @@ class UserPolicySigninServiceFactory : public ProfileKeyedServiceFactory { virtual bool ServiceIsCreatedWithProfile() const OVERRIDE; // Register the preferences related to cloud-based user policy. - virtual void RegisterUserPrefs(PrefServiceSyncable* user_prefs) OVERRIDE; + virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) OVERRIDE; private: friend struct DefaultSingletonTraits<UserPolicySigninServiceFactory>; diff --git a/chrome/browser/policy/user_policy_signin_service_unittest.cc b/chrome/browser/policy/user_policy_signin_service_unittest.cc index 821de54..7e40dd2 100644 --- a/chrome/browser/policy/user_policy_signin_service_unittest.cc +++ b/chrome/browser/policy/user_policy_signin_service_unittest.cc @@ -91,7 +91,7 @@ class UserPolicySigninServiceTest : public testing::Test { g_browser_process->browser_policy_connector()->Init(); local_state_.reset(new TestingPrefServiceSimple); - chrome::RegisterLocalState(local_state_->registry(), local_state_.get()); + chrome::RegisterLocalState(local_state_.get(), local_state_->registry()); TestingBrowserProcess::GetGlobal()->SetLocalState( local_state_.get()); @@ -99,8 +99,8 @@ class UserPolicySigninServiceTest : public testing::Test { // up a UserCloudPolicyManager with a MockUserCloudPolicyStore. scoped_ptr<TestingPrefServiceSyncable> prefs( new TestingPrefServiceSyncable()); - Profile::RegisterUserPrefs(prefs.get()); - chrome::RegisterUserPrefs(prefs.get()); + Profile::RegisterUserPrefs(prefs->registry()); + chrome::RegisterUserPrefs(prefs.get(), prefs->registry()); TestingProfile::Builder builder; builder.SetPrefService(scoped_ptr<PrefServiceSyncable>(prefs.Pass())); profile_ = builder.Build().Pass(); diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc index d56c950..8c5be3a4 100644 --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc @@ -48,7 +48,9 @@ #include "chrome/browser/plugins/plugin_finder.h" #include "chrome/browser/prefs/incognito_mode_prefs.h" #include "chrome/browser/prefs/pref_registry_simple.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/prefs/session_startup_pref.h" #include "chrome/browser/profiles/chrome_version_service.h" #include "chrome/browser/profiles/profile_impl.h" @@ -152,8 +154,8 @@ namespace chrome { // TODO(joi): Do the work needed to remove the PrefService parameter, // i.e. to do all registration up front before a PrefService is even // created. -void RegisterLocalState(PrefRegistrySimple* registry, - PrefService* local_state) { +void RegisterLocalState(PrefService* local_state, + PrefRegistrySimple* registry) { // Prefs in Local State. registry->RegisterIntegerPref(prefs::kMultipleProfilePrefMigration, 0); @@ -236,108 +238,117 @@ void RegisterLocalState(PrefRegistrySimple* registry, #endif } -void RegisterUserPrefs(PrefServiceSyncable* user_prefs) { +void RegisterUserPrefs(PrefService* user_prefs, + PrefRegistrySyncable* registry) { + // TODO(joi): Get rid of the need for the PrefService parameter, and + // do registration prior to PrefService creation. + // User prefs. Please keep this list alphabetized. - AlternateErrorPageTabObserver::RegisterUserPrefs(user_prefs); - AutofillManager::RegisterUserPrefs(user_prefs); - BookmarkPromptPrefs::RegisterUserPrefs(user_prefs); - bookmark_utils::RegisterUserPrefs(user_prefs); - BrowserInstantController::RegisterUserPrefs(user_prefs); - browser_sync::SyncPrefs::RegisterUserPrefs(user_prefs); - ChromeContentBrowserClient::RegisterUserPrefs(user_prefs); - ChromeVersionService::RegisterUserPrefs(user_prefs); + AlternateErrorPageTabObserver::RegisterUserPrefs(registry); + AutofillManager::RegisterUserPrefs(registry); + BookmarkPromptPrefs::RegisterUserPrefs(registry); + bookmark_utils::RegisterUserPrefs(registry); + BrowserInstantController::RegisterUserPrefs(user_prefs, registry); + browser_sync::SyncPrefs::RegisterUserPrefs(user_prefs, registry); + ChromeContentBrowserClient::RegisterUserPrefs(registry); + ChromeVersionService::RegisterUserPrefs(registry); chrome_browser_net::HttpServerPropertiesManager::RegisterUserPrefs( - user_prefs); - chrome_browser_net::Predictor::RegisterUserPrefs(user_prefs); - DownloadPrefs::RegisterUserPrefs(user_prefs); - extensions::ComponentLoader::RegisterUserPrefs(user_prefs); - extensions::ExtensionPrefs::RegisterUserPrefs(user_prefs); - ExtensionWebUI::RegisterUserPrefs(user_prefs); - first_run::RegisterUserPrefs(user_prefs); - HostContentSettingsMap::RegisterUserPrefs(user_prefs); - IncognitoModePrefs::RegisterUserPrefs(user_prefs); - InstantUI::RegisterUserPrefs(user_prefs); - MediaCaptureDevicesDispatcher::RegisterUserPrefs(user_prefs); - MediaStreamDevicesController::RegisterUserPrefs(user_prefs); - NetPrefObserver::RegisterUserPrefs(user_prefs); - NewTabUI::RegisterUserPrefs(user_prefs); - PasswordManager::RegisterUserPrefs(user_prefs); - PrefProxyConfigTrackerImpl::RegisterUserPrefs(user_prefs); - PrefsTabHelper::RegisterUserPrefs(user_prefs); - ProfileImpl::RegisterUserPrefs(user_prefs); - PromoResourceService::RegisterUserPrefs(user_prefs); - ProtocolHandlerRegistry::RegisterUserPrefs(user_prefs); - RegisterBrowserUserPrefs(user_prefs); - SessionStartupPref::RegisterUserPrefs(user_prefs); - TemplateURLPrepopulateData::RegisterUserPrefs(user_prefs); - TranslatePrefs::RegisterUserPrefs(user_prefs); + registry); + chrome_browser_net::Predictor::RegisterUserPrefs(registry); + DownloadPrefs::RegisterUserPrefs(user_prefs, registry); + extensions::ComponentLoader::RegisterUserPrefs(registry); + extensions::ExtensionPrefs::RegisterUserPrefs(registry); + ExtensionWebUI::RegisterUserPrefs(registry); + first_run::RegisterUserPrefs(registry); + HostContentSettingsMap::RegisterUserPrefs(registry); + IncognitoModePrefs::RegisterUserPrefs(registry); + InstantUI::RegisterUserPrefs(registry); + MediaCaptureDevicesDispatcher::RegisterUserPrefs(user_prefs, registry); + MediaStreamDevicesController::RegisterUserPrefs(registry); + NetPrefObserver::RegisterUserPrefs(registry); + NewTabUI::RegisterUserPrefs(registry); + PasswordManager::RegisterUserPrefs(registry); + PrefProxyConfigTrackerImpl::RegisterUserPrefs(registry); + PrefsTabHelper::RegisterUserPrefs(registry); + ProfileImpl::RegisterUserPrefs(registry); + PromoResourceService::RegisterUserPrefs(user_prefs, registry); + ProtocolHandlerRegistry::RegisterUserPrefs(registry); + RegisterBrowserUserPrefs(registry); + SessionStartupPref::RegisterUserPrefs(registry); + TemplateURLPrepopulateData::RegisterUserPrefs(registry); + TranslatePrefs::RegisterUserPrefs(user_prefs, registry); #if defined(ENABLE_CONFIGURATION_POLICY) - policy::URLBlacklistManager::RegisterUserPrefs(user_prefs); + policy::URLBlacklistManager::RegisterUserPrefs(registry); #endif #if defined(ENABLE_MANAGED_USERS) - ManagedUserService::RegisterUserPrefs(user_prefs); + ManagedUserService::RegisterUserPrefs(registry); #endif #if defined(ENABLE_NOTIFICATIONS) - DesktopNotificationService::RegisterUserPrefs(user_prefs); + DesktopNotificationService::RegisterUserPrefs(registry); #endif #if defined(ENABLE_WEB_INTENTS) - web_intents::RegisterUserPrefs(user_prefs); + web_intents::RegisterUserPrefs(registry); #endif #if defined(TOOLKIT_VIEWS) - RegisterInvertBubbleUserPrefs(user_prefs); + RegisterInvertBubbleUserPrefs(registry); #elif defined(TOOLKIT_GTK) - BrowserWindowGtk::RegisterUserPrefs(user_prefs); + BrowserWindowGtk::RegisterUserPrefs(user_prefs, registry); #endif #if defined(OS_ANDROID) - PromoHandler::RegisterUserPrefs(user_prefs); + PromoHandler::RegisterUserPrefs(registry); #endif #if defined(USE_ASH) - ash::RegisterChromeLauncherUserPrefs(user_prefs); + ash::RegisterChromeLauncherUserPrefs(registry); #endif #if !defined(OS_ANDROID) - TabsCaptureVisibleTabFunction::RegisterUserPrefs(user_prefs); - ChromeToMobileService::RegisterUserPrefs(user_prefs); - DevToolsWindow::RegisterUserPrefs(user_prefs); - extensions::CommandService::RegisterUserPrefs(user_prefs); - ExtensionSettingsHandler::RegisterUserPrefs(user_prefs); - PepperFlashSettingsManager::RegisterUserPrefs(user_prefs); - PinnedTabCodec::RegisterUserPrefs(user_prefs); - PluginsUI::RegisterUserPrefs(user_prefs); - printing::StickySettings::RegisterUserPrefs(user_prefs); - RegisterAutolaunchUserPrefs(user_prefs); - SyncPromoUI::RegisterUserPrefs(user_prefs); + TabsCaptureVisibleTabFunction::RegisterUserPrefs(registry); + ChromeToMobileService::RegisterUserPrefs(registry); + DevToolsWindow::RegisterUserPrefs(registry); + extensions::CommandService::RegisterUserPrefs(registry); + ExtensionSettingsHandler::RegisterUserPrefs(registry); + PepperFlashSettingsManager::RegisterUserPrefs(registry); + PinnedTabCodec::RegisterUserPrefs(registry); + PluginsUI::RegisterUserPrefs(registry); + printing::StickySettings::RegisterUserPrefs(registry); + RegisterAutolaunchUserPrefs(registry); + SyncPromoUI::RegisterUserPrefs(registry); #endif #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) - default_apps::RegisterUserPrefs(user_prefs); + default_apps::RegisterUserPrefs(registry); #endif #if defined(OS_CHROMEOS) - chromeos::Preferences::RegisterUserPrefs(user_prefs); - chromeos::ProxyConfigServiceImpl::RegisterUserPrefs(user_prefs); + chromeos::Preferences::RegisterUserPrefs(user_prefs, registry); + chromeos::ProxyConfigServiceImpl::RegisterUserPrefs(registry); #endif #if defined(OS_WIN) - NetworkProfileBubble::RegisterUserPrefs(user_prefs); + NetworkProfileBubble::RegisterUserPrefs(registry); #endif } void MigrateUserPrefs(Profile* profile) { // Cleanup old prefs. static const char kBackupPref[] = "backup"; - PrefServiceSyncable* prefs = profile->GetPrefs(); - prefs->RegisterDictionaryPref(kBackupPref, new DictionaryValue(), - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefService* prefs = profile->GetPrefs(); + // TODO(joi): Fix to not require post-construction registration? + scoped_refptr<PrefRegistrySyncable> registry( + static_cast<PrefRegistrySyncable*>(prefs->DeprecatedGetPrefRegistry())); + registry->RegisterDictionaryPref(kBackupPref, new DictionaryValue(), + PrefRegistrySyncable::UNSYNCABLE_PREF); prefs->ClearPref(kBackupPref); - prefs->UnregisterPreference(kBackupPref); + registry->DeprecatedUnregisterPreference(kBackupPref); + + PrefsTabHelper::MigrateUserPrefs(prefs, registry); } void MigrateBrowserPrefs(Profile* profile, PrefService* local_state) { @@ -360,7 +371,7 @@ void MigrateBrowserPrefs(Profile* profile, PrefService* local_state) { current_version); } - PrefServiceSyncable* user_prefs = profile->GetPrefs(); + PrefService* user_prefs = profile->GetPrefs(); if (!(current_version & WINDOWS_PREFS)) { registry->RegisterIntegerPref(prefs::kDevToolsHSplitLocation, -1); if (local_state->HasPrefPath(prefs::kDevToolsHSplitLocation)) { diff --git a/chrome/browser/prefs/browser_prefs.h b/chrome/browser/prefs/browser_prefs.h index 5fb5262..022f4a6 100644 --- a/chrome/browser/prefs/browser_prefs.h +++ b/chrome/browser/prefs/browser_prefs.h @@ -6,15 +6,15 @@ #define CHROME_BROWSER_PREFS_BROWSER_PREFS_H_ class PrefRegistrySimple; +class PrefRegistrySyncable; class PrefService; -class PrefServiceSyncable; class Profile; namespace chrome { // Makes the PrefService objects aware of all the prefs. -void RegisterLocalState(PrefRegistrySimple* registry, PrefService* local_state); -void RegisterUserPrefs(PrefServiceSyncable* user_prefs); +void RegisterLocalState(PrefService* local_state, PrefRegistrySimple* registry); +void RegisterUserPrefs(PrefService* user_prefs, PrefRegistrySyncable* registry); // Migrates prefs from |local_state| to |profile|'s pref store. void MigrateBrowserPrefs(Profile* profile, PrefService* local_state); diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc index 971b36e..be2f66b 100644 --- a/chrome/browser/prefs/chrome_pref_service_factory.cc +++ b/chrome/browser/prefs/chrome_pref_service_factory.cc @@ -15,6 +15,7 @@ #include "chrome/browser/prefs/pref_model_associator.h" #include "chrome/browser/prefs/pref_notifier_impl.h" #include "chrome/browser/prefs/pref_registry.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/pref_service_syncable_builder.h" #include "chrome/browser/prefs/pref_value_store.h" @@ -121,6 +122,7 @@ PrefServiceSyncable* CreateProfilePrefs( base::SequencedTaskRunner* pref_io_task_runner, policy::PolicyService* policy_service, const scoped_refptr<PrefStore>& extension_prefs, + const scoped_refptr<PrefRegistrySyncable>& pref_registry, bool async) { PrefServiceSyncableBuilder builder; PrepareBuilder(&builder, @@ -129,7 +131,7 @@ PrefServiceSyncable* CreateProfilePrefs( policy_service, extension_prefs, async); - return builder.CreateSyncable(); + return builder.CreateSyncable(pref_registry); } } // namespace chrome_prefs diff --git a/chrome/browser/prefs/chrome_pref_service_factory.h b/chrome/browser/prefs/chrome_pref_service_factory.h index 87bec89..93e02cf 100644 --- a/chrome/browser/prefs/chrome_pref_service_factory.h +++ b/chrome/browser/prefs/chrome_pref_service_factory.h @@ -17,6 +17,7 @@ class PolicyService; } class PrefRegistry; +class PrefRegistrySyncable; class PrefService; class PrefServiceSyncable; class PrefStore; @@ -51,6 +52,7 @@ PrefServiceSyncable* CreateProfilePrefs( base::SequencedTaskRunner* pref_io_task_runner, policy::PolicyService* policy_service, const scoped_refptr<PrefStore>& extension_prefs, + const scoped_refptr<PrefRegistrySyncable>& pref_registry, bool async); } // namespace chrome_prefs diff --git a/chrome/browser/prefs/incognito_mode_prefs.cc b/chrome/browser/prefs/incognito_mode_prefs.cc index 958140b..79ffcdc 100644 --- a/chrome/browser/prefs/incognito_mode_prefs.cc +++ b/chrome/browser/prefs/incognito_mode_prefs.cc @@ -6,6 +6,7 @@ #include "base/command_line.h" #include "base/logging.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" @@ -52,11 +53,10 @@ void IncognitoModePrefs::SetAvailability(PrefService* prefs, } // static -void IncognitoModePrefs::RegisterUserPrefs(PrefServiceSyncable* pref_service) { - DCHECK(pref_service); - pref_service->RegisterIntegerPref(prefs::kIncognitoModeAvailability, - IncognitoModePrefs::ENABLED, - PrefServiceSyncable::UNSYNCABLE_PREF); +void IncognitoModePrefs::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterIntegerPref(prefs::kIncognitoModeAvailability, + IncognitoModePrefs::ENABLED, + PrefRegistrySyncable::UNSYNCABLE_PREF); } // static diff --git a/chrome/browser/prefs/incognito_mode_prefs.h b/chrome/browser/prefs/incognito_mode_prefs.h index dc1afaa..cbd35fa 100644 --- a/chrome/browser/prefs/incognito_mode_prefs.h +++ b/chrome/browser/prefs/incognito_mode_prefs.h @@ -9,7 +9,7 @@ class CommandLine; class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; // Specifies Incognito mode availability preferences. class IncognitoModePrefs { @@ -31,7 +31,7 @@ class IncognitoModePrefs { }; // Register incognito related preferences. - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Returns kIncognitoModeAvailability preference value stored // in the given pref service. diff --git a/chrome/browser/prefs/incognito_mode_prefs_unittest.cc b/chrome/browser/prefs/incognito_mode_prefs_unittest.cc index 2504dd9..6822105 100644 --- a/chrome/browser/prefs/incognito_mode_prefs_unittest.cc +++ b/chrome/browser/prefs/incognito_mode_prefs_unittest.cc @@ -11,7 +11,7 @@ class IncognitoModePrefsTest : public testing::Test { protected: virtual void SetUp() { - IncognitoModePrefs::RegisterUserPrefs(&prefs_); + IncognitoModePrefs::RegisterUserPrefs(prefs_.registry()); } TestingPrefServiceSyncable prefs_; diff --git a/chrome/browser/prefs/pref_model_associator.cc b/chrome/browser/prefs/pref_model_associator.cc index e767bbf..dea061d 100644 --- a/chrome/browser/prefs/pref_model_associator.cc +++ b/chrome/browser/prefs/pref_model_associator.cc @@ -12,6 +12,7 @@ #include "base/utf_string_conversions.h" #include "base/values.h" #include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/common/chrome_notification_types.h" #include "chrome/common/pref_names.h" #include "sync/api/sync_change.h" diff --git a/chrome/browser/prefs/pref_model_associator.h b/chrome/browser/prefs/pref_model_associator.h index 1e3706a..0787aea 100644 --- a/chrome/browser/prefs/pref_model_associator.h +++ b/chrome/browser/prefs/pref_model_associator.h @@ -15,6 +15,7 @@ #include "sync/api/sync_data.h" #include "sync/api/syncable_service.h" +class PrefRegistrySyncable; class PrefServiceSyncable; namespace sync_pb { diff --git a/chrome/browser/prefs/pref_registry.h b/chrome/browser/prefs/pref_registry.h index 327f987..3a2e6ff 100644 --- a/chrome/browser/prefs/pref_registry.h +++ b/chrome/browser/prefs/pref_registry.h @@ -52,22 +52,20 @@ class PrefRegistry : public base::RefCounted<PrefRegistry> { void SetUnregistrationCallback(const UnregistrationCallback& callback); // Unregisters a preference. This is going away soon. - virtual void DeprecatedUnregisterPreference(const char* path); + void DeprecatedUnregisterPreference(const char* path); protected: friend class base::RefCounted<PrefRegistry>; virtual ~PrefRegistry(); - // TODO(joi): Temporary until we have PrefRegistrySyncable. - friend class PrefServiceSyncable; - // Used by subclasses to register a default value for a preference. void RegisterPreference(const char* path, base::Value* default_value); + scoped_refptr<DefaultPrefStore> defaults_; + private: RegistrationCallback registration_callback_; UnregistrationCallback unregistration_callback_; - scoped_refptr<DefaultPrefStore> defaults_; DISALLOW_COPY_AND_ASSIGN(PrefRegistry); }; diff --git a/chrome/browser/prefs/pref_registry_syncable.cc b/chrome/browser/prefs/pref_registry_syncable.cc new file mode 100644 index 0000000..62e9969 --- /dev/null +++ b/chrome/browser/prefs/pref_registry_syncable.cc @@ -0,0 +1,220 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/prefs/pref_registry_syncable.h" + +#include "base/file_path.h" +#include "base/prefs/default_pref_store.h" +#include "base/string_number_conversions.h" +#include "base/values.h" +#include "ui/base/l10n/l10n_util.h" + +namespace { + +// A helper function for RegisterLocalized*Pref that creates a Value* +// based on a localized resource. Because we control the values in a +// locale dll, this should always return a Value of the appropriate +// type. +base::Value* CreateLocaleDefaultValue(base::Value::Type type, + int message_id) { + const std::string resource_string = l10n_util::GetStringUTF8(message_id); + DCHECK(!resource_string.empty()); + switch (type) { + case Value::TYPE_BOOLEAN: { + if ("true" == resource_string) + return Value::CreateBooleanValue(true); + if ("false" == resource_string) + return Value::CreateBooleanValue(false); + break; + } + + case Value::TYPE_INTEGER: { + int val; + base::StringToInt(resource_string, &val); + return Value::CreateIntegerValue(val); + } + + case Value::TYPE_DOUBLE: { + double val; + base::StringToDouble(resource_string, &val); + return Value::CreateDoubleValue(val); + } + + case Value::TYPE_STRING: { + return Value::CreateStringValue(resource_string); + } + + default: { + NOTREACHED() << + "list and dictionary types cannot have default locale values"; + } + } + NOTREACHED(); + return Value::CreateNullValue(); +} + +} // namespace + +PrefRegistrySyncable::PrefRegistrySyncable() { +} + +PrefRegistrySyncable::~PrefRegistrySyncable() { +} + +const std::set<std::string>& +PrefRegistrySyncable::syncable_preferences() const { + return syncable_preferences_; +} + +void PrefRegistrySyncable::SetSyncableRegistrationCallback( + const SyncableRegistrationCallback& cb) { + callback_ = cb; +} + +void PrefRegistrySyncable::RegisterBooleanPref(const char* path, + bool default_value, + PrefSyncStatus sync_status) { + RegisterSyncablePreference(path, + Value::CreateBooleanValue(default_value), + sync_status); +} + +void PrefRegistrySyncable::RegisterIntegerPref(const char* path, + int default_value, + PrefSyncStatus sync_status) { + RegisterSyncablePreference(path, + Value::CreateIntegerValue(default_value), + sync_status); +} + +void PrefRegistrySyncable::RegisterDoublePref(const char* path, + double default_value, + PrefSyncStatus sync_status) { + RegisterSyncablePreference(path, + Value::CreateDoubleValue(default_value), + sync_status); +} + +void PrefRegistrySyncable::RegisterStringPref(const char* path, + const std::string& default_value, + PrefSyncStatus sync_status) { + RegisterSyncablePreference(path, + Value::CreateStringValue(default_value), + sync_status); +} + +void PrefRegistrySyncable::RegisterFilePathPref( + const char* path, + const base::FilePath& default_value, + PrefSyncStatus sync_status) { + RegisterSyncablePreference(path, + Value::CreateStringValue(default_value.value()), + sync_status); +} + +void PrefRegistrySyncable::RegisterListPref(const char* path, + PrefSyncStatus sync_status) { + RegisterSyncablePreference(path, new ListValue(), sync_status); +} + +void PrefRegistrySyncable::RegisterListPref(const char* path, + ListValue* default_value, + PrefSyncStatus sync_status) { + RegisterSyncablePreference(path, default_value, sync_status); +} + +void PrefRegistrySyncable::RegisterDictionaryPref(const char* path, + PrefSyncStatus sync_status) { + RegisterSyncablePreference(path, new DictionaryValue(), sync_status); +} + +void PrefRegistrySyncable::RegisterDictionaryPref( + const char* path, + DictionaryValue* default_value, + PrefSyncStatus sync_status) { + RegisterSyncablePreference(path, default_value, sync_status); +} + +void PrefRegistrySyncable::RegisterLocalizedBooleanPref( + const char* path, + int locale_default_message_id, + PrefSyncStatus sync_status) { + RegisterSyncablePreference( + path, + CreateLocaleDefaultValue(Value::TYPE_BOOLEAN, locale_default_message_id), + sync_status); +} + +void PrefRegistrySyncable::RegisterLocalizedIntegerPref( + const char* path, + int locale_default_message_id, + PrefSyncStatus sync_status) { + RegisterSyncablePreference( + path, + CreateLocaleDefaultValue(Value::TYPE_INTEGER, locale_default_message_id), + sync_status); +} + +void PrefRegistrySyncable::RegisterLocalizedDoublePref( + const char* path, + int locale_default_message_id, + PrefSyncStatus sync_status) { + RegisterSyncablePreference( + path, + CreateLocaleDefaultValue(Value::TYPE_DOUBLE, locale_default_message_id), + sync_status); +} + +void PrefRegistrySyncable::RegisterLocalizedStringPref( + const char* path, + int locale_default_message_id, + PrefSyncStatus sync_status) { + RegisterSyncablePreference( + path, + CreateLocaleDefaultValue(Value::TYPE_STRING, locale_default_message_id), + sync_status); +} + +void PrefRegistrySyncable::RegisterInt64Pref( + const char* path, + int64 default_value, + PrefSyncStatus sync_status) { + RegisterSyncablePreference( + path, + Value::CreateStringValue(base::Int64ToString(default_value)), + sync_status); +} + +void PrefRegistrySyncable::RegisterUint64Pref( + const char* path, + uint64 default_value, + PrefSyncStatus sync_status) { + RegisterSyncablePreference( + path, + Value::CreateStringValue(base::Uint64ToString(default_value)), + sync_status); +} + +void PrefRegistrySyncable::RegisterSyncablePreference( + const char* path, + base::Value* default_value, + PrefSyncStatus sync_status) { + PrefRegistry::RegisterPreference(path, default_value); + + if (sync_status == SYNCABLE_PREF) { + syncable_preferences_.insert(path); + + if (!callback_.is_null()) + callback_.Run(path); + } +} + +scoped_refptr<PrefRegistrySyncable> PrefRegistrySyncable::ForkForIncognito() { + // TODO(joi): We can directly reuse the same PrefRegistry once + // PrefService no longer registers for callbacks on registration and + // unregistration. + scoped_refptr<PrefRegistrySyncable> registry(new PrefRegistrySyncable()); + registry->defaults_ = defaults_; + return registry; +} diff --git a/chrome/browser/prefs/pref_registry_syncable.h b/chrome/browser/prefs/pref_registry_syncable.h new file mode 100644 index 0000000..5989031 --- /dev/null +++ b/chrome/browser/prefs/pref_registry_syncable.h @@ -0,0 +1,110 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_PREFS_PREF_REGISTRY_SYNCABLE_H_ +#define CHROME_BROWSER_PREFS_PREF_REGISTRY_SYNCABLE_H_ + +#include <set> +#include <string> + +#include "chrome/browser/prefs/pref_registry.h" + +namespace base { +class DictionaryValue; +class FilePath; +class ListValue; +class Value; +} + +// A PrefRegistry that forces users to choose whether each registered +// preference is syncable or not. +class PrefRegistrySyncable : public PrefRegistry { + public: + typedef base::Callback<void(const char* path)> SyncableRegistrationCallback; + + // Enum used when registering preferences to determine if it should + // be synced or not. + enum PrefSyncStatus { + UNSYNCABLE_PREF, + SYNCABLE_PREF + }; + + PrefRegistrySyncable(); + + // Retrieve the set of syncable preferences currently registered. + const std::set<std::string>& syncable_preferences() const; + + // Exactly one callback can be set for the event of a syncable + // preference being registered. It will be fired after the + // registration has occurred. + // + // Calling this method after a callback has already been set will + // make the object forget the previous callback and use the new one + // instead. + void SetSyncableRegistrationCallback(const SyncableRegistrationCallback& cb); + + void RegisterBooleanPref(const char* path, + bool default_value, + PrefSyncStatus sync_status); + void RegisterIntegerPref(const char* path, + int default_value, + PrefSyncStatus sync_status); + void RegisterDoublePref(const char* path, + double default_value, + PrefSyncStatus sync_status); + void RegisterStringPref(const char* path, + const std::string& default_value, + PrefSyncStatus sync_status); + void RegisterFilePathPref(const char* path, + const base::FilePath& default_value, + PrefSyncStatus sync_status); + void RegisterListPref(const char* path, + PrefSyncStatus sync_status); + void RegisterDictionaryPref(const char* path, + PrefSyncStatus sync_status); + void RegisterListPref(const char* path, + base::ListValue* default_value, + PrefSyncStatus sync_status); + void RegisterDictionaryPref(const char* path, + base::DictionaryValue* default_value, + PrefSyncStatus sync_status); + void RegisterLocalizedBooleanPref(const char* path, + int locale_default_message_id, + PrefSyncStatus sync_status); + void RegisterLocalizedIntegerPref(const char* path, + int locale_default_message_id, + PrefSyncStatus sync_status); + void RegisterLocalizedDoublePref(const char* path, + int locale_default_message_id, + PrefSyncStatus sync_status); + void RegisterLocalizedStringPref(const char* path, + int locale_default_message_id, + PrefSyncStatus sync_status); + void RegisterInt64Pref(const char* path, + int64 default_value, + PrefSyncStatus sync_status); + void RegisterUint64Pref(const char* path, + uint64 default_value, + PrefSyncStatus sync_status); + + // Returns a new PrefRegistrySyncable that uses the same defaults + // store. + scoped_refptr<PrefRegistrySyncable> ForkForIncognito(); + + private: + virtual ~PrefRegistrySyncable(); + + void RegisterSyncablePreference(const char* path, + base::Value* default_value, + PrefSyncStatus sync_status); + + SyncableRegistrationCallback callback_; + + // Contains the names of all registered preferences that are syncable. + std::set<std::string> syncable_preferences_; + + DISALLOW_COPY_AND_ASSIGN(PrefRegistrySyncable); +}; + +#endif // CHROME_BROWSER_PREFS_PREF_REGISTRY_SYNCABLE_H_ diff --git a/chrome/browser/prefs/pref_service.h b/chrome/browser/prefs/pref_service.h index 0d11873..9ea3787 100644 --- a/chrome/browser/prefs/pref_service.h +++ b/chrome/browser/prefs/pref_service.h @@ -183,7 +183,8 @@ class PrefService : public PrefServiceBase, public base::NonThreadSafe { void AddRegisteredPreference(const char* path, base::Value* default_value); - void RemoveRegisteredPreference(const char* path); + // Updates local caches for a preference unregistered at |path|. + virtual void RemoveRegisteredPreference(const char* path); // The PrefNotifier handles registering and notifying preference observers. // It is created and owned by this PrefService. Subclasses may access it for @@ -255,9 +256,4 @@ class PrefService : public PrefServiceBase, public base::NonThreadSafe { DISALLOW_COPY_AND_ASSIGN(PrefService); }; -// TODO(joi): Remove these forwards. They were placed here temporarily -// to limit the size of the initial change that split -// PrefServiceSimple and PrefServiceSyncable out of PrefService. -#include "chrome/browser/prefs/pref_service_syncable.h" - #endif // CHROME_BROWSER_PREFS_PREF_SERVICE_H_ diff --git a/chrome/browser/prefs/pref_service_mock_builder.cc b/chrome/browser/prefs/pref_service_mock_builder.cc index dc2803c..51ae6fb 100644 --- a/chrome/browser/prefs/pref_service_mock_builder.cc +++ b/chrome/browser/prefs/pref_service_mock_builder.cc @@ -5,6 +5,7 @@ #include "chrome/browser/prefs/pref_service_mock_builder.h" #include "base/prefs/testing_pref_store.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" PrefServiceMockBuilder::PrefServiceMockBuilder() { ResetDefaultState(); @@ -17,8 +18,10 @@ PrefService* PrefServiceMockBuilder::Create(PrefRegistry* pref_registry) { return service; } -PrefServiceSyncable* PrefServiceMockBuilder::CreateSyncable() { - PrefServiceSyncable* service = PrefServiceSyncableBuilder::CreateSyncable(); +PrefServiceSyncable* PrefServiceMockBuilder::CreateSyncable( + PrefRegistrySyncable* pref_registry) { + PrefServiceSyncable* service = + PrefServiceSyncableBuilder::CreateSyncable(pref_registry); return service; } diff --git a/chrome/browser/prefs/pref_service_mock_builder.h b/chrome/browser/prefs/pref_service_mock_builder.h index 6105e49..2a237a3 100644 --- a/chrome/browser/prefs/pref_service_mock_builder.h +++ b/chrome/browser/prefs/pref_service_mock_builder.h @@ -8,6 +8,7 @@ #include "chrome/browser/prefs/pref_service_syncable_builder.h" class PrefService; +class PrefRegistrySyncable; class PrefServiceSyncable; // A helper that allows convenient building of custom PrefServices in tests. @@ -19,7 +20,8 @@ class PrefServiceMockBuilder : public PrefServiceSyncableBuilder { // Creates a PrefService for testing, invalidating the entire // builder configuration. virtual PrefService* Create(PrefRegistry* pref_registry) OVERRIDE; - virtual PrefServiceSyncable* CreateSyncable() OVERRIDE; + virtual PrefServiceSyncable* CreateSyncable( + PrefRegistrySyncable* pref_registry) OVERRIDE; private: virtual void ResetDefaultState() OVERRIDE; diff --git a/chrome/browser/prefs/pref_service_syncable.cc b/chrome/browser/prefs/pref_service_syncable.cc index cfa66b7..d6fe226 100644 --- a/chrome/browser/prefs/pref_service_syncable.cc +++ b/chrome/browser/prefs/pref_service_syncable.cc @@ -13,63 +13,28 @@ #include "chrome/browser/prefs/pref_model_associator.h" #include "chrome/browser/prefs/pref_notifier_impl.h" #include "chrome/browser/prefs/pref_registry.h" -#include "chrome/browser/prefs/pref_registry_simple.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service_syncable_observer.h" #include "chrome/browser/prefs/pref_value_store.h" +#include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/prefs/prefs_tab_helper.h" -#include "ui/base/l10n/l10n_util.h" -namespace { - -// A helper function for RegisterLocalized*Pref that creates a Value* -// based on a localized resource. Because we control the values in a -// locale dll, this should always return a Value of the appropriate -// type. -Value* CreateLocaleDefaultValue(base::Value::Type type, - int message_id) { - const std::string resource_string = l10n_util::GetStringUTF8(message_id); - DCHECK(!resource_string.empty()); - switch (type) { - case Value::TYPE_BOOLEAN: { - if ("true" == resource_string) - return Value::CreateBooleanValue(true); - if ("false" == resource_string) - return Value::CreateBooleanValue(false); - break; - } - - case Value::TYPE_INTEGER: { - int val; - base::StringToInt(resource_string, &val); - return Value::CreateIntegerValue(val); - } - - case Value::TYPE_DOUBLE: { - double val; - base::StringToDouble(resource_string, &val); - return Value::CreateDoubleValue(val); - } - - case Value::TYPE_STRING: { - return Value::CreateStringValue(resource_string); - } - - default: { - NOTREACHED() << - "list and dictionary types cannot have default locale values"; - } - } - NOTREACHED(); - return Value::CreateNullValue(); +// static +PrefServiceSyncable* PrefServiceSyncable::FromProfile(Profile* profile) { + return static_cast<PrefServiceSyncable*>(profile->GetPrefs()); } -} // namespace +// static +PrefServiceSyncable* PrefServiceSyncable::IncognitoFromProfile( + Profile* profile) { + return static_cast<PrefServiceSyncable*>(profile->GetOffTheRecordPrefs()); +} PrefServiceSyncable::PrefServiceSyncable( PrefNotifierImpl* pref_notifier, PrefValueStore* pref_value_store, PersistentPrefStore* user_prefs, - PrefRegistry* pref_registry, + PrefRegistrySyncable* pref_registry, base::Callback<void(PersistentPrefStore::PrefReadError)> read_error_callback, bool async) @@ -81,12 +46,33 @@ PrefServiceSyncable::PrefServiceSyncable( async) { pref_sync_associator_.SetPrefService(this); + // Let PrefModelAssociator know about changes to preference values. pref_value_store->set_callback( base::Bind(&PrefModelAssociator::ProcessPrefChange, base::Unretained(&pref_sync_associator_))); + + // Add already-registered syncable preferences to PrefModelAssociator. + const std::set<std::string>& syncable_preferences = + pref_registry->syncable_preferences(); + for (std::set<std::string>::const_iterator it = syncable_preferences.begin(); + it != syncable_preferences.end(); + ++it) { + AddRegisteredSyncablePreference(it->c_str()); + } + + // Watch for syncable preferences registered after this point. + pref_registry->SetSyncableRegistrationCallback( + base::Bind(&PrefServiceSyncable::AddRegisteredSyncablePreference, + base::Unretained(this))); } -PrefServiceSyncable::~PrefServiceSyncable() {} +PrefServiceSyncable::~PrefServiceSyncable() { + // Remove our callback from the registry, since it may outlive us. + PrefRegistrySyncable* registry = + static_cast<PrefRegistrySyncable*>(pref_registry_.get()); + registry->SetSyncableRegistrationCallback( + PrefRegistrySyncable::SyncableRegistrationCallback()); +} PrefServiceSyncable* PrefServiceSyncable::CreateIncognitoPrefService( PrefStore* incognito_extension_prefs) { @@ -96,17 +82,9 @@ PrefServiceSyncable* PrefServiceSyncable::CreateIncognitoPrefService( new OverlayUserPrefStore(user_pref_store_.get()); PrefsTabHelper::InitIncognitoUserPrefStore(incognito_pref_store); - // For the incognito service, we need a registry that shares the - // same default prefs, but does not interfere with callbacks on - // registration/unregistration made to the main service, or allow - // any registrations. - // - // TODO(joi): We can directly reuse the same PrefRegistry once - // PrefService no longer registers for callbacks on registration and - // unregistration. - scoped_refptr<PrefRegistry> incognito_registry = new PrefRegistry; - incognito_registry->defaults_ = pref_registry_->defaults_; - + scoped_refptr<PrefRegistrySyncable> forked_registry = + static_cast<PrefRegistrySyncable*>( + pref_registry_.get())->ForkForIncognito(); PrefServiceSyncable* incognito_service = new PrefServiceSyncable( pref_notifier, pref_value_store_->CloneAndSpecialize( @@ -115,10 +93,10 @@ PrefServiceSyncable* PrefServiceSyncable::CreateIncognitoPrefService( NULL, // command_line_prefs incognito_pref_store, NULL, // recommended - incognito_registry->defaults(), + forked_registry->defaults(), pref_notifier), incognito_pref_store, - incognito_registry, + forked_registry, read_error_callback_, false); return incognito_service; @@ -137,139 +115,6 @@ void PrefServiceSyncable::RemoveObserver( observer_list_.RemoveObserver(observer); } -void PrefServiceSyncable::UnregisterPreference(const char* path) { - // TODO(joi): Temporary until we have PrefRegistrySyncable. - static_cast<PrefRegistrySimple*>( - DeprecatedGetPrefRegistry())->DeprecatedUnregisterPreference(path); - - if (pref_sync_associator_.IsPrefRegistered(path)) { - pref_sync_associator_.UnregisterPref(path); - } -} - -void PrefServiceSyncable::RegisterBooleanPref(const char* path, - bool default_value, - PrefSyncStatus sync_status) { - RegisterSyncablePreference(path, - Value::CreateBooleanValue(default_value), - sync_status); -} - -void PrefServiceSyncable::RegisterIntegerPref(const char* path, - int default_value, - PrefSyncStatus sync_status) { - RegisterSyncablePreference(path, - Value::CreateIntegerValue(default_value), - sync_status); -} - -void PrefServiceSyncable::RegisterDoublePref(const char* path, - double default_value, - PrefSyncStatus sync_status) { - RegisterSyncablePreference(path, - Value::CreateDoubleValue(default_value), - sync_status); -} - -void PrefServiceSyncable::RegisterStringPref(const char* path, - const std::string& default_value, - PrefSyncStatus sync_status) { - RegisterSyncablePreference(path, - Value::CreateStringValue(default_value), - sync_status); -} - -void PrefServiceSyncable::RegisterFilePathPref( - const char* path, - const base::FilePath& default_value, - PrefSyncStatus sync_status) { - RegisterSyncablePreference(path, - Value::CreateStringValue(default_value.value()), - sync_status); -} - -void PrefServiceSyncable::RegisterListPref(const char* path, - PrefSyncStatus sync_status) { - RegisterSyncablePreference(path, new ListValue(), sync_status); -} - -void PrefServiceSyncable::RegisterListPref(const char* path, - ListValue* default_value, - PrefSyncStatus sync_status) { - RegisterSyncablePreference(path, default_value, sync_status); -} - -void PrefServiceSyncable::RegisterDictionaryPref(const char* path, - PrefSyncStatus sync_status) { - RegisterSyncablePreference(path, new DictionaryValue(), sync_status); -} - -void PrefServiceSyncable::RegisterDictionaryPref(const char* path, - DictionaryValue* default_value, - PrefSyncStatus sync_status) { - RegisterSyncablePreference(path, default_value, sync_status); -} - -void PrefServiceSyncable::RegisterLocalizedBooleanPref( - const char* path, - int locale_default_message_id, - PrefSyncStatus sync_status) { - RegisterSyncablePreference( - path, - CreateLocaleDefaultValue(Value::TYPE_BOOLEAN, locale_default_message_id), - sync_status); -} - -void PrefServiceSyncable::RegisterLocalizedIntegerPref( - const char* path, - int locale_default_message_id, - PrefSyncStatus sync_status) { - RegisterSyncablePreference( - path, - CreateLocaleDefaultValue(Value::TYPE_INTEGER, locale_default_message_id), - sync_status); -} - -void PrefServiceSyncable::RegisterLocalizedDoublePref( - const char* path, - int locale_default_message_id, - PrefSyncStatus sync_status) { - RegisterSyncablePreference( - path, - CreateLocaleDefaultValue(Value::TYPE_DOUBLE, locale_default_message_id), - sync_status); -} - -void PrefServiceSyncable::RegisterLocalizedStringPref( - const char* path, - int locale_default_message_id, - PrefSyncStatus sync_status) { - RegisterSyncablePreference( - path, - CreateLocaleDefaultValue(Value::TYPE_STRING, locale_default_message_id), - sync_status); -} - -void PrefServiceSyncable::RegisterInt64Pref( - const char* path, - int64 default_value, - PrefSyncStatus sync_status) { - RegisterSyncablePreference( - path, - Value::CreateStringValue(base::Int64ToString(default_value)), - sync_status); -} - -void PrefServiceSyncable::RegisterUint64Pref( - const char* path, - uint64 default_value, - PrefSyncStatus sync_status) { - RegisterSyncablePreference( - path, - Value::CreateStringValue(base::Uint64ToString(default_value)), - sync_status); -} - syncer::SyncableService* PrefServiceSyncable::GetSyncableService() { return &pref_sync_associator_; } @@ -282,17 +127,19 @@ void PrefServiceSyncable::UpdateCommandLinePrefStore( PrefService::UpdateCommandLinePrefStore(cmd_line_store); } +void PrefServiceSyncable::AddRegisteredSyncablePreference(const char* path) { + DCHECK(FindPreference(path)); + pref_sync_associator_.RegisterPref(path); +} + +void PrefServiceSyncable::RemoveRegisteredPreference(const char* path) { + PrefService::RemoveRegisteredPreference(path); + + if (pref_sync_associator_.IsPrefRegistered(path)) + pref_sync_associator_.UnregisterPref(path); +} + void PrefServiceSyncable::OnIsSyncingChanged() { FOR_EACH_OBSERVER(PrefServiceSyncableObserver, observer_list_, OnIsSyncingChanged()); } - -void PrefServiceSyncable::RegisterSyncablePreference( - const char* path, Value* default_value, PrefSyncStatus sync_status) { - // TODO(joi): Temporary until we have PrefRegistrySyncable. - static_cast<PrefRegistrySimple*>( - DeprecatedGetPrefRegistry())->RegisterPreference(path, default_value); - // Register with sync if necessary. - if (sync_status == SYNCABLE_PREF) - pref_sync_associator_.RegisterPref(path); -} diff --git a/chrome/browser/prefs/pref_service_syncable.h b/chrome/browser/prefs/pref_service_syncable.h index 3df6a0a..2515be9 100644 --- a/chrome/browser/prefs/pref_service_syncable.h +++ b/chrome/browser/prefs/pref_service_syncable.h @@ -8,7 +8,9 @@ #include "chrome/browser/prefs/pref_model_associator.h" #include "chrome/browser/prefs/pref_service.h" +class PrefRegistrySyncable; class PrefServiceSyncableObserver; +class Profile; namespace syncer { class SyncableService; @@ -19,13 +21,17 @@ class SyncableService; // this PrefService. class PrefServiceSyncable : public PrefService { public: - // Enum used when registering preferences to determine if it should be synced - // or not. This is only used for profile prefs, not local state prefs. - // See the Register*Pref methods for profile prefs below. - enum PrefSyncStatus { - UNSYNCABLE_PREF, - SYNCABLE_PREF - }; + // PrefServiceSyncable is a PrefService with added integration for + // sync, and knowledge of how to create an incognito + // PrefService. For code that does not need to know about the sync + // integration, you should use only the plain PrefService type. + // + // For this reason, Profile does not expose an accessor for the + // PrefServiceSyncable type. Instead, you can use the utilities + // below to retrieve the PrefServiceSyncable (or its incognito + // version) from a Profile. + static PrefServiceSyncable* FromProfile(Profile* profile); + static PrefServiceSyncable* IncognitoFromProfile(Profile* profile); // You may wish to use PrefServiceBuilder or one of its subclasses // for simplified construction. @@ -33,7 +39,7 @@ class PrefServiceSyncable : public PrefService { PrefNotifierImpl* pref_notifier, PrefValueStore* pref_value_store, PersistentPrefStore* user_prefs, - PrefRegistry* pref_registry, + PrefRegistrySyncable* pref_registry, base::Callback<void(PersistentPrefStore::PrefReadError)> read_error_callback, bool async); @@ -55,52 +61,6 @@ class PrefServiceSyncable : public PrefService { void AddObserver(PrefServiceSyncableObserver* observer); void RemoveObserver(PrefServiceSyncableObserver* observer); - void RegisterBooleanPref(const char* path, - bool default_value, - PrefSyncStatus sync_status); - void RegisterIntegerPref(const char* path, - int default_value, - PrefSyncStatus sync_status); - void RegisterDoublePref(const char* path, - double default_value, - PrefSyncStatus sync_status); - void RegisterStringPref(const char* path, - const std::string& default_value, - PrefSyncStatus sync_status); - void RegisterFilePathPref(const char* path, - const base::FilePath& default_value, - PrefSyncStatus sync_status); - void RegisterListPref(const char* path, - PrefSyncStatus sync_status); - void RegisterDictionaryPref(const char* path, - PrefSyncStatus sync_status); - void RegisterListPref(const char* path, - base::ListValue* default_value, - PrefSyncStatus sync_status); - void RegisterDictionaryPref(const char* path, - base::DictionaryValue* default_value, - PrefSyncStatus sync_status); - void RegisterLocalizedBooleanPref(const char* path, - int locale_default_message_id, - PrefSyncStatus sync_status); - void RegisterLocalizedIntegerPref(const char* path, - int locale_default_message_id, - PrefSyncStatus sync_status); - void RegisterLocalizedDoublePref(const char* path, - int locale_default_message_id, - PrefSyncStatus sync_status); - void RegisterLocalizedStringPref(const char* path, - int locale_default_message_id, - PrefSyncStatus sync_status); - void RegisterInt64Pref(const char* path, - int64 default_value, - PrefSyncStatus sync_status); - void RegisterUint64Pref(const char* path, - uint64 default_value, - PrefSyncStatus sync_status); - - void UnregisterPreference(const char* path); - // TODO(zea): Have PrefServiceSyncable implement // syncer::SyncableService directly. syncer::SyncableService* GetSyncableService(); @@ -111,16 +71,12 @@ class PrefServiceSyncable : public PrefService { private: friend class PrefModelAssociator; + void AddRegisteredSyncablePreference(const char* path); + virtual void RemoveRegisteredPreference(const char* path) OVERRIDE; + // Invoked internally when the IsSyncing() state changes. void OnIsSyncingChanged(); - // Registers a preference at |path| with |default_value|. If the - // preference is syncable per |sync_status|, also registers it with - // PrefModelAssociator. - void RegisterSyncablePreference(const char* path, - Value* default_value, - PrefSyncStatus sync_status); - // Whether CreateIncognitoPrefService() has been called to create a // "forked" PrefService. bool pref_service_forked_; diff --git a/chrome/browser/prefs/pref_service_syncable_builder.cc b/chrome/browser/prefs/pref_service_syncable_builder.cc index 8a157dd..4a51a86 100644 --- a/chrome/browser/prefs/pref_service_syncable_builder.cc +++ b/chrome/browser/prefs/pref_service_syncable_builder.cc @@ -9,7 +9,7 @@ #include "chrome/browser/policy/policy_service.h" #include "chrome/browser/prefs/command_line_pref_store.h" #include "chrome/browser/prefs/pref_notifier_impl.h" -#include "chrome/browser/prefs/pref_registry_simple.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/prefs/pref_value_store.h" @@ -41,9 +41,8 @@ PrefServiceSyncableBuilder::WithCommandLine(CommandLine* command_line) { return *this; } -PrefServiceSyncable* PrefServiceSyncableBuilder::CreateSyncable() { - // TODO(joi): Switch to accepting a PrefRegistrySyncable parameter. - scoped_refptr<PrefRegistry> pref_registry = new PrefRegistrySimple(); +PrefServiceSyncable* PrefServiceSyncableBuilder::CreateSyncable( + PrefRegistrySyncable* pref_registry) { PrefNotifierImpl* pref_notifier = new PrefNotifierImpl(); PrefServiceSyncable* pref_service = new PrefServiceSyncable( pref_notifier, @@ -56,7 +55,7 @@ PrefServiceSyncable* PrefServiceSyncableBuilder::CreateSyncable() { pref_registry->defaults(), pref_notifier), user_prefs_.get(), - pref_registry.get(), + pref_registry, read_error_callback_, async_); ResetDefaultState(); diff --git a/chrome/browser/prefs/pref_service_syncable_builder.h b/chrome/browser/prefs/pref_service_syncable_builder.h index 1dfb9ac..10081af 100644 --- a/chrome/browser/prefs/pref_service_syncable_builder.h +++ b/chrome/browser/prefs/pref_service_syncable_builder.h @@ -8,6 +8,7 @@ #include "chrome/browser/prefs/pref_service_builder.h" class CommandLine; +class PrefRegistrySyncable; class PrefServiceSyncable; namespace policy { @@ -33,7 +34,7 @@ class PrefServiceSyncableBuilder : public PrefServiceBuilder { // Specifies to use an actual command-line backed command-line pref store. PrefServiceSyncableBuilder& WithCommandLine(CommandLine* command_line); - virtual PrefServiceSyncable* CreateSyncable(); + virtual PrefServiceSyncable* CreateSyncable(PrefRegistrySyncable* registry); private: DISALLOW_COPY_AND_ASSIGN(PrefServiceSyncableBuilder); diff --git a/chrome/browser/prefs/pref_service_unittest.cc b/chrome/browser/prefs/pref_service_unittest.cc index 82e3fe0..1a5ab78 100644 --- a/chrome/browser/prefs/pref_service_unittest.cc +++ b/chrome/browser/prefs/pref_service_unittest.cc @@ -20,6 +20,7 @@ #include "chrome/browser/prefs/command_line_pref_store.h" #include "chrome/browser/prefs/mock_pref_change_callback.h" #include "chrome/browser/prefs/pref_registry_simple.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service_mock_builder.h" #include "chrome/browser/prefs/pref_value_store.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" @@ -322,25 +323,26 @@ TEST_F(PrefServiceUserFilePrefsTest, PreserveEmptyValue) { PrefServiceMockBuilder builder; builder.WithUserFilePrefs(pref_file, message_loop_.message_loop_proxy()); - scoped_ptr<PrefServiceSyncable> prefs(builder.CreateSyncable()); + scoped_refptr<PrefRegistrySyncable> registry(new PrefRegistrySyncable); + scoped_ptr<PrefServiceSyncable> prefs(builder.CreateSyncable(registry)); // Register testing prefs. - prefs->RegisterListPref("list", - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDictionaryPref("dict", - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterListPref("list", + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref("dict", + PrefRegistrySyncable::UNSYNCABLE_PREF); base::ListValue* non_empty_list = new base::ListValue; non_empty_list->Append(base::Value::CreateStringValue("test")); - prefs->RegisterListPref("list_needs_empty_value", - non_empty_list, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterListPref("list_needs_empty_value", + non_empty_list, + PrefRegistrySyncable::UNSYNCABLE_PREF); base::DictionaryValue* non_empty_dict = new base::DictionaryValue; non_empty_dict->SetString("dummy", "whatever"); - prefs->RegisterDictionaryPref("dict_needs_empty_value", - non_empty_dict, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref("dict_needs_empty_value", + non_empty_dict, + PrefRegistrySyncable::UNSYNCABLE_PREF); // Set all testing prefs to empty. ClearListValue(prefs.get(), "list"); diff --git a/chrome/browser/prefs/proxy_policy_unittest.cc b/chrome/browser/prefs/proxy_policy_unittest.cc index 1652742..88c92d3 100644 --- a/chrome/browser/prefs/proxy_policy_unittest.cc +++ b/chrome/browser/prefs/proxy_policy_unittest.cc @@ -3,12 +3,14 @@ // found in the LICENSE file. #include "base/command_line.h" +#include "base/memory/ref_counted.h" #include "chrome/browser/policy/mock_configuration_policy_provider.h" #include "chrome/browser/policy/policy_map.h" #include "chrome/browser/policy/policy_service_impl.h" #include "chrome/browser/prefs/browser_prefs.h" -#include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service_mock_builder.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/prefs/proxy_config_dictionary.h" #include "chrome/browser/prefs/proxy_prefs.h" #include "chrome/common/chrome_switches.h" @@ -97,8 +99,9 @@ class ProxyPolicyTest : public testing::Test { builder.WithCommandLine(&command_line_); if (with_managed_policies) builder.WithManagedPolicies(policy_service_.get()); - PrefServiceSyncable* prefs = builder.CreateSyncable(); - chrome::RegisterUserPrefs(prefs); + scoped_refptr<PrefRegistrySyncable> registry(new PrefRegistrySyncable); + PrefServiceSyncable* prefs = builder.CreateSyncable(registry); + chrome::RegisterUserPrefs(prefs, registry); return prefs; } diff --git a/chrome/browser/prefs/scoped_user_pref_update_unittest.cc b/chrome/browser/prefs/scoped_user_pref_update_unittest.cc index e248819..fdb58a5 100644 --- a/chrome/browser/prefs/scoped_user_pref_update_unittest.cc +++ b/chrome/browser/prefs/scoped_user_pref_update_unittest.cc @@ -4,6 +4,7 @@ #include "base/prefs/public/pref_change_registrar.h" #include "chrome/browser/prefs/mock_pref_change_callback.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/test/base/testing_pref_service.h" #include "testing/gmock/include/gmock/gmock.h" @@ -19,8 +20,9 @@ class ScopedUserPrefUpdateTest : public testing::Test { protected: virtual void SetUp() { - prefs_.RegisterDictionaryPref(kPref, - PrefServiceSyncable::UNSYNCABLE_PREF); + prefs_.registry()->RegisterDictionaryPref( + kPref, + PrefRegistrySyncable::UNSYNCABLE_PREF); registrar_.Init(&prefs_); registrar_.Add(kPref, observer_.GetCallback()); } diff --git a/chrome/browser/prefs/session_startup_pref.cc b/chrome/browser/prefs/session_startup_pref.cc index f4a0f01..508131f 100644 --- a/chrome/browser/prefs/session_startup_pref.cc +++ b/chrome/browser/prefs/session_startup_pref.cc @@ -9,6 +9,7 @@ #include "base/values.h" #include "base/version.h" #include "chrome/browser/net/url_fixer_upper.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" @@ -53,15 +54,15 @@ void URLListToPref(const base::ListValue* url_list, SessionStartupPref* pref) { } // namespace // static -void SessionStartupPref::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterIntegerPref(prefs::kRestoreOnStartup, - TypeToPrefValue(GetDefaultStartupType()), - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterListPref(prefs::kURLsToRestoreOnStartup, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kRestoreOnStartupMigrated, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); +void SessionStartupPref::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterIntegerPref(prefs::kRestoreOnStartup, + TypeToPrefValue(GetDefaultStartupType()), + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterListPref(prefs::kURLsToRestoreOnStartup, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kRestoreOnStartupMigrated, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); } // static diff --git a/chrome/browser/prefs/session_startup_pref.h b/chrome/browser/prefs/session_startup_pref.h index 9eae865..9749cd2 100644 --- a/chrome/browser/prefs/session_startup_pref.h +++ b/chrome/browser/prefs/session_startup_pref.h @@ -10,7 +10,7 @@ #include "googleurl/src/gurl.h" class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; // StartupPref specifies what should happen at startup for a specified profile. @@ -41,7 +41,7 @@ struct SessionStartupPref { static const int kPrefValueURLs = 4; static const int kPrefValueNewTab = 5; - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Returns the default value for |type|. static Type GetDefaultStartupType(); diff --git a/chrome/browser/prefs/session_startup_pref_unittest.cc b/chrome/browser/prefs/session_startup_pref_unittest.cc index 675e327..b0e6fb4 100644 --- a/chrome/browser/prefs/session_startup_pref_unittest.cc +++ b/chrome/browser/prefs/session_startup_pref_unittest.cc @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/session_startup_pref.h" #include "chrome/common/pref_names.h" #include "chrome/test/base/testing_pref_service.h" @@ -17,15 +18,15 @@ class SessionStartupPrefTest : public testing::Test { public: virtual void SetUp() { pref_service_.reset(new TestingPrefServiceSyncable); - SessionStartupPref::RegisterUserPrefs(pref_service_.get()); - pref_service_->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); + SessionStartupPref::RegisterUserPrefs(registry()); + registry()->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); // Make the tests independent of the Mac startup pref migration (see // SessionStartupPref::MigrateMacDefaultPrefIfNecessary). - pref_service_->RegisterStringPref(prefs::kProfileCreatedByVersion, - "22.0.0.0", - PrefServiceSyncable::UNSYNCABLE_PREF); + registry()->RegisterStringPref(prefs::kProfileCreatedByVersion, + "22.0.0.0", + PrefRegistrySyncable::UNSYNCABLE_PREF); } bool IsUseLastOpenDefault() { @@ -37,6 +38,10 @@ class SessionStartupPrefTest : public testing::Test { #endif } + PrefRegistrySyncable* registry() { + return pref_service_->registry(); + } + scoped_ptr<TestingPrefServiceSyncable> pref_service_; }; @@ -82,8 +87,8 @@ TEST_F(SessionStartupPrefTest, URLListManagedOverridesUser) { // (so that, in effect, the default value "Open the homepage" was selected), // their preferences are migrated on upgrade to m19. TEST_F(SessionStartupPrefTest, DefaultMigration) { - pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/", - PrefServiceSyncable::UNSYNCABLE_PREF); + registry()->RegisterStringPref(prefs::kHomePage, "http://google.com/", + PrefRegistrySyncable::UNSYNCABLE_PREF); pref_service_->SetString(prefs::kHomePage, "http://chromium.org/"); pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, false); @@ -107,8 +112,8 @@ TEST_F(SessionStartupPrefTest, DefaultMigration) { // and the NTP is being used for the homepage, their preferences are migrated // to "Open the New Tab Page" on upgrade to M19. TEST_F(SessionStartupPrefTest, DefaultMigrationHomepageIsNTP) { - pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/", - PrefServiceSyncable::UNSYNCABLE_PREF); + registry()->RegisterStringPref(prefs::kHomePage, "http://google.com/", + PrefRegistrySyncable::UNSYNCABLE_PREF); pref_service_->SetString(prefs::kHomePage, "http://chromium.org/"); pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, true); @@ -129,8 +134,8 @@ TEST_F(SessionStartupPrefTest, DefaultMigrationHomepageIsNTP) { // Checks to make sure that if the user had previously selected "Open the // "homepage", their preferences are migrated on upgrade to M19. TEST_F(SessionStartupPrefTest, HomePageMigration) { - pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/", - PrefServiceSyncable::UNSYNCABLE_PREF); + registry()->RegisterStringPref(prefs::kHomePage, "http://google.com/", + PrefRegistrySyncable::UNSYNCABLE_PREF); // By design, it's impossible to set the 'restore on startup' pref to 0 // ("open the homepage") using SessionStartupPref::SetStartupPref(), so set it @@ -151,8 +156,8 @@ TEST_F(SessionStartupPrefTest, HomePageMigration) { // "homepage", and the NTP is being used for the homepage, their preferences // are migrated on upgrade to M19. TEST_F(SessionStartupPrefTest, HomePageMigrationHomepageIsNTP) { - pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/", - PrefServiceSyncable::UNSYNCABLE_PREF); + registry()->RegisterStringPref(prefs::kHomePage, "http://google.com/", + PrefRegistrySyncable::UNSYNCABLE_PREF); // By design, it's impossible to set the 'restore on startup' pref to 0 // ("open the homepage") using SessionStartupPref::SetStartupPref(), so set it diff --git a/chrome/browser/printing/cloud_print/cloud_print_url.cc b/chrome/browser/printing/cloud_print/cloud_print_url.cc index 76dbacf..e6aed23 100644 --- a/chrome/browser/printing/cloud_print/cloud_print_url.cc +++ b/chrome/browser/printing/cloud_print/cloud_print_url.cc @@ -8,6 +8,7 @@ #include "base/logging.h" #include "base/stringprintf.h" #include "chrome/browser/google/google_util.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_switches.h" @@ -26,16 +27,20 @@ const char kTestPageURL[] = void CloudPrintURL::RegisterPreferences() { DCHECK(profile_); - PrefServiceSyncable* pref_service = profile_->GetPrefs(); + PrefService* pref_service = profile_->GetPrefs(); + // TODO(joi): Do all registration up front. + scoped_refptr<PrefRegistrySyncable> registry( + static_cast<PrefRegistrySyncable*>( + pref_service->DeprecatedGetPrefRegistry())); if (!pref_service->FindPreference(prefs::kCloudPrintServiceURL)) { - pref_service->RegisterStringPref(prefs::kCloudPrintServiceURL, - kDefaultCloudPrintServiceURL, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kCloudPrintServiceURL, + kDefaultCloudPrintServiceURL, + PrefRegistrySyncable::UNSYNCABLE_PREF); } if (!pref_service->FindPreference(prefs::kCloudPrintSigninURL)) { - pref_service->RegisterStringPref(prefs::kCloudPrintSigninURL, - kDefaultCloudPrintSigninURL, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kCloudPrintSigninURL, + kDefaultCloudPrintSigninURL, + PrefRegistrySyncable::UNSYNCABLE_PREF); } } diff --git a/chrome/browser/printing/print_dialog_cloud.cc b/chrome/browser/printing/print_dialog_cloud.cc index 7e1a9ae..dd80001 100644 --- a/chrome/browser/printing/print_dialog_cloud.cc +++ b/chrome/browser/printing/print_dialog_cloud.cc @@ -15,6 +15,7 @@ #include "base/values.h" #include "chrome/browser/devtools/devtools_window.h" #include "chrome/browser/lifetime/application_lifetime.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/printing/cloud_print/cloud_print_url.h" #include "chrome/browser/profiles/profile.h" @@ -531,22 +532,25 @@ void GetDialogWidthAndHeightFromPrefs(content::BrowserContext* browser_context, return; } - Profile* profile = Profile::FromBrowserContext(browser_context); - if (!profile->GetPrefs()->FindPreference(prefs::kCloudPrintDialogWidth)) { - profile->GetPrefs()->RegisterIntegerPref( + // TODO(joi): Do registration up front. + PrefService* prefs = Profile::FromBrowserContext(browser_context)->GetPrefs(); + scoped_refptr<PrefRegistrySyncable> registry( + static_cast<PrefRegistrySyncable*>(prefs->DeprecatedGetPrefRegistry())); + if (!prefs->FindPreference(prefs::kCloudPrintDialogWidth)) { + registry->RegisterIntegerPref( prefs::kCloudPrintDialogWidth, kDefaultWidth, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); } - if (!profile->GetPrefs()->FindPreference(prefs::kCloudPrintDialogHeight)) { - profile->GetPrefs()->RegisterIntegerPref( + if (!prefs->FindPreference(prefs::kCloudPrintDialogHeight)) { + registry->RegisterIntegerPref( prefs::kCloudPrintDialogHeight, kDefaultHeight, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); } - *width = profile->GetPrefs()->GetInteger(prefs::kCloudPrintDialogWidth); - *height = profile->GetPrefs()->GetInteger(prefs::kCloudPrintDialogHeight); + *width = prefs->GetInteger(prefs::kCloudPrintDialogWidth); + *height = prefs->GetInteger(prefs::kCloudPrintDialogHeight); } void CloudPrintWebDialogDelegate::Init(content::BrowserContext* browser_context, diff --git a/chrome/browser/profiles/chrome_version_service.cc b/chrome/browser/profiles/chrome_version_service.cc index faa1036..68d1708 100644 --- a/chrome/browser/profiles/chrome_version_service.cc +++ b/chrome/browser/profiles/chrome_version_service.cc @@ -5,14 +5,16 @@ #include "chrome/browser/profiles/chrome_version_service.h" #include "base/version.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/common/chrome_version_info.h" #include "chrome/common/pref_names.h" // static -void ChromeVersionService::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterStringPref(prefs::kProfileCreatedByVersion, "1.0.0.0", - PrefServiceSyncable::UNSYNCABLE_PREF); +void ChromeVersionService::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterStringPref(prefs::kProfileCreatedByVersion, + "1.0.0.0", + PrefRegistrySyncable::UNSYNCABLE_PREF); } // static diff --git a/chrome/browser/profiles/chrome_version_service.h b/chrome/browser/profiles/chrome_version_service.h index 22d1299..ceeb999 100644 --- a/chrome/browser/profiles/chrome_version_service.h +++ b/chrome/browser/profiles/chrome_version_service.h @@ -10,14 +10,14 @@ #include "base/basictypes.h" class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; // This service manages a pref which is used to determine the version of // Chrome by which the profile was created. class ChromeVersionService { public: // Register the user pref we use. - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Sets the version string in the pref for the current profile. static void SetVersion(PrefService* prefs, const std::string& version); diff --git a/chrome/browser/profiles/gaia_info_update_service.h b/chrome/browser/profiles/gaia_info_update_service.h index 45dd16e..cc7128e 100644 --- a/chrome/browser/profiles/gaia_info_update_service.h +++ b/chrome/browser/profiles/gaia_info_update_service.h @@ -14,7 +14,6 @@ #include "chrome/browser/profiles/profile_downloader_delegate.h" #include "chrome/browser/profiles/profile_keyed_service.h" -class PrefServiceSyncable; class Profile; class ProfileDownloader; diff --git a/chrome/browser/profiles/gaia_info_update_service_factory.cc b/chrome/browser/profiles/gaia_info_update_service_factory.cc index fd3ffb2..245f36f 100644 --- a/chrome/browser/profiles/gaia_info_update_service_factory.cc +++ b/chrome/browser/profiles/gaia_info_update_service_factory.cc @@ -4,7 +4,7 @@ #include "chrome/browser/profiles/gaia_info_update_service_factory.h" -#include "chrome/browser/prefs/pref_service_syncable.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/profiles/gaia_info_update_service.h" #include "chrome/browser/profiles/profile_dependency_manager.h" #include "chrome/common/pref_names.h" @@ -36,11 +36,11 @@ ProfileKeyedService* GAIAInfoUpdateServiceFactory::BuildServiceInstanceFor( } void GAIAInfoUpdateServiceFactory::RegisterUserPrefs( - PrefServiceSyncable* prefs) { + PrefRegistrySyncable* prefs) { prefs->RegisterInt64Pref(prefs::kProfileGAIAInfoUpdateTime, 0, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); prefs->RegisterStringPref(prefs::kProfileGAIAInfoPictureURL, "", - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); } bool GAIAInfoUpdateServiceFactory::ServiceIsNULLWhileTesting() const { diff --git a/chrome/browser/profiles/gaia_info_update_service_factory.h b/chrome/browser/profiles/gaia_info_update_service_factory.h index b301be3..2eb611a 100644 --- a/chrome/browser/profiles/gaia_info_update_service_factory.h +++ b/chrome/browser/profiles/gaia_info_update_service_factory.h @@ -9,7 +9,7 @@ #include "chrome/browser/profiles/profile_keyed_service_factory.h" class GAIAInfoUpdateService; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; // Singleton that owns all GAIAInfoUpdateServices and associates them with @@ -35,7 +35,7 @@ class GAIAInfoUpdateServiceFactory : public ProfileKeyedServiceFactory { virtual ProfileKeyedService* BuildServiceInstanceFor( Profile* profile) const OVERRIDE; - virtual void RegisterUserPrefs(PrefServiceSyncable* user_prefs) OVERRIDE; + virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) OVERRIDE; virtual bool ServiceIsNULLWhileTesting() const OVERRIDE; DISALLOW_COPY_AND_ASSIGN(GAIAInfoUpdateServiceFactory); diff --git a/chrome/browser/profiles/off_the_record_profile_impl.cc b/chrome/browser/profiles/off_the_record_profile_impl.cc index e275baf..7baff3e 100644 --- a/chrome/browser/profiles/off_the_record_profile_impl.cc +++ b/chrome/browser/profiles/off_the_record_profile_impl.cc @@ -32,7 +32,7 @@ #include "chrome/browser/plugins/chrome_plugin_service_filter.h" #include "chrome/browser/plugins/plugin_prefs.h" #include "chrome/browser/prefs/incognito_mode_prefs.h" -#include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/profiles/profile_dependency_manager.h" #include "chrome/browser/themes/theme_service.h" #include "chrome/browser/ui/webui/extensions/extension_icon_source.h" @@ -83,7 +83,7 @@ void NotifyOTRProfileDestroyedOnIOThread(void* original_profile, OffTheRecordProfileImpl::OffTheRecordProfileImpl(Profile* real_profile) : profile_(real_profile), - prefs_(real_profile->GetOffTheRecordPrefs()), + prefs_(PrefServiceSyncable::IncognitoFromProfile(real_profile)), ALLOW_THIS_IN_INITIALIZER_LIST(io_data_(this)), start_time_(Time::Now()), zoom_callback_(base::Bind(&OffTheRecordProfileImpl::OnZoomLevelChanged, @@ -240,11 +240,11 @@ policy::PolicyService* OffTheRecordProfileImpl::GetPolicyService() { return profile_->GetPolicyService(); } -PrefServiceSyncable* OffTheRecordProfileImpl::GetPrefs() { +PrefService* OffTheRecordProfileImpl::GetPrefs() { return prefs_; } -PrefServiceSyncable* OffTheRecordProfileImpl::GetOffTheRecordPrefs() { +PrefService* OffTheRecordProfileImpl::GetOffTheRecordPrefs() { return prefs_; } @@ -470,7 +470,7 @@ class GuestSessionProfile : public OffTheRecordProfileImpl { virtual void InitChromeOSPreferences() OVERRIDE { chromeos_preferences_.reset(new chromeos::Preferences()); - chromeos_preferences_->Init(GetPrefs()); + chromeos_preferences_->Init(static_cast<PrefServiceSyncable*>(GetPrefs())); } private: diff --git a/chrome/browser/profiles/off_the_record_profile_impl.h b/chrome/browser/profiles/off_the_record_profile_impl.h index 0bc937e..c26b3d3 100644 --- a/chrome/browser/profiles/off_the_record_profile_impl.h +++ b/chrome/browser/profiles/off_the_record_profile_impl.h @@ -16,6 +16,8 @@ using base::Time; using base::TimeDelta; +class PrefServiceSyncable; + //////////////////////////////////////////////////////////////////////////////// // // OffTheRecordProfileImpl is a profile subclass that wraps an existing profile @@ -43,8 +45,8 @@ class OffTheRecordProfileImpl : public Profile { virtual policy::ManagedModePolicyProvider* GetManagedModePolicyProvider() OVERRIDE; virtual policy::PolicyService* GetPolicyService() OVERRIDE; - virtual PrefServiceSyncable* GetPrefs() OVERRIDE; - virtual PrefServiceSyncable* GetOffTheRecordPrefs() OVERRIDE; + virtual PrefService* GetPrefs() OVERRIDE; + virtual PrefService* GetOffTheRecordPrefs() OVERRIDE; virtual net::URLRequestContextGetter* GetRequestContextForExtensions() OVERRIDE; virtual net::URLRequestContextGetter* CreateRequestContext( diff --git a/chrome/browser/profiles/off_the_record_profile_impl_unittest.cc b/chrome/browser/profiles/off_the_record_profile_impl_unittest.cc index 4bd5c2b..ba0a215 100644 --- a/chrome/browser/profiles/off_the_record_profile_impl_unittest.cc +++ b/chrome/browser/profiles/off_the_record_profile_impl_unittest.cc @@ -42,7 +42,7 @@ class TestingProfileWithHostZoomMap : public TestingProfile { return off_the_record_profile_.get(); } - virtual PrefServiceSyncable* GetOffTheRecordPrefs() OVERRIDE { + virtual PrefService* GetOffTheRecordPrefs() OVERRIDE { return GetPrefs(); } @@ -84,7 +84,7 @@ class OffTheRecordProfileImplTest : public BrowserWithTestWindowTest { virtual void SetUp() OVERRIDE { prefs_.reset(new TestingPrefServiceSimple); - chrome::RegisterLocalState(prefs_->registry(), prefs_.get()); + chrome::RegisterLocalState(prefs_.get(), prefs_->registry()); browser_process()->SetLocalState(prefs_.get()); diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc index 804bcf4..9ca292a 100644 --- a/chrome/browser/profiles/profile.cc +++ b/chrome/browser/profiles/profile.cc @@ -7,6 +7,7 @@ #include <string> #include "build/build_config.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/sync/profile_sync_service.h" #include "chrome/browser/sync/sync_prefs.h" @@ -47,67 +48,66 @@ TestingProfile* Profile::AsTestingProfile() { const char* const Profile::kProfileKey = "__PROFILE__"; // static -void Profile::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterBooleanPref(prefs::kSearchSuggestEnabled, - true, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kSessionExitedCleanly, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kSessionExitType, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kSafeBrowsingEnabled, - true, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kSafeBrowsingReportingEnabled, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kSafeBrowsingProceedAnywayDisabled, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kDisableExtensions, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kExtensionAlertsInitializedPref, - false, PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kSelectFileLastDirectory, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref(prefs::kDefaultZoomLevel, - 0.0, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDictionaryPref(prefs::kPerHostZoomLevels, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kDefaultApps, - "install", - PrefServiceSyncable::UNSYNCABLE_PREF); +void Profile::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kSearchSuggestEnabled, + true, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kSessionExitedCleanly, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kSessionExitType, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kSafeBrowsingEnabled, + true, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kSafeBrowsingReportingEnabled, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kSafeBrowsingProceedAnywayDisabled, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kDisableExtensions, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kExtensionAlertsInitializedPref, + false, PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kSelectFileLastDirectory, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref(prefs::kDefaultZoomLevel, + 0.0, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref(prefs::kPerHostZoomLevels, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kDefaultApps, + "install", + PrefRegistrySyncable::UNSYNCABLE_PREF); #if defined(OS_CHROMEOS) // TODO(dilmah): For OS_CHROMEOS we maintain kApplicationLocale in both // local state and user's profile. For other platforms we maintain // kApplicationLocale only in local state. // In the future we may want to maintain kApplicationLocale // in user's profile for other platforms as well. - prefs->RegisterStringPref(prefs::kApplicationLocale, - std::string(), - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kApplicationLocaleBackup, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kApplicationLocaleAccepted, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kApplicationLocale, + std::string(), + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterStringPref(prefs::kApplicationLocaleBackup, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kApplicationLocaleAccepted, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); #endif #if defined(OS_ANDROID) - prefs->RegisterBooleanPref(prefs::kDevToolsRemoteEnabled, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kSpdyProxyEnabled, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kDevToolsRemoteEnabled, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kSpdyProxyEnabled, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); #endif - } diff --git a/chrome/browser/profiles/profile.h b/chrome/browser/profiles/profile.h index 22b0242..1256c36 100644 --- a/chrome/browser/profiles/profile.h +++ b/chrome/browser/profiles/profile.h @@ -22,7 +22,7 @@ class ExtensionSpecialStoragePolicy; class FaviconService; class HostContentSettingsMap; class PasswordStore; -class PrefServiceSyncable; +class PrefRegistrySyncable; class PromoCounter; class ProtocolHandlerRegistry; class TestingProfile; @@ -136,7 +136,7 @@ class Profile : public content::BrowserContext { // Profile prefs are registered as soon as the prefs are loaded for the first // time. - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Gets task runner for I/O operations associated with |profile|. static scoped_refptr<base::SequencedTaskRunner> GetTaskRunnerForProfile( @@ -209,15 +209,14 @@ class Profile : public content::BrowserContext { // Returns the PolicyService that provides policies for this profile. virtual policy::PolicyService* GetPolicyService() = 0; - // Retrieves a pointer to the PrefServiceSyncable that manages the preferences - // for this user profile. - // TODO(joi): Make this and the below return just a PrefService. - virtual PrefServiceSyncable* GetPrefs() = 0; + // Retrieves a pointer to the PrefService that manages the + // preferences for this user profile. + virtual PrefService* GetPrefs() = 0; // Retrieves a pointer to the PrefService that manages the preferences // for OffTheRecord Profiles. This PrefService is lazily created the first // time that this method is called. - virtual PrefServiceSyncable* GetOffTheRecordPrefs() = 0; + virtual PrefService* GetOffTheRecordPrefs() = 0; // Returns the main request context. virtual net::URLRequestContextGetter* GetRequestContext() = 0; diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc index 4313202..9296778 100644 --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc @@ -55,6 +55,8 @@ #include "chrome/browser/plugins/plugin_prefs.h" #include "chrome/browser/prefs/browser_prefs.h" #include "chrome/browser/prefs/chrome_pref_service_factory.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/prerender/prerender_manager_factory.h" #include "chrome/browser/profiles/bookmark_model_loaded_observer.h" @@ -270,53 +272,53 @@ int ProfileImpl::create_readme_delay_ms = 60000; const char* const ProfileImpl::kPrefExitTypeNormal = "Normal"; // static -void ProfileImpl::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kForceSafeSearch, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kProfileAvatarIndex, - -1, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kProfileName, - "", - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kProfileIsManaged, - false, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kHomePage, - std::string(), - PrefServiceSyncable::SYNCABLE_PREF); +void ProfileImpl::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kForceSafeSearch, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kProfileAvatarIndex, + -1, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterStringPref(prefs::kProfileName, + "", + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kProfileIsManaged, + false, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterStringPref(prefs::kHomePage, + std::string(), + PrefRegistrySyncable::SYNCABLE_PREF); #if defined(ENABLE_PRINTING) - prefs->RegisterBooleanPref(prefs::kPrintingEnabled, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kPrintingEnabled, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); #endif - prefs->RegisterBooleanPref(prefs::kPrintPreviewDisabled, + registry->RegisterBooleanPref(prefs::kPrintPreviewDisabled, #if defined(GOOGLE_CHROME_BUILD) - false, + false, #else - true, + true, #endif - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); // Initialize the cache prefs. - prefs->RegisterFilePathPref(prefs::kDiskCacheDir, - base::FilePath(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kDiskCacheSize, - 0, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kMediaCacheSize, - 0, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterFilePathPref(prefs::kDiskCacheDir, + base::FilePath(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kDiskCacheSize, + 0, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kMediaCacheSize, + 0, + PrefRegistrySyncable::UNSYNCABLE_PREF); // Deprecated. Kept around for migration. - prefs->RegisterBooleanPref(prefs::kClearSiteDataOnExit, - false, - PrefServiceSyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kClearSiteDataOnExit, + false, + PrefRegistrySyncable::SYNCABLE_PREF); } ProfileImpl::ProfileImpl( @@ -327,6 +329,7 @@ ProfileImpl::ProfileImpl( : zoom_callback_(base::Bind(&ProfileImpl::OnZoomLevelChanged, base::Unretained(this))), path_(path), + pref_registry_(new PrefRegistrySyncable), ALLOW_THIS_IN_INITIALIZER_LIST(io_data_(this)), host_content_settings_map_(NULL), last_session_exit_type_(EXIT_NORMAL), @@ -382,6 +385,8 @@ ProfileImpl::ProfileImpl( create_mode == CREATE_MODE_SYNCHRONOUS); bool async_prefs = create_mode == CREATE_MODE_ASYNCHRONOUS; + Profile::RegisterUserPrefs(pref_registry_); + { // On startup, preference loading is always synchronous so a scoped timer // will work here. @@ -393,6 +398,7 @@ ProfileImpl::ProfileImpl( policy_service_.get(), new ExtensionPrefStore( ExtensionPrefValueMapFactory::GetForProfile(this), false), + pref_registry_, async_prefs)); } @@ -700,10 +706,10 @@ void ProfileImpl::OnPrefsLoaded(bool success) { return; } - // The Profile class and ProfileManager class may read some prefs so - // register known prefs as soon as possible. - Profile::RegisterUserPrefs(prefs_.get()); - chrome::RegisterUserPrefs(prefs_.get()); + // TODO(joi): Registration can move to the constructor once it + // doesn't need the PrefService parameter. + chrome::RegisterUserPrefs(prefs_.get(), pref_registry_); + // TODO(mirandac): remove migration code after 6 months (crbug.com/69995). if (g_browser_process->local_state()) chrome::MigrateBrowserPrefs(this, g_browser_process->local_state()); @@ -786,16 +792,17 @@ policy::PolicyService* ProfileImpl::GetPolicyService() { return policy_service_.get(); } -PrefServiceSyncable* ProfileImpl::GetPrefs() { +PrefService* ProfileImpl::GetPrefs() { DCHECK(prefs_.get()); // Should explicitly be initialized. return prefs_.get(); } -PrefServiceSyncable* ProfileImpl::GetOffTheRecordPrefs() { +PrefService* ProfileImpl::GetOffTheRecordPrefs() { + DCHECK(prefs_.get()); if (!otr_prefs_.get()) { // The new ExtensionPrefStore is ref_counted and the new PrefService // stores a reference so that we do not leak memory here. - otr_prefs_.reset(GetPrefs()->CreateIncognitoPrefService( + otr_prefs_.reset(prefs_->CreateIncognitoPrefService( new ExtensionPrefStore( ExtensionPrefValueMapFactory::GetForProfile(this), true))); } @@ -1084,7 +1091,7 @@ void ProfileImpl::SetupChromeOSEnterpriseExtensionObserver() { void ProfileImpl::InitChromeOSPreferences() { chromeos_preferences_.reset(new chromeos::Preferences()); - chromeos_preferences_->Init(GetPrefs()); + chromeos_preferences_->Init(PrefServiceSyncable::FromProfile(this)); } #endif // defined(OS_CHROMEOS) diff --git a/chrome/browser/profiles/profile_impl.h b/chrome/browser/profiles/profile_impl.h index b1f23f7..6470a65 100644 --- a/chrome/browser/profiles/profile_impl.h +++ b/chrome/browser/profiles/profile_impl.h @@ -20,8 +20,10 @@ #include "content/public/browser/host_zoom_map.h" class NetPrefObserver; -class PrefServiceSyncable; +class PrefRegistrySyncable; +class PrefService; class PrefServiceBase; +class PrefServiceSyncable; class SSLConfigServiceManager; #if defined(OS_CHROMEOS) @@ -56,7 +58,7 @@ class ProfileImpl : public Profile { virtual ~ProfileImpl(); - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // content::BrowserContext implementation: virtual base::FilePath GetPath() OVERRIDE; @@ -95,8 +97,8 @@ class ProfileImpl : public Profile { virtual policy::ManagedModePolicyProvider* GetManagedModePolicyProvider() OVERRIDE; virtual policy::PolicyService* GetPolicyService() OVERRIDE; - virtual PrefServiceSyncable* GetPrefs() OVERRIDE; - virtual PrefServiceSyncable* GetOffTheRecordPrefs() OVERRIDE; + virtual PrefService* GetPrefs() OVERRIDE; + virtual PrefService* GetOffTheRecordPrefs() OVERRIDE; virtual net::URLRequestContextGetter* GetRequestContextForExtensions() OVERRIDE; virtual net::SSLConfigService* GetSSLConfigService() OVERRIDE; @@ -231,6 +233,7 @@ class ProfileImpl : public Profile { // Keep |prefs_| on top for destruction order because |extension_prefs_|, // |net_pref_observer_|, |io_data_| an others store pointers to |prefs_| and // shall be destructed first. + scoped_refptr<PrefRegistrySyncable> pref_registry_; scoped_ptr<PrefServiceSyncable> prefs_; scoped_ptr<PrefServiceSyncable> otr_prefs_; ProfileImplIOData::Handle io_data_; diff --git a/chrome/browser/profiles/profile_keyed_base_factory.cc b/chrome/browser/profiles/profile_keyed_base_factory.cc index 1a38c08..858cdad 100644 --- a/chrome/browser/profiles/profile_keyed_base_factory.cc +++ b/chrome/browser/profiles/profile_keyed_base_factory.cc @@ -4,6 +4,8 @@ #include "chrome/browser/profiles/profile_keyed_base_factory.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/profiles/profile_dependency_manager.h" @@ -76,7 +78,13 @@ void ProfileKeyedBaseFactory::RegisterUserPrefsOnProfile(Profile* profile) { std::set<Profile*>::iterator it = registered_preferences_.find(profile); if (it == registered_preferences_.end()) { - RegisterUserPrefs(profile->GetPrefs()); + PrefService* prefs = profile->GetPrefs(); + PrefRegistrySyncable* registry = static_cast<PrefRegistrySyncable*>( + prefs->DeprecatedGetPrefRegistry()); + RegisterUserPrefs(registry); + // A few registration functions still need the PrefService pointer + // (e.g. to clear preferences). + DeprecatedRegisterUserPrefs(prefs, registry); registered_preferences_.insert(profile); } } diff --git a/chrome/browser/profiles/profile_keyed_base_factory.h b/chrome/browser/profiles/profile_keyed_base_factory.h index bcd9ebd..e4a1076 100644 --- a/chrome/browser/profiles/profile_keyed_base_factory.h +++ b/chrome/browser/profiles/profile_keyed_base_factory.h @@ -9,7 +9,8 @@ #include "base/threading/non_thread_safe.h" -class PrefServiceSyncable; +class PrefRegistrySyncable; +class PrefService; class Profile; class ProfileDependencyManager; @@ -50,7 +51,11 @@ class ProfileKeyedBaseFactory : public base::NonThreadSafe { // Register any user preferences on this service. This is called during // CreateProfileService() since preferences are registered on a per Profile // basis. - virtual void RegisterUserPrefs(PrefServiceSyncable* user_prefs) {} + // + // TODO(joi): Remove need for the version with the PrefService parameter. + virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) {} + virtual void DeprecatedRegisterUserPrefs(PrefService* prefs, + PrefRegistrySyncable* registry) {} // By default, if we are asked for a service with an Incognito profile, we // pass back NULL. To redirect to the Incognito's original profile or to diff --git a/chrome/browser/search_engines/template_url_prepopulate_data.cc b/chrome/browser/search_engines/template_url_prepopulate_data.cc index b2a857b..8bfba72 100644 --- a/chrome/browser/search_engines/template_url_prepopulate_data.cc +++ b/chrome/browser/search_engines/template_url_prepopulate_data.cc @@ -11,12 +11,13 @@ #include "base/command_line.h" #include "base/logging.h" #include "base/memory/scoped_vector.h" +#include "base/stl_util.h" #include "base/string16.h" #include "base/string_piece.h" #include "base/string_util.h" -#include "base/stl_util.h" #include "base/utf_string_conversions.h" #include "chrome/browser/google/google_util.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/search_engines/prepopulated_engines.h" @@ -1088,19 +1089,19 @@ const LogoURLs google_logos = { //////////////////////////////////////////////////////////////////////////////// -void RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterIntegerPref(prefs::kCountryIDAtInstall, - kCountryIDUnknown, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kSearchProviderOverrides, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kSearchProviderOverridesVersion, - -1, - PrefServiceSyncable::UNSYNCABLE_PREF); +void RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterIntegerPref(prefs::kCountryIDAtInstall, + kCountryIDUnknown, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kSearchProviderOverrides, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kSearchProviderOverridesVersion, + -1, + PrefRegistrySyncable::UNSYNCABLE_PREF); // Obsolete pref, for migration. - prefs->RegisterIntegerPref(prefs::kGeoIDAtInstall, - -1, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kGeoIDAtInstall, + -1, + PrefRegistrySyncable::UNSYNCABLE_PREF); } int GetDataVersion(PrefService* prefs) { diff --git a/chrome/browser/search_engines/template_url_prepopulate_data.h b/chrome/browser/search_engines/template_url_prepopulate_data.h index aee7679..fc045b8 100644 --- a/chrome/browser/search_engines/template_url_prepopulate_data.h +++ b/chrome/browser/search_engines/template_url_prepopulate_data.h @@ -14,7 +14,7 @@ class GURL; class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; class TemplateURL; @@ -36,7 +36,7 @@ void InitCountryCode(const std::string& country_code); #endif -void RegisterUserPrefs(PrefServiceSyncable* prefs); +void RegisterUserPrefs(PrefRegistrySyncable* registry); // Returns the current version of the prepopulate data, so callers can know when // they need to re-merge. If the prepopulate data comes from the preferences diff --git a/chrome/browser/search_engines/template_url_service_factory.cc b/chrome/browser/search_engines/template_url_service_factory.cc index 6a63158..a18ecce 100644 --- a/chrome/browser/search_engines/template_url_service_factory.cc +++ b/chrome/browser/search_engines/template_url_service_factory.cc @@ -6,6 +6,7 @@ #include "chrome/browser/google/google_url_tracker_factory.h" #include "chrome/browser/history/history_service_factory.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile_dependency_manager.h" #include "chrome/browser/search_engines/template_url_service.h" @@ -44,46 +45,47 @@ ProfileKeyedService* TemplateURLServiceFactory::BuildServiceInstanceFor( return BuildInstanceFor(profile); } -void TemplateURLServiceFactory::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterStringPref(prefs::kSyncedDefaultSearchProviderGUID, - std::string(), - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kDefaultSearchProviderEnabled, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kDefaultSearchProviderName, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kDefaultSearchProviderID, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kDefaultSearchProviderPrepopulateID, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kDefaultSearchProviderSuggestURL, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kDefaultSearchProviderSearchURL, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kDefaultSearchProviderInstantURL, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kDefaultSearchProviderKeyword, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kDefaultSearchProviderIconURL, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kDefaultSearchProviderEncodings, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterListPref(prefs::kDefaultSearchProviderAlternateURLs, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref( +void TemplateURLServiceFactory::RegisterUserPrefs( + PrefRegistrySyncable* registry) { + registry->RegisterStringPref(prefs::kSyncedDefaultSearchProviderGUID, + std::string(), + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kDefaultSearchProviderEnabled, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kDefaultSearchProviderName, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kDefaultSearchProviderID, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kDefaultSearchProviderPrepopulateID, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kDefaultSearchProviderSuggestURL, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kDefaultSearchProviderSearchURL, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kDefaultSearchProviderInstantURL, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kDefaultSearchProviderKeyword, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kDefaultSearchProviderIconURL, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kDefaultSearchProviderEncodings, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kDefaultSearchProviderAlternateURLs, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref( prefs::kDefaultSearchProviderSearchTermsReplacementKey, std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); } bool TemplateURLServiceFactory::ServiceRedirectedInIncognito() const { diff --git a/chrome/browser/search_engines/template_url_service_factory.h b/chrome/browser/search_engines/template_url_service_factory.h index 3727026..13bd98b 100644 --- a/chrome/browser/search_engines/template_url_service_factory.h +++ b/chrome/browser/search_engines/template_url_service_factory.h @@ -8,7 +8,7 @@ #include "base/memory/singleton.h" #include "chrome/browser/profiles/profile_keyed_service_factory.h" -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; class TemplateURLService; @@ -31,7 +31,7 @@ class TemplateURLServiceFactory : public ProfileKeyedServiceFactory { // ProfileKeyedServiceFactory: virtual ProfileKeyedService* BuildServiceInstanceFor( Profile* profile) const OVERRIDE; - virtual void RegisterUserPrefs(PrefServiceSyncable* user_prefs) OVERRIDE; + virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) OVERRIDE; virtual bool ServiceRedirectedInIncognito() const OVERRIDE; virtual bool ServiceIsNULLWhileTesting() const OVERRIDE; virtual void ProfileShutdown(Profile* profile) OVERRIDE; diff --git a/chrome/browser/signin/about_signin_internals_factory.cc b/chrome/browser/signin/about_signin_internals_factory.cc index 3102857..2628042 100644 --- a/chrome/browser/signin/about_signin_internals_factory.cc +++ b/chrome/browser/signin/about_signin_internals_factory.cc @@ -4,6 +4,7 @@ #include "chrome/browser/signin/about_signin_internals_factory.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile_dependency_manager.h" #include "chrome/browser/signin/about_signin_internals.h" @@ -36,13 +37,13 @@ AboutSigninInternalsFactory* AboutSigninInternalsFactory::GetInstance() { } void AboutSigninInternalsFactory::RegisterUserPrefs( - PrefServiceSyncable* user_prefs) { + PrefRegistrySyncable* user_prefs) { // SigninManager information for about:signin-internals. for (int i = UNTIMED_FIELDS_BEGIN; i < UNTIMED_FIELDS_END; ++i) { const std::string pref_path = SigninStatusFieldToString( static_cast<UntimedSigninStatusField>(i)); user_prefs->RegisterStringPref(pref_path.c_str(), "", - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); } for (int i = TIMED_FIELDS_BEGIN; i < TIMED_FIELDS_END; ++i) { const std::string value = SigninStatusFieldToString( @@ -50,9 +51,9 @@ void AboutSigninInternalsFactory::RegisterUserPrefs( const std::string time = SigninStatusFieldToString( static_cast<TimedSigninStatusField>(i)) + ".time"; user_prefs->RegisterStringPref(value.c_str(), "", - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); user_prefs->RegisterStringPref(time.c_str(), "", - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); } // TokenService information for about:signin-internals. for (size_t i = 0; i < kNumTokenPrefs; i++) { @@ -61,11 +62,11 @@ void AboutSigninInternalsFactory::RegisterUserPrefs( const std::string status = pref + ".status"; const std::string time = pref + ".time"; user_prefs->RegisterStringPref(value.c_str(), "", - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); user_prefs->RegisterStringPref(status.c_str(), "", - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); user_prefs->RegisterStringPref(time.c_str(), "", - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); } } diff --git a/chrome/browser/signin/about_signin_internals_factory.h b/chrome/browser/signin/about_signin_internals_factory.h index 66cc69b..c3f0a58 100644 --- a/chrome/browser/signin/about_signin_internals_factory.h +++ b/chrome/browser/signin/about_signin_internals_factory.h @@ -9,7 +9,7 @@ #include "chrome/browser/profiles/profile_keyed_service_factory.h" class AboutSigninInternals; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; // Singleton that owns all AboutSigninInternals and associates them with @@ -24,7 +24,7 @@ class AboutSigninInternalsFactory : public ProfileKeyedServiceFactory { static AboutSigninInternalsFactory* GetInstance(); // Implementation of ProfileKeyedServiceFactory. - virtual void RegisterUserPrefs(PrefServiceSyncable* user_prefs) OVERRIDE; + virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) OVERRIDE; private: friend struct DefaultSingletonTraits<AboutSigninInternalsFactory>; diff --git a/chrome/browser/signin/signin_manager_factory.cc b/chrome/browser/signin/signin_manager_factory.cc index f372fb9..b4349b0 100644 --- a/chrome/browser/signin/signin_manager_factory.cc +++ b/chrome/browser/signin/signin_manager_factory.cc @@ -5,7 +5,7 @@ #include "chrome/browser/signin/signin_manager_factory.h" #include "chrome/browser/prefs/pref_registry_simple.h" -#include "chrome/browser/prefs/pref_service_syncable.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/profiles/profile_dependency_manager.h" #include "chrome/browser/signin/signin_manager.h" #include "chrome/browser/signin/token_service_factory.h" @@ -38,18 +38,18 @@ SigninManagerFactory* SigninManagerFactory::GetInstance() { return Singleton<SigninManagerFactory>::get(); } -void SigninManagerFactory::RegisterUserPrefs(PrefServiceSyncable* user_prefs) { - user_prefs->RegisterStringPref(prefs::kGoogleServicesLastUsername, "", - PrefServiceSyncable::UNSYNCABLE_PREF); - user_prefs->RegisterStringPref(prefs::kGoogleServicesUsername, "", - PrefServiceSyncable::UNSYNCABLE_PREF); - user_prefs->RegisterBooleanPref(prefs::kAutologinEnabled, true, - PrefServiceSyncable::UNSYNCABLE_PREF); - user_prefs->RegisterBooleanPref(prefs::kReverseAutologinEnabled, true, - PrefServiceSyncable::UNSYNCABLE_PREF); - user_prefs->RegisterListPref(prefs::kReverseAutologinRejectedEmailList, - new ListValue, - PrefServiceSyncable::UNSYNCABLE_PREF); +void SigninManagerFactory::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterStringPref(prefs::kGoogleServicesLastUsername, "", + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kGoogleServicesUsername, "", + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kAutologinEnabled, true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kReverseAutologinEnabled, true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kReverseAutologinRejectedEmailList, + new ListValue, + PrefRegistrySyncable::UNSYNCABLE_PREF); } // static diff --git a/chrome/browser/signin/signin_manager_factory.h b/chrome/browser/signin/signin_manager_factory.h index 969ed39..7cb2b81 100644 --- a/chrome/browser/signin/signin_manager_factory.h +++ b/chrome/browser/signin/signin_manager_factory.h @@ -10,7 +10,7 @@ class SigninManager; class PrefRegistrySimple; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; // Singleton that owns all SigninManagers and associates them with @@ -32,7 +32,7 @@ class SigninManagerFactory : public ProfileKeyedServiceFactory { static SigninManagerFactory* GetInstance(); // Implementation of ProfileKeyedServiceFactory (public so tests can call it). - virtual void RegisterUserPrefs(PrefServiceSyncable* user_prefs) OVERRIDE; + virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) OVERRIDE; // Registers the browser-global prefs used by SigninManager. static void RegisterPrefs(PrefRegistrySimple* registry); diff --git a/chrome/browser/signin/signin_manager_unittest.cc b/chrome/browser/signin/signin_manager_unittest.cc index 435b682..beaed42 100644 --- a/chrome/browser/signin/signin_manager_unittest.cc +++ b/chrome/browser/signin/signin_manager_unittest.cc @@ -65,7 +65,7 @@ class SigninManagerTest : public TokenServiceTestHarness { virtual void SetUp() OVERRIDE { prefs_.reset(new TestingPrefServiceSimple); - chrome::RegisterLocalState(prefs_->registry(), prefs_.get()); + chrome::RegisterLocalState(prefs_.get(), prefs_->registry()); TestingBrowserProcess::GetGlobal()->SetLocalState( prefs_.get()); TokenServiceTestHarness::SetUp(); diff --git a/chrome/browser/speech/chrome_speech_recognition_preferences.cc b/chrome/browser/speech/chrome_speech_recognition_preferences.cc index bf4de55..58df99f 100644 --- a/chrome/browser/speech/chrome_speech_recognition_preferences.cc +++ b/chrome/browser/speech/chrome_speech_recognition_preferences.cc @@ -6,6 +6,7 @@ #include "base/bind.h" #include "base/values.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/profiles/profile_dependency_manager.h" @@ -65,15 +66,15 @@ ChromeSpeechRecognitionPreferences::Factory::BuildServiceInstanceFor( } void ChromeSpeechRecognitionPreferences::Factory::RegisterUserPrefs( - PrefServiceSyncable* prefs) { + PrefRegistrySyncable* prefs) { prefs->RegisterBooleanPref( prefs::kSpeechRecognitionFilterProfanities, kDefaultFilterProfanities, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); prefs->RegisterListPref( prefs::kSpeechRecognitionTrayNotificationShownContexts, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); } bool ChromeSpeechRecognitionPreferences::Factory:: diff --git a/chrome/browser/speech/chrome_speech_recognition_preferences.h b/chrome/browser/speech/chrome_speech_recognition_preferences.h index 50945e7..c3b4242 100644 --- a/chrome/browser/speech/chrome_speech_recognition_preferences.h +++ b/chrome/browser/speech/chrome_speech_recognition_preferences.h @@ -16,6 +16,7 @@ #include "chrome/browser/profiles/profile_keyed_service_factory.h" #include "content/public/browser/speech_recognition_preferences.h" +class PrefRegistrySyncable; class PrefService; namespace base { @@ -70,7 +71,7 @@ class ChromeSpeechRecognitionPreferences // ProfileKeyedServiceFactory methods: virtual ProfileKeyedService* BuildServiceInstanceFor(Profile* profile) const OVERRIDE; - virtual void RegisterUserPrefs(PrefServiceSyncable* prefs) OVERRIDE; + virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) OVERRIDE; virtual bool ServiceRedirectedInIncognito() const OVERRIDE; virtual bool ServiceIsNULLWhileTesting() const OVERRIDE; virtual bool ServiceIsCreatedWithProfile() const OVERRIDE; diff --git a/chrome/browser/spellchecker/spellcheck_factory.cc b/chrome/browser/spellchecker/spellcheck_factory.cc index a90b693..897c8a4 100644 --- a/chrome/browser/spellchecker/spellcheck_factory.cc +++ b/chrome/browser/spellchecker/spellcheck_factory.cc @@ -5,6 +5,7 @@ #include "chrome/browser/spellchecker/spellcheck_factory.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/profiles/profile_dependency_manager.h" @@ -46,23 +47,24 @@ ProfileKeyedService* SpellcheckServiceFactory::BuildServiceInstanceFor( } void SpellcheckServiceFactory::RegisterUserPrefs( - PrefServiceSyncable* user_prefs) { + PrefRegistrySyncable* user_prefs) { // TODO(estade): IDS_SPELLCHECK_DICTIONARY should be an ASCII string. - user_prefs->RegisterLocalizedStringPref(prefs::kSpellCheckDictionary, - IDS_SPELLCHECK_DICTIONARY, - PrefServiceSyncable::UNSYNCABLE_PREF); + user_prefs->RegisterLocalizedStringPref( + prefs::kSpellCheckDictionary, + IDS_SPELLCHECK_DICTIONARY, + PrefRegistrySyncable::UNSYNCABLE_PREF); user_prefs->RegisterBooleanPref(prefs::kSpellCheckConfirmDialogShown, false, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); user_prefs->RegisterBooleanPref(prefs::kSpellCheckUseSpellingService, false, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); user_prefs->RegisterBooleanPref(prefs::kEnableContinuousSpellcheck, true, - PrefServiceSyncable::SYNCABLE_PREF); + PrefRegistrySyncable::SYNCABLE_PREF); user_prefs->RegisterBooleanPref(prefs::kEnableAutoSpellCorrect, false, - PrefServiceSyncable::SYNCABLE_PREF); + PrefRegistrySyncable::SYNCABLE_PREF); } bool SpellcheckServiceFactory::ServiceRedirectedInIncognito() const { diff --git a/chrome/browser/spellchecker/spellcheck_factory.h b/chrome/browser/spellchecker/spellcheck_factory.h index bb6efae..b4cf9cc5 100644 --- a/chrome/browser/spellchecker/spellcheck_factory.h +++ b/chrome/browser/spellchecker/spellcheck_factory.h @@ -9,6 +9,7 @@ #include "base/memory/singleton.h" #include "chrome/browser/profiles/profile_keyed_service_factory.h" +class PrefRegistrySyncable; class SpellcheckService; // Entry into the SpellCheck system. @@ -30,7 +31,7 @@ class SpellcheckServiceFactory : public ProfileKeyedServiceFactory { // ProfileKeyedServiceFactory: virtual ProfileKeyedService* BuildServiceInstanceFor( Profile* profile) const OVERRIDE; - virtual void RegisterUserPrefs(PrefServiceSyncable* user_prefs) OVERRIDE; + virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) OVERRIDE; virtual bool ServiceRedirectedInIncognito() const OVERRIDE; virtual bool ServiceIsNULLWhileTesting() const OVERRIDE; diff --git a/chrome/browser/sync/glue/session_model_associator.cc b/chrome/browser/sync/glue/session_model_associator.cc index e2ee522..19109b7 100644 --- a/chrome/browser/sync/glue/session_model_associator.cc +++ b/chrome/browser/sync/glue/session_model_associator.cc @@ -16,7 +16,8 @@ #include "base/utf_string_conversions.h" #include "chrome/browser/favicon/favicon_service_factory.h" #include "chrome/browser/history/history_service.h" -#include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/sessions/session_id.h" #include "chrome/browser/sync/glue/device_info.h" @@ -95,15 +96,17 @@ SessionModelAssociator::SessionModelAssociator(ProfileSyncService* sync_service, waiting_for_change_(false), ALLOW_THIS_IN_INITIALIZER_LIST(test_weak_factory_(this)), profile_(sync_service->profile()), - pref_service_(profile_->GetPrefs()), + pref_service_(PrefServiceSyncable::FromProfile(profile_)), error_handler_(error_handler) { DCHECK(CalledOnValidThread()); DCHECK(sync_service_); DCHECK(profile_); if (pref_service_->FindPreference(kSyncSessionsGUID) == NULL) { - pref_service_->RegisterStringPref(kSyncSessionsGUID, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); + static_cast<PrefRegistrySyncable*>( + pref_service_->DeprecatedGetPrefRegistry())->RegisterStringPref( + kSyncSessionsGUID, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); } } diff --git a/chrome/browser/sync/glue/sync_backend_host_unittest.cc b/chrome/browser/sync/glue/sync_backend_host_unittest.cc index 24165d2..3581104 100644 --- a/chrome/browser/sync/glue/sync_backend_host_unittest.cc +++ b/chrome/browser/sync/glue/sync_backend_host_unittest.cc @@ -11,6 +11,8 @@ #include "base/message_loop.h" #include "base/synchronization/waitable_event.h" #include "base/test/test_timeouts.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/sync/glue/device_info.h" #include "chrome/browser/sync/glue/synced_device_tracker.h" #include "chrome/browser/sync/invalidations/invalidator_storage.h" @@ -144,7 +146,10 @@ class SyncBackendHostTest : public testing::Test { profile_.reset(new TestingProfile()); profile_->CreateRequestContext(); sync_prefs_.reset(new SyncPrefs(profile_->GetPrefs())); - invalidator_storage_.reset(new InvalidatorStorage(profile_->GetPrefs())); + invalidator_storage_.reset(new InvalidatorStorage( + profile_->GetPrefs(), + static_cast<PrefRegistrySyncable*>( + profile_->GetPrefs()->DeprecatedGetPrefRegistry()))); backend_.reset(new SyncBackendHost( profile_->GetDebugName(), profile_.get(), diff --git a/chrome/browser/sync/invalidations/invalidator_storage.cc b/chrome/browser/sync/invalidations/invalidator_storage.cc index cb394bd..207c61f 100644 --- a/chrome/browser/sync/invalidations/invalidator_storage.cc +++ b/chrome/browser/sync/invalidations/invalidator_storage.cc @@ -13,6 +13,7 @@ #include "base/strings/string_number_conversions.h" #include "base/task_runner.h" #include "base/values.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/common/pref_names.h" #include "sync/internal_api/public/base/model_type.h" @@ -93,22 +94,24 @@ DictionaryValue* ObjectIdAndStateToValue( } // namespace -InvalidatorStorage::InvalidatorStorage(PrefServiceSyncable* pref_service) +InvalidatorStorage::InvalidatorStorage(PrefService* pref_service, + PrefRegistrySyncable* registry) : pref_service_(pref_service) { // TODO(tim): Create a Mock instead of maintaining the if(!pref_service_) case // throughout this file. This is a problem now due to lack of injection at // ProfileSyncService. Bug 130176. - if (pref_service_) { - pref_service_->RegisterListPref(prefs::kInvalidatorMaxInvalidationVersions, - PrefServiceSyncable::UNSYNCABLE_PREF); - pref_service_->RegisterStringPref(prefs::kInvalidatorInvalidationState, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - pref_service_->RegisterStringPref(prefs::kInvalidatorClientId, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - - MigrateMaxInvalidationVersionsPref(); + if (registry) { + // TODO(joi): Move to registration function. + registry->RegisterListPref(prefs::kInvalidatorMaxInvalidationVersions, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kInvalidatorInvalidationState, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kInvalidatorClientId, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + + MigrateMaxInvalidationVersionsPref(registry); } } @@ -196,9 +199,10 @@ void InvalidatorStorage::SerializeToList( } // Legacy migration code. -void InvalidatorStorage::MigrateMaxInvalidationVersionsPref() { - pref_service_->RegisterDictionaryPref(prefs::kSyncMaxInvalidationVersions, - PrefServiceSyncable::UNSYNCABLE_PREF); +void InvalidatorStorage::MigrateMaxInvalidationVersionsPref( + PrefRegistrySyncable* registry) { + registry->RegisterDictionaryPref(prefs::kSyncMaxInvalidationVersions, + PrefRegistrySyncable::UNSYNCABLE_PREF); const base::DictionaryValue* max_versions_dict = pref_service_->GetDictionary(prefs::kSyncMaxInvalidationVersions); CHECK(max_versions_dict); diff --git a/chrome/browser/sync/invalidations/invalidator_storage.h b/chrome/browser/sync/invalidations/invalidator_storage.h index 0252810..31cca12 100644 --- a/chrome/browser/sync/invalidations/invalidator_storage.h +++ b/chrome/browser/sync/invalidations/invalidator_storage.h @@ -15,7 +15,8 @@ #include "base/threading/thread_checker.h" #include "sync/notifier/invalidation_state_tracker.h" -class PrefServiceSyncable; +class PrefService; +class PrefRegistrySyncable; namespace base { class DictionaryValue; @@ -34,7 +35,8 @@ class InvalidatorStorage : public base::SupportsWeakPtr<InvalidatorStorage>, public: // |pref_service| may be NULL (for unit tests), but in that case no setter // methods should be called. Does not own |pref_service|. - explicit InvalidatorStorage(PrefServiceSyncable* pref_service); + explicit InvalidatorStorage(PrefService* pref_service, + PrefRegistrySyncable* registry); virtual ~InvalidatorStorage(); // Erases invalidation versions and state stored on disk. @@ -90,12 +92,12 @@ class InvalidatorStorage : public base::SupportsWeakPtr<InvalidatorStorage>, // Code for migrating from old MaxInvalidationVersions pref, which was a map // from sync types to max invalidation versions. - void MigrateMaxInvalidationVersionsPref(); + void MigrateMaxInvalidationVersionsPref(PrefRegistrySyncable* registry); static void DeserializeMap(const base::DictionaryValue* max_versions_dict, syncer::InvalidationStateMap* map); // May be NULL. - PrefServiceSyncable* const pref_service_; + PrefService* const pref_service_; DISALLOW_COPY_AND_ASSIGN(InvalidatorStorage); }; diff --git a/chrome/browser/sync/invalidations/invalidator_storage_unittest.cc b/chrome/browser/sync/invalidations/invalidator_storage_unittest.cc index a47adff..440c990 100644 --- a/chrome/browser/sync/invalidations/invalidator_storage_unittest.cc +++ b/chrome/browser/sync/invalidations/invalidator_storage_unittest.cc @@ -61,7 +61,7 @@ class InvalidatorStorageTest : public testing::Test { // Set invalidation states for various keys and verify that they are written and // read back correctly. TEST_F(InvalidatorStorageTest, SetMaxVersionAndPayload) { - InvalidatorStorage storage(&pref_service_); + InvalidatorStorage storage(&pref_service_, pref_service_.registry()); InvalidationStateMap expected_states; EXPECT_EQ(expected_states, storage.GetAllInvalidationStates()); @@ -88,7 +88,7 @@ TEST_F(InvalidatorStorageTest, SetMaxVersionAndPayload) { // Forgetting an entry should cause that entry to be deleted. TEST_F(InvalidatorStorageTest, Forget) { - InvalidatorStorage storage(&pref_service_); + InvalidatorStorage storage(&pref_service_, pref_service_.registry()); EXPECT_TRUE(storage.GetAllInvalidationStates().empty()); InvalidationStateMap expected_states; @@ -110,7 +110,7 @@ TEST_F(InvalidatorStorageTest, Forget) { // Clearing the storage should erase all version map entries, bootstrap data, // and the client ID. TEST_F(InvalidatorStorageTest, Clear) { - InvalidatorStorage storage(&pref_service_); + InvalidatorStorage storage(&pref_service_, pref_service_.registry()); EXPECT_TRUE(storage.GetAllInvalidationStates().empty()); EXPECT_TRUE(storage.GetBootstrapData().empty()); EXPECT_TRUE(storage.GetInvalidatorClientId().empty()); @@ -388,7 +388,7 @@ TEST_F(InvalidatorStorageTest, MigrateLegacyPreferences) { legacy_dict->SetString(base::IntToString(syncer::BOOKMARKS), "32"); legacy_dict->SetString(base::IntToString(syncer::PREFERENCES), "54"); pref_service_.SetUserPref(prefs::kSyncMaxInvalidationVersions, legacy_dict); - InvalidatorStorage storage(&pref_service_); + InvalidatorStorage storage(&pref_service_, pref_service_.registry()); // Legacy pref should be cleared. const base::DictionaryValue* dict = @@ -408,7 +408,7 @@ TEST_F(InvalidatorStorageTest, MigrateLegacyPreferences) { } TEST_F(InvalidatorStorageTest, SetGetNotifierClientId) { - InvalidatorStorage storage(&pref_service_); + InvalidatorStorage storage(&pref_service_, pref_service_.registry()); const std::string client_id("fK6eDzAIuKqx9A4+93bljg=="); storage.SetInvalidatorClientId(client_id); @@ -416,7 +416,7 @@ TEST_F(InvalidatorStorageTest, SetGetNotifierClientId) { } TEST_F(InvalidatorStorageTest, SetGetBootstrapData) { - InvalidatorStorage storage(&pref_service_); + InvalidatorStorage storage(&pref_service_, pref_service_.registry()); const std::string mess("n\0tK\0\0l\344", 8); ASSERT_FALSE(IsStringUTF8(mess)); @@ -427,7 +427,7 @@ TEST_F(InvalidatorStorageTest, SetGetBootstrapData) { // Test that we correctly generate ack handles, acknowledge them, and persist // them. TEST_F(InvalidatorStorageTest, GenerateAckHandlesAndAcknowledge) { - InvalidatorStorage storage(&pref_service_); + InvalidatorStorage storage(&pref_service_, pref_service_.registry()); syncer::ObjectIdSet ids; InvalidationStateMap state_map; syncer::AckHandleMap ack_handle_map; diff --git a/chrome/browser/sync/profile_sync_components_factory_impl.cc b/chrome/browser/sync/profile_sync_components_factory_impl.cc index e662a3d..9c39a45 100644 --- a/chrome/browser/sync/profile_sync_components_factory_impl.cc +++ b/chrome/browser/sync/profile_sync_components_factory_impl.cc @@ -13,7 +13,7 @@ #include "chrome/browser/history/history_service.h" #include "chrome/browser/history/history_service_factory.h" #include "chrome/browser/prefs/pref_model_associator.h" -#include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search_engines/template_url_service.h" #include "chrome/browser/search_engines/template_url_service_factory.h" @@ -285,7 +285,8 @@ base::WeakPtr<syncer::SyncableService> ProfileSyncComponentsFactoryImpl:: } switch (type) { case syncer::PREFERENCES: - return profile_->GetPrefs()->GetSyncableService()->AsWeakPtr(); + return PrefServiceSyncable::FromProfile( + profile_)->GetSyncableService()->AsWeakPtr(); case syncer::AUTOFILL: case syncer::AUTOFILL_PROFILE: { if (!web_data_service_.get()) diff --git a/chrome/browser/sync/profile_sync_service.cc b/chrome/browser/sync/profile_sync_service.cc index b4daa44..b649c14 100644 --- a/chrome/browser/sync/profile_sync_service.cc +++ b/chrome/browser/sync/profile_sync_service.cc @@ -26,7 +26,8 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/defaults.h" #include "chrome/browser/net/chrome_cookie_notification_details.h" -#include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/signin/signin_manager.h" #include "chrome/browser/signin/signin_manager_factory.h" @@ -137,7 +138,10 @@ ProfileSyncService::ProfileSyncService(ProfileSyncComponentsFactory* factory, profile_(profile), // |profile| may be NULL in unit tests. sync_prefs_(profile_ ? profile_->GetPrefs() : NULL), - invalidator_storage_(profile_ ? profile_->GetPrefs(): NULL), + invalidator_storage_( + profile_ ? profile_->GetPrefs(): NULL, + profile_ ? static_cast<PrefRegistrySyncable*>( + profile_->GetPrefs()->DeprecatedGetPrefRegistry()) : NULL), sync_service_url_(kDevServerUrl), is_first_time_sync_configure_(false), backend_initialized_(false), diff --git a/chrome/browser/sync/profile_sync_service_preference_unittest.cc b/chrome/browser/sync/profile_sync_service_preference_unittest.cc index fc9969e..b8ea6c5 100644 --- a/chrome/browser/sync/profile_sync_service_preference_unittest.cc +++ b/chrome/browser/sync/profile_sync_service_preference_unittest.cc @@ -14,6 +14,7 @@ #include "base/stl_util.h" #include "base/string_piece.h" #include "chrome/browser/prefs/pref_model_associator.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/signin/signin_manager.h" #include "chrome/browser/signin/signin_manager_factory.h" @@ -123,9 +124,10 @@ class ProfileSyncServicePreferenceTest profile_->CreateRequestContext(); prefs_ = profile_->GetTestingPrefService(); - prefs_->RegisterStringPref(not_synced_preference_name_.c_str(), - not_synced_preference_default_value_, - PrefServiceSyncable::UNSYNCABLE_PREF); + prefs_->registry()->RegisterStringPref( + not_synced_preference_name_.c_str(), + not_synced_preference_default_value_, + PrefRegistrySyncable::UNSYNCABLE_PREF); } virtual void TearDown() { diff --git a/chrome/browser/sync/sync_prefs.cc b/chrome/browser/sync/sync_prefs.cc index 3174957..34ed7c8 100644 --- a/chrome/browser/sync/sync_prefs.cc +++ b/chrome/browser/sync/sync_prefs.cc @@ -9,6 +9,7 @@ #include "base/strings/string_number_conversions.h" #include "base/values.h" #include "build/build_config.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile_io_data.h" #include "chrome/browser/sync/profile_sync_service.h" @@ -22,7 +23,7 @@ namespace browser_sync { SyncPrefObserver::~SyncPrefObserver() {} -SyncPrefs::SyncPrefs(PrefServiceSyncable* pref_service) +SyncPrefs::SyncPrefs(PrefService* pref_service) : pref_service_(pref_service) { RegisterPrefGroups(); // TODO(tim): Create a Mock instead of maintaining the if(!pref_service_) case @@ -42,16 +43,18 @@ SyncPrefs::~SyncPrefs() { } // static -void SyncPrefs::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterBooleanPref(prefs::kSyncHasSetupCompleted, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kSyncSuppressStart, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterInt64Pref(prefs::kSyncLastSyncedTime, - 0, - PrefServiceSyncable::UNSYNCABLE_PREF); +void SyncPrefs::RegisterUserPrefs(PrefService* prefs, + PrefRegistrySyncable* registry) { + // TODO(joi): Remove |prefs| parameter. + registry->RegisterBooleanPref(prefs::kSyncHasSetupCompleted, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kSyncSuppressStart, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterInt64Pref(prefs::kSyncLastSyncedTime, + 0, + PrefRegistrySyncable::UNSYNCABLE_PREF); // If you've never synced before, or if you're using Chrome OS or Android, // all datatypes are on by default. @@ -63,9 +66,9 @@ void SyncPrefs::RegisterUserPrefs(PrefServiceSyncable* prefs) { bool enable_by_default = !prefs->HasPrefPath(prefs::kSyncHasSetupCompleted); #endif - prefs->RegisterBooleanPref(prefs::kSyncKeepEverythingSynced, - enable_by_default, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kSyncKeepEverythingSynced, + enable_by_default, + PrefRegistrySyncable::UNSYNCABLE_PREF); syncer::ModelTypeSet user_types = syncer::UserTypes(); @@ -74,27 +77,27 @@ void SyncPrefs::RegisterUserPrefs(PrefServiceSyncable* prefs) { user_types.PutAll(syncer::ProxyTypes()); // Treat bookmarks specially. - RegisterDataTypePreferredPref(prefs, syncer::BOOKMARKS, true); + RegisterDataTypePreferredPref(registry, syncer::BOOKMARKS, true); user_types.Remove(syncer::BOOKMARKS); for (syncer::ModelTypeSet::Iterator it = user_types.First(); it.Good(); it.Inc()) { - RegisterDataTypePreferredPref(prefs, it.Get(), enable_by_default); + RegisterDataTypePreferredPref(registry, it.Get(), enable_by_default); } - prefs->RegisterBooleanPref(prefs::kSyncManaged, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kSyncEncryptionBootstrapToken, - "", - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kSyncKeystoreEncryptionBootstrapToken, - "", - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kSyncManaged, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kSyncEncryptionBootstrapToken, + "", + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kSyncKeystoreEncryptionBootstrapToken, + "", + PrefRegistrySyncable::UNSYNCABLE_PREF); #if defined(OS_CHROMEOS) - prefs->RegisterStringPref(prefs::kSyncSpareBootstrapToken, - "", - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kSyncSpareBootstrapToken, + "", + PrefRegistrySyncable::UNSYNCABLE_PREF); #endif // We will start prompting people about new data types after the launch of @@ -113,9 +116,9 @@ void SyncPrefs::RegisterUserPrefs(PrefServiceSyncable* prefs) { model_set.Put(syncer::APPS); model_set.Put(syncer::TYPED_URLS); model_set.Put(syncer::SESSIONS); - prefs->RegisterListPref(prefs::kSyncAcknowledgedSyncTypes, - syncer::ModelTypeSetToValue(model_set), - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterListPref(prefs::kSyncAcknowledgedSyncTypes, + syncer::ModelTypeSetToValue(model_set), + PrefRegistrySyncable::UNSYNCABLE_PREF); } // static @@ -393,7 +396,7 @@ void SyncPrefs::RegisterPrefGroups() { } // static -void SyncPrefs::RegisterDataTypePreferredPref(PrefServiceSyncable* prefs, +void SyncPrefs::RegisterDataTypePreferredPref(PrefRegistrySyncable* registry, syncer::ModelType type, bool is_preferred) { const char* pref_name = GetPrefNameForDataType(type); @@ -401,8 +404,8 @@ void SyncPrefs::RegisterDataTypePreferredPref(PrefServiceSyncable* prefs, NOTREACHED(); return; } - prefs->RegisterBooleanPref(pref_name, is_preferred, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(pref_name, is_preferred, + PrefRegistrySyncable::UNSYNCABLE_PREF); } bool SyncPrefs::GetDataTypePreferred(syncer::ModelType type) const { diff --git a/chrome/browser/sync/sync_prefs.h b/chrome/browser/sync/sync_prefs.h index 8f97b6d..b0b2fb0 100644 --- a/chrome/browser/sync/sync_prefs.h +++ b/chrome/browser/sync/sync_prefs.h @@ -15,7 +15,8 @@ #include "sync/internal_api/public/base/model_type.h" #include "sync/notifier/invalidation_state_tracker.h" -class PrefServiceSyncable; +class PrefRegistrySyncable; +class PrefService; class ProfileIOData; namespace browser_sync { @@ -49,11 +50,12 @@ class SyncPrefs : NON_EXPORTED_BASE(public base::NonThreadSafe), // |pref_service| may be NULL (for unit tests), but in that case no // setter methods should be called. Does not take ownership of // |pref_service|. - explicit SyncPrefs(PrefServiceSyncable* pref_service); + explicit SyncPrefs(PrefService* pref_service); virtual ~SyncPrefs(); - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefService* prefs, + PrefRegistrySyncable* registry); // Checks if sync is enabled for the profile that owns |io_data|. This must // be invoked on the IO thread, and can be used to check if sync is enabled @@ -131,7 +133,7 @@ class SyncPrefs : NON_EXPORTED_BASE(public base::NonThreadSafe), void RegisterPrefGroups(); static void RegisterDataTypePreferredPref( - PrefServiceSyncable* prefs, syncer::ModelType type, bool is_preferred); + PrefRegistrySyncable* prefs, syncer::ModelType type, bool is_preferred); bool GetDataTypePreferred(syncer::ModelType type) const; void SetDataTypePreferred(syncer::ModelType type, bool is_preferred); @@ -144,7 +146,7 @@ class SyncPrefs : NON_EXPORTED_BASE(public base::NonThreadSafe), void OnSyncManagedPrefChanged(); // May be NULL. - PrefServiceSyncable* const pref_service_; + PrefService* const pref_service_; ObserverList<SyncPrefObserver> sync_pref_observers_; diff --git a/chrome/browser/sync/sync_prefs_unittest.cc b/chrome/browser/sync/sync_prefs_unittest.cc index 79b24d5..dd08c5f 100644 --- a/chrome/browser/sync/sync_prefs_unittest.cc +++ b/chrome/browser/sync/sync_prefs_unittest.cc @@ -21,7 +21,8 @@ using ::testing::StrictMock; class SyncPrefsTest : public testing::Test { protected: virtual void SetUp() OVERRIDE { - SyncPrefs::RegisterUserPrefs(&pref_service_); + SyncPrefs::RegisterUserPrefs(&pref_service_, + pref_service_.registry()); } TestingPrefServiceSyncable pref_service_; diff --git a/chrome/browser/themes/theme_service_factory.cc b/chrome/browser/themes/theme_service_factory.cc index 2f4674a..9f802e1 100644 --- a/chrome/browser/themes/theme_service_factory.cc +++ b/chrome/browser/themes/theme_service_factory.cc @@ -6,6 +6,7 @@ #include "base/logging.h" #include "chrome/browser/extensions/extension_service.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/profiles/profile_dependency_manager.h" @@ -56,26 +57,26 @@ ProfileKeyedService* ThemeServiceFactory::BuildServiceInstanceFor( return provider; } -void ThemeServiceFactory::RegisterUserPrefs(PrefServiceSyncable* prefs) { +void ThemeServiceFactory::RegisterUserPrefs(PrefRegistrySyncable* registry) { #if defined(TOOLKIT_GTK) - prefs->RegisterBooleanPref(prefs::kUsesSystemTheme, - GtkThemeService::DefaultUsesSystemTheme(), - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kUsesSystemTheme, + GtkThemeService::DefaultUsesSystemTheme(), + PrefRegistrySyncable::UNSYNCABLE_PREF); #endif - prefs->RegisterFilePathPref(prefs::kCurrentThemePackFilename, - base::FilePath(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kCurrentThemeID, - ThemeService::kDefaultThemeID, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDictionaryPref(prefs::kCurrentThemeImages, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDictionaryPref(prefs::kCurrentThemeColors, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDictionaryPref(prefs::kCurrentThemeTints, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDictionaryPref(prefs::kCurrentThemeDisplayProperties, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterFilePathPref(prefs::kCurrentThemePackFilename, + base::FilePath(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kCurrentThemeID, + ThemeService::kDefaultThemeID, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref(prefs::kCurrentThemeImages, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref(prefs::kCurrentThemeColors, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref(prefs::kCurrentThemeTints, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref(prefs::kCurrentThemeDisplayProperties, + PrefRegistrySyncable::UNSYNCABLE_PREF); } bool ThemeServiceFactory::ServiceRedirectedInIncognito() const { diff --git a/chrome/browser/themes/theme_service_factory.h b/chrome/browser/themes/theme_service_factory.h index 865ff96..db9126a 100644 --- a/chrome/browser/themes/theme_service_factory.h +++ b/chrome/browser/themes/theme_service_factory.h @@ -9,6 +9,7 @@ #include "base/memory/singleton.h" #include "chrome/browser/profiles/profile_keyed_service_factory.h" +class PrefRegistrySyncable; class Profile; class ThemeService; @@ -42,7 +43,7 @@ class ThemeServiceFactory : public ProfileKeyedServiceFactory { // ProfileKeyedServiceFactory: virtual ProfileKeyedService* BuildServiceInstanceFor( Profile* profile) const OVERRIDE; - virtual void RegisterUserPrefs(PrefServiceSyncable* prefs) OVERRIDE; + virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) OVERRIDE; virtual bool ServiceRedirectedInIncognito() const OVERRIDE; DISALLOW_COPY_AND_ASSIGN(ThemeServiceFactory); diff --git a/chrome/browser/translate/translate_prefs.cc b/chrome/browser/translate/translate_prefs.cc index a642cb1..36a900b 100644 --- a/chrome/browser/translate/translate_prefs.cc +++ b/chrome/browser/translate/translate_prefs.cc @@ -5,6 +5,7 @@ #include "chrome/browser/translate/translate_prefs.h" #include "base/string_util.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" @@ -148,24 +149,25 @@ bool TranslatePrefs::ShouldAutoTranslate(PrefService* user_prefs, return prefs.IsLanguageWhitelisted(original_language, target_language); } -void TranslatePrefs::RegisterUserPrefs(PrefServiceSyncable* user_prefs) { - if (!user_prefs->FindPreference(kPrefTranslateLanguageBlacklist)) - user_prefs->RegisterListPref(kPrefTranslateLanguageBlacklist, - PrefServiceSyncable::SYNCABLE_PREF); - if (!user_prefs->FindPreference(kPrefTranslateSiteBlacklist)) - user_prefs->RegisterListPref(kPrefTranslateSiteBlacklist, - PrefServiceSyncable::SYNCABLE_PREF); - if (!user_prefs->FindPreference(kPrefTranslateWhitelists)) { - user_prefs->RegisterDictionaryPref(kPrefTranslateWhitelists, - PrefServiceSyncable::SYNCABLE_PREF); - MigrateTranslateWhitelists(user_prefs); +void TranslatePrefs::RegisterUserPrefs(PrefService* prefs, + PrefRegistrySyncable* registry) { + if (!prefs->FindPreference(kPrefTranslateLanguageBlacklist)) + registry->RegisterListPref(kPrefTranslateLanguageBlacklist, + PrefRegistrySyncable::SYNCABLE_PREF); + if (!prefs->FindPreference(kPrefTranslateSiteBlacklist)) + registry->RegisterListPref(kPrefTranslateSiteBlacklist, + PrefRegistrySyncable::SYNCABLE_PREF); + if (!prefs->FindPreference(kPrefTranslateWhitelists)) { + registry->RegisterDictionaryPref(kPrefTranslateWhitelists, + PrefRegistrySyncable::SYNCABLE_PREF); + MigrateTranslateWhitelists(prefs); } - if (!user_prefs->FindPreference(kPrefTranslateDeniedCount)) - user_prefs->RegisterDictionaryPref(kPrefTranslateDeniedCount, - PrefServiceSyncable::SYNCABLE_PREF); - if (!user_prefs->FindPreference(kPrefTranslateAcceptedCount)) - user_prefs->RegisterDictionaryPref(kPrefTranslateAcceptedCount, - PrefServiceSyncable::SYNCABLE_PREF); + if (!prefs->FindPreference(kPrefTranslateDeniedCount)) + registry->RegisterDictionaryPref(kPrefTranslateDeniedCount, + PrefRegistrySyncable::SYNCABLE_PREF); + if (!prefs->FindPreference(kPrefTranslateAcceptedCount)) + registry->RegisterDictionaryPref(kPrefTranslateAcceptedCount, + PrefRegistrySyncable::SYNCABLE_PREF); } // TranslatePrefs: private, static: -------------------------------------------- diff --git a/chrome/browser/translate/translate_prefs.h b/chrome/browser/translate/translate_prefs.h index 0cb7d8b..0adf370d 100644 --- a/chrome/browser/translate/translate_prefs.h +++ b/chrome/browser/translate/translate_prefs.h @@ -9,8 +9,8 @@ #include "googleurl/src/gurl.h" +class PrefRegistrySyncable; class PrefService; -class PrefServiceSyncable; namespace base { class DictionaryValue; @@ -60,7 +60,8 @@ class TranslatePrefs { const std::string& original_language, const GURL& url); static bool ShouldAutoTranslate(PrefService* user_prefs, const std::string& original_language, std::string* target_language); - static void RegisterUserPrefs(PrefServiceSyncable* user_prefs); + static void RegisterUserPrefs(PrefService* prefs, + PrefRegistrySyncable* registry); private: static void MigrateTranslateWhitelists(PrefService* user_prefs); diff --git a/chrome/browser/ui/alternate_error_tab_observer.cc b/chrome/browser/ui/alternate_error_tab_observer.cc index 205ab6a..ed4ac3f 100644 --- a/chrome/browser/ui/alternate_error_tab_observer.cc +++ b/chrome/browser/ui/alternate_error_tab_observer.cc @@ -5,6 +5,7 @@ #include "chrome/browser/ui/alternate_error_tab_observer.h" #include "chrome/browser/google/google_util.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_notification_types.h" @@ -22,7 +23,7 @@ AlternateErrorPageTabObserver::AlternateErrorPageTabObserver( WebContents* web_contents) : content::WebContentsObserver(web_contents), profile_(Profile::FromBrowserContext(web_contents->GetBrowserContext())) { - PrefServiceSyncable* prefs = profile_->GetPrefs(); + PrefService* prefs = profile_->GetPrefs(); if (prefs) { pref_change_registrar_.Init(prefs); pref_change_registrar_.Add( @@ -41,9 +42,9 @@ AlternateErrorPageTabObserver::~AlternateErrorPageTabObserver() { // static void AlternateErrorPageTabObserver::RegisterUserPrefs( - PrefServiceSyncable* prefs) { + PrefRegistrySyncable* prefs) { prefs->RegisterBooleanPref(prefs::kAlternateErrorPagesEnabled, true, - PrefServiceSyncable::SYNCABLE_PREF); + PrefRegistrySyncable::SYNCABLE_PREF); } //////////////////////////////////////////////////////////////////////////////// diff --git a/chrome/browser/ui/alternate_error_tab_observer.h b/chrome/browser/ui/alternate_error_tab_observer.h index df4e174..6809268 100644 --- a/chrome/browser/ui/alternate_error_tab_observer.h +++ b/chrome/browser/ui/alternate_error_tab_observer.h @@ -6,12 +6,12 @@ #define CHROME_BROWSER_UI_ALTERNATE_ERROR_TAB_OBSERVER_H_ #include "base/prefs/public/pref_change_registrar.h" -#include "chrome/browser/prefs/pref_service.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" #include "content/public/browser/web_contents_observer.h" #include "content/public/browser/web_contents_user_data.h" +class PrefRegistrySyncable; class Profile; // Per-tab class to implement alternate error page functionality. @@ -22,7 +22,7 @@ class AlternateErrorPageTabObserver public: virtual ~AlternateErrorPageTabObserver(); - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); private: explicit AlternateErrorPageTabObserver(content::WebContents* web_contents); diff --git a/chrome/browser/ui/ash/chrome_launcher_prefs.cc b/chrome/browser/ui/ash/chrome_launcher_prefs.cc index 8de78f9..05e9b3b 100644 --- a/chrome/browser/ui/ash/chrome_launcher_prefs.cc +++ b/chrome/browser/ui/ash/chrome_launcher_prefs.cc @@ -7,7 +7,7 @@ #include "base/basictypes.h" #include "base/memory/scoped_ptr.h" #include "base/values.h" -#include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/common/pref_names.h" namespace { @@ -42,29 +42,29 @@ extern const char kShelfAlignmentLeft[] = "Left"; extern const char kShelfAlignmentRight[] = "Right"; extern const char kShelfAlignmentTop[] = "Top"; -void RegisterChromeLauncherUserPrefs(PrefServiceSyncable* user_prefs) { +void RegisterChromeLauncherUserPrefs(PrefRegistrySyncable* registry) { // TODO: If we want to support multiple profiles this will likely need to be // pushed to local state and we'll need to track profile per item. - user_prefs->RegisterListPref(prefs::kPinnedLauncherApps, + registry->RegisterListPref(prefs::kPinnedLauncherApps, CreateDefaultPinnedAppsList(), - PrefServiceSyncable::SYNCABLE_PREF); - user_prefs->RegisterStringPref(prefs::kShelfAutoHideBehavior, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterStringPref(prefs::kShelfAutoHideBehavior, kShelfAutoHideBehaviorNever, - PrefServiceSyncable::SYNCABLE_PREF); - user_prefs->RegisterStringPref(prefs::kShelfAutoHideBehaviorLocal, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterStringPref(prefs::kShelfAutoHideBehaviorLocal, std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - user_prefs->RegisterStringPref(prefs::kShelfAlignment, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kShelfAlignment, kShelfAlignmentBottom, - PrefServiceSyncable::SYNCABLE_PREF); - user_prefs->RegisterStringPref(prefs::kShelfAlignmentLocal, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterStringPref(prefs::kShelfAlignmentLocal, std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - user_prefs->RegisterBooleanPref(prefs::kShowLogoutButtonInTray, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kShowLogoutButtonInTray, false, - PrefServiceSyncable::UNSYNCABLE_PREF); - user_prefs->RegisterDictionaryPref(prefs::kShelfPreferences, - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref(prefs::kShelfPreferences, + PrefRegistrySyncable::UNSYNCABLE_PREF); } base::DictionaryValue* CreateAppDict(const std::string& app_id) { diff --git a/chrome/browser/ui/ash/chrome_launcher_prefs.h b/chrome/browser/ui/ash/chrome_launcher_prefs.h index 6256400e..5f68a3e 100644 --- a/chrome/browser/ui/ash/chrome_launcher_prefs.h +++ b/chrome/browser/ui/ash/chrome_launcher_prefs.h @@ -7,7 +7,7 @@ #include <string> -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace base { class DictionaryValue; @@ -29,7 +29,7 @@ extern const char kShelfAlignmentLeft[]; extern const char kShelfAlignmentRight[]; extern const char kShelfAlignmentTop[]; -void RegisterChromeLauncherUserPrefs(PrefServiceSyncable* user_prefs); +void RegisterChromeLauncherUserPrefs(PrefRegistrySyncable* registry); base::DictionaryValue* CreateAppDict(const std::string& app_id); diff --git a/chrome/browser/ui/ash/event_rewriter_unittest.cc b/chrome/browser/ui/ash/event_rewriter_unittest.cc index 5c196a1..208545c 100644 --- a/chrome/browser/ui/ash/event_rewriter_unittest.cc +++ b/chrome/browser/ui/ash/event_rewriter_unittest.cc @@ -491,7 +491,7 @@ TEST_F(EventRewriterTest, TestRewriteCommandToControl) { TEST_F(EventRewriterTest, TestRewriteCommandToControlWithControlRemapped) { // Remap Control to Alt. TestingPrefServiceSyncable prefs; - chromeos::Preferences::RegisterUserPrefs(&prefs); + chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); IntegerPrefMember control; control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); control.SetValue(chromeos::input_method::kAltKey); @@ -1120,7 +1120,7 @@ TEST_F(EventRewriterTest, TestRewriteModifiersNoRemapMultipleKeys) { TEST_F(EventRewriterTest, TestRewriteModifiersDisableSome) { // Disable Search and Control keys. TestingPrefServiceSyncable prefs; - chromeos::Preferences::RegisterUserPrefs(&prefs); + chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); IntegerPrefMember search; search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); search.SetValue(chromeos::input_method::kVoidKey); @@ -1258,7 +1258,7 @@ TEST_F(EventRewriterTest, TestRewriteModifiersDisableSome) { TEST_F(EventRewriterTest, TestRewriteModifiersRemapToControl) { // Remap Search to Control. TestingPrefServiceSyncable prefs; - chromeos::Preferences::RegisterUserPrefs(&prefs); + chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); IntegerPrefMember search; search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); search.SetValue(chromeos::input_method::kControlKey); @@ -1378,7 +1378,7 @@ TEST_F(EventRewriterTest, TestRewriteModifiersRemapToControl) { TEST_F(EventRewriterTest, TestRewriteModifiersRemapMany) { // Remap Search to Alt. TestingPrefServiceSyncable prefs; - chromeos::Preferences::RegisterUserPrefs(&prefs); + chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); IntegerPrefMember search; search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); search.SetValue(chromeos::input_method::kAltKey); @@ -1490,7 +1490,7 @@ TEST_F(EventRewriterTest, TestRewriteModifiersRemapMany) { TEST_F(EventRewriterTest, TestRewriteModifiersRemapToCapsLock) { // Remap Search to Caps Lock. TestingPrefServiceSyncable prefs; - chromeos::Preferences::RegisterUserPrefs(&prefs); + chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); IntegerPrefMember search; search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); search.SetValue(chromeos::input_method::kCapsLockKey); @@ -1606,7 +1606,7 @@ TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLock) { // TODO(yusukes): Reenable the test once build servers are upgraded. TestingPrefServiceSyncable prefs; - chromeos::Preferences::RegisterUserPrefs(&prefs); + chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); chromeos::input_method::MockXKeyboard xkeyboard; EventRewriter rewriter; @@ -1633,7 +1633,7 @@ TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLock) { TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLockWithFlag) { // TODO(yusukes): Reenable the test once build servers are upgraded. TestingPrefServiceSyncable prefs; - chromeos::Preferences::RegisterUserPrefs(&prefs); + chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); chromeos::input_method::MockXKeyboard xkeyboard; EventRewriter rewriter; @@ -1667,7 +1667,7 @@ TEST_F(EventRewriterTest, DISABLED_TestRewriteDiamondKey) { // TODO(yusukes): Reenable the test once build servers are upgraded. TestingPrefServiceSyncable prefs; - chromeos::Preferences::RegisterUserPrefs(&prefs); + chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); chromeos::input_method::MockXKeyboard xkeyboard; EventRewriter rewriter; @@ -1712,7 +1712,7 @@ TEST_F(EventRewriterTest, DISABLED_TestRewriteDiamondKeyWithFlag) { switches::kHasChromeOSDiamondKey, ""); TestingPrefServiceSyncable prefs; - chromeos::Preferences::RegisterUserPrefs(&prefs); + chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); chromeos::input_method::MockXKeyboard xkeyboard; EventRewriter rewriter; @@ -1800,7 +1800,7 @@ TEST_F(EventRewriterTest, DISABLED_TestRewriteDiamondKeyWithFlag) { TEST_F(EventRewriterTest, TestRewriteCapsLockToControl) { TestingPrefServiceSyncable prefs; - chromeos::Preferences::RegisterUserPrefs(&prefs); + chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); IntegerPrefMember control; control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); control.SetValue(chromeos::input_method::kControlKey); @@ -1855,7 +1855,7 @@ TEST_F(EventRewriterTest, TestRewriteCapsLockToControl) { TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLockToControlWithFlag) { // TODO(yusukes): Reenable the test once build servers are upgraded. TestingPrefServiceSyncable prefs; - chromeos::Preferences::RegisterUserPrefs(&prefs); + chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); IntegerPrefMember control; control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); control.SetValue(chromeos::input_method::kControlKey); @@ -1901,7 +1901,7 @@ TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLockToControlWithFlag) { TEST_F(EventRewriterTest, TestRewriteCapsLockMod3InUse) { // Remap CapsLock to Control. TestingPrefServiceSyncable prefs; - chromeos::Preferences::RegisterUserPrefs(&prefs); + chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); IntegerPrefMember control; control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs); control.SetValue(chromeos::input_method::kControlKey); @@ -1930,7 +1930,7 @@ TEST_F(EventRewriterTest, TestRewriteCapsLockMod3InUse) { TEST_F(EventRewriterTest, TestRewriteExtendedKeys) { TestingPrefServiceSyncable prefs; - chromeos::Preferences::RegisterUserPrefs(&prefs); + chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); EventRewriter rewriter; rewriter.set_pref_service_for_testing(&prefs); @@ -2073,7 +2073,7 @@ TEST_F(EventRewriterTest, TestRewriteExtendedKeys) { TEST_F(EventRewriterTest, TestRewriteFunctionKeys) { TestingPrefServiceSyncable prefs; - chromeos::Preferences::RegisterUserPrefs(&prefs); + chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); EventRewriter rewriter; rewriter.set_pref_service_for_testing(&prefs); @@ -2292,7 +2292,7 @@ TEST_F(EventRewriterTest, TestRewriteExtendedKeysWithSearchRemapped) { // Remap Search to Control. TestingPrefServiceSyncable prefs; - chromeos::Preferences::RegisterUserPrefs(&prefs); + chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); IntegerPrefMember search; search.Init(prefs::kLanguageRemapSearchKeyTo, &prefs); search.SetValue(chromeos::input_method::kControlKey); @@ -2337,7 +2337,7 @@ TEST_F(EventRewriterTest, TestRewriteExtendedKeysWithSearchRemapped) { TEST_F(EventRewriterTest, TestRewriteKeyEventSentByXSendEvent) { // Remap Control to Alt. TestingPrefServiceSyncable prefs; - chromeos::Preferences::RegisterUserPrefs(&prefs); + chromeos::Preferences::RegisterUserPrefs(&prefs, prefs.registry()); IntegerPrefMember control; control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); control.SetValue(chromeos::input_method::kAltKey); diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app.cc index c2e1ea6..fdbb5d7 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app.cc @@ -19,7 +19,7 @@ #include "chrome/browser/extensions/extension_system.h" #include "chrome/browser/favicon/favicon_tab_helper.h" #include "chrome/browser/prefs/incognito_mode_prefs.h" -#include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" @@ -247,7 +247,7 @@ ChromeLauncherControllerPerApp::~ChromeLauncherControllerPerApp() { if (app_sync_ui_state_) app_sync_ui_state_->RemoveObserver(this); - profile_->GetPrefs()->RemoveObserver(this); + PrefServiceSyncable::FromProfile(profile_)->RemoveObserver(this); } void ChromeLauncherControllerPerApp::Init() { @@ -257,7 +257,7 @@ void ChromeLauncherControllerPerApp::Init() { if (ash::Shell::HasInstance()) { SetShelfAutoHideBehaviorFromPrefs(); SetShelfAlignmentFromPrefs(); - PrefServiceSyncable* prefs = profile_->GetPrefs(); + PrefServiceSyncable* prefs = PrefServiceSyncable::FromProfile(profile_); if (!prefs->FindPreference(prefs::kShelfAlignmentLocal)->HasUserSetting() || !prefs->FindPreference(prefs::kShelfAutoHideBehaviorLocal)-> HasUserSetting()) { @@ -964,10 +964,11 @@ void ChromeLauncherControllerPerApp::OnShelfAlignmentChanged( } void ChromeLauncherControllerPerApp::OnIsSyncingChanged() { - MaybePropagatePrefToLocal(profile_->GetPrefs(), + PrefServiceSyncable* prefs = PrefServiceSyncable::FromProfile(profile_); + MaybePropagatePrefToLocal(prefs, prefs::kShelfAlignmentLocal, prefs::kShelfAlignment); - MaybePropagatePrefToLocal(profile_->GetPrefs(), + MaybePropagatePrefToLocal(prefs, prefs::kShelfAutoHideBehaviorLocal, prefs::kShelfAutoHideBehavior); } diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.cc index 8c6d199..725dd59 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.cc @@ -17,7 +17,7 @@ #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_system.h" #include "chrome/browser/prefs/incognito_mode_prefs.h" -#include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" @@ -303,7 +303,7 @@ ChromeLauncherControllerPerBrowser::~ChromeLauncherControllerPerBrowser() { if (app_sync_ui_state_) app_sync_ui_state_->RemoveObserver(this); - profile_->GetPrefs()->RemoveObserver(this); + PrefServiceSyncable::FromProfile(profile_)->RemoveObserver(this); } void ChromeLauncherControllerPerBrowser::Init() { @@ -313,7 +313,7 @@ void ChromeLauncherControllerPerBrowser::Init() { if (ash::Shell::HasInstance()) { SetShelfAutoHideBehaviorFromPrefs(); SetShelfAlignmentFromPrefs(); - PrefServiceSyncable* prefs = profile_->GetPrefs(); + PrefServiceSyncable* prefs = PrefServiceSyncable::FromProfile(profile_); if (!prefs->FindPreference(prefs::kShelfAlignmentLocal)->HasUserSetting() || !prefs->FindPreference(prefs::kShelfAutoHideBehaviorLocal)-> HasUserSetting()) { @@ -973,10 +973,11 @@ void ChromeLauncherControllerPerBrowser::OnShelfAlignmentChanged( } void ChromeLauncherControllerPerBrowser::OnIsSyncingChanged() { - MaybePropagatePrefToLocal(profile_->GetPrefs(), + PrefServiceSyncable* prefs = PrefServiceSyncable::FromProfile(profile_); + MaybePropagatePrefToLocal(prefs, prefs::kShelfAlignmentLocal, prefs::kShelfAlignment); - MaybePropagatePrefToLocal(profile_->GetPrefs(), + MaybePropagatePrefToLocal(prefs, prefs::kShelfAutoHideBehaviorLocal, prefs::kShelfAutoHideBehavior); } diff --git a/chrome/browser/ui/browser_instant_controller.cc b/chrome/browser/ui/browser_instant_controller.cc index ae5c0b0..40d75cd 100644 --- a/chrome/browser/ui/browser_instant_controller.cc +++ b/chrome/browser/ui/browser_instant_controller.cc @@ -5,6 +5,7 @@ #include "chrome/browser/ui/browser_instant_controller.h" #include "chrome/browser/extensions/extension_service.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/themes/theme_service.h" @@ -73,11 +74,14 @@ bool BrowserInstantController::IsInstantEnabled(Profile* profile) { profile->GetPrefs()->GetBoolean(GetInstantPrefName(profile)); } -void BrowserInstantController::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterBooleanPref(prefs::kInstantConfirmDialogShown, false, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kInstantEnabled, false, - PrefServiceSyncable::SYNCABLE_PREF); +void BrowserInstantController::RegisterUserPrefs( + PrefService* prefs, + PrefRegistrySyncable* registry) { + // TODO(joi): Get rid of the need for PrefService param above. + registry->RegisterBooleanPref(prefs::kInstantConfirmDialogShown, false, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kInstantEnabled, false, + PrefRegistrySyncable::SYNCABLE_PREF); search::InstantExtendedDefault instant_extended_default_setting = search::GetInstantExtendedDefaultSetting(); @@ -94,9 +98,9 @@ void BrowserInstantController::RegisterUserPrefs(PrefServiceSyncable* prefs) { break; } - prefs->RegisterBooleanPref(prefs::kInstantExtendedEnabled, - instant_extended_value, - PrefServiceSyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kInstantExtendedEnabled, + instant_extended_value, + PrefRegistrySyncable::SYNCABLE_PREF); } bool BrowserInstantController::MaybeSwapInInstantNTPContents( diff --git a/chrome/browser/ui/browser_instant_controller.h b/chrome/browser/ui/browser_instant_controller.h index 1063988..8a96910 100644 --- a/chrome/browser/ui/browser_instant_controller.h +++ b/chrome/browser/ui/browser_instant_controller.h @@ -17,7 +17,8 @@ class Browser; struct InstantSuggestion; -class PrefServiceSyncable; +class PrefRegistrySyncable; +class PrefService; class Profile; class ThemeService; @@ -41,7 +42,8 @@ class BrowserInstantController : public content::NotificationObserver, static bool IsInstantEnabled(Profile* profile); // Registers Instant related preferences. - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefService* prefs, + PrefRegistrySyncable* registry); // If |url| is the new tab page URL, set |target_contents| to the preloaded // NTP contents from InstantController. If |source_contents| is not NULL, we diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc index f89dc3a..d41dd7c 100644 --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc @@ -6,6 +6,7 @@ #include "chrome/browser/first_run/first_run.h" #include "chrome/browser/prefs/pref_registry_simple.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/pref_names.h" @@ -19,19 +20,19 @@ void RegisterBrowserPrefs(PrefRegistrySimple* registry) { first_run::FIRST_RUN_BUBBLE_DONT_SHOW); } -void RegisterBrowserUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterBooleanPref(prefs::kHomePageChanged, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, - true, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kShowHomeButton, - false, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kExtensionsSideloadWipeoutBubbleShown, - 0, - PrefServiceSyncable::SYNCABLE_PREF); +void RegisterBrowserUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kHomePageChanged, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, + true, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kShowHomeButton, + false, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kExtensionsSideloadWipeoutBubbleShown, + 0, + PrefRegistrySyncable::SYNCABLE_PREF); #if defined(OS_MACOSX) // This really belongs in platform code, but there's no good place to // initialize it between the time when the AppController is created @@ -41,120 +42,120 @@ void RegisterBrowserUserPrefs(PrefServiceSyncable* prefs) { // late: we need the pref to be already initialized. Doing it here also saves // us from having to hard-code pref registration in the several unit tests // that use this preference. - prefs->RegisterBooleanPref(prefs::kShowUpdatePromotionInfoBar, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kShowUpdatePromotionInfoBar, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); #endif - prefs->RegisterBooleanPref(prefs::kDeleteBrowsingHistory, - true, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kDeleteDownloadHistory, - true, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kDeleteCache, - true, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kDeleteCookies, - true, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kDeletePasswords, - false, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kDeleteFormData, - false, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kDeleteHostedAppsData, - false, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kDeleteTimePeriod, - 0, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterInt64Pref(prefs::kLastClearBrowsingDataTime, - 0, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kCheckDefaultBrowser, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kDeleteBrowsingHistory, + true, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kDeleteDownloadHistory, + true, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kDeleteCache, + true, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kDeleteCookies, + true, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kDeletePasswords, + false, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kDeleteFormData, + false, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kDeleteHostedAppsData, + false, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kDeleteTimePeriod, + 0, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterInt64Pref(prefs::kLastClearBrowsingDataTime, + 0, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kCheckDefaultBrowser, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); #if defined(OS_WIN) // As with Mac-spacific code above, it should be in a platform-specific // section somewhere, but there is no good place for it. - prefs->RegisterBooleanPref(prefs::kSuppressSwitchToMetroModeOnSetDefault, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kSuppressSwitchToMetroModeOnSetDefault, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); #endif - prefs->RegisterBooleanPref(prefs::kShowOmniboxSearchHint, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kEnableTranslate, - true, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kCloudPrintEmail, - std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kCloudPrintSubmitEnabled, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kDevToolsDisabled, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kDevToolsHSplitLocation, - -1, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref(prefs::kDevToolsVSplitLocation, - -1, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDictionaryPref(prefs::kBrowserWindowPlacement, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDictionaryPref(prefs::kPreferencesWindowPlacement, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kImportBookmarks, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kImportHistory, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kImportHomepage, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kImportSearchEngine, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kImportSavedPasswords, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kEnableDoNotTrack, - false, - PrefServiceSyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kShowOmniboxSearchHint, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kEnableTranslate, + true, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterStringPref(prefs::kCloudPrintEmail, + std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kCloudPrintSubmitEnabled, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kDevToolsDisabled, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kDevToolsHSplitLocation, + -1, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kDevToolsVSplitLocation, + -1, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref(prefs::kPreferencesWindowPlacement, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kImportBookmarks, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kImportHistory, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kImportHomepage, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kImportSearchEngine, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kImportSavedPasswords, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kEnableDoNotTrack, + false, + PrefRegistrySyncable::SYNCABLE_PREF); // Dictionaries to keep track of default tasks in the file browser. - prefs->RegisterDictionaryPref(prefs::kDefaultTasksByMimeType, - PrefServiceSyncable::SYNCABLE_PREF); - prefs->RegisterDictionaryPref(prefs::kDefaultTasksBySuffix, - PrefServiceSyncable::SYNCABLE_PREF); + registry->RegisterDictionaryPref(prefs::kDefaultTasksByMimeType, + PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterDictionaryPref(prefs::kDefaultTasksBySuffix, + PrefRegistrySyncable::SYNCABLE_PREF); // We need to register the type of these preferences in order to query // them even though they're only typically controlled via policy. - prefs->RegisterBooleanPref(prefs::kPluginsAllowOutdated, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kPluginsAlwaysAuthorize, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, - true, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kPluginsAllowOutdated, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kPluginsAlwaysAuthorize, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, + true, + PrefRegistrySyncable::UNSYNCABLE_PREF); } void RegisterAppPrefs(const std::string& app_name, Profile* profile) { @@ -165,13 +166,13 @@ void RegisterAppPrefs(const std::string& app_name, Profile* profile) { std::string window_pref(prefs::kBrowserWindowPlacement); window_pref.append("_"); window_pref.append(app_name); - PrefServiceSyncable* prefs = profile->GetPrefs(); + PrefService* prefs = profile->GetPrefs(); if (!prefs->FindPreference(window_pref.c_str())) { - // TODO(joi): Switch to official way of registering local prefs - // for this class, i.e. in a function called from - // browser_prefs::RegisterUserPrefs. - prefs->RegisterDictionaryPref(window_pref.c_str(), - PrefServiceSyncable::UNSYNCABLE_PREF); + // TODO(joi): Do all registration up front. + scoped_refptr<PrefRegistrySyncable> registry( + static_cast<PrefRegistrySyncable*>(prefs->DeprecatedGetPrefRegistry())); + registry->RegisterDictionaryPref(window_pref.c_str(), + PrefRegistrySyncable::UNSYNCABLE_PREF); } } diff --git a/chrome/browser/ui/browser_ui_prefs.h b/chrome/browser/ui/browser_ui_prefs.h index ebadc10..135a76c 100644 --- a/chrome/browser/ui/browser_ui_prefs.h +++ b/chrome/browser/ui/browser_ui_prefs.h @@ -8,13 +8,13 @@ #include <string> class PrefRegistrySimple; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; namespace chrome { void RegisterBrowserPrefs(PrefRegistrySimple* registry); -void RegisterBrowserUserPrefs(PrefServiceSyncable* prefs); +void RegisterBrowserUserPrefs(PrefRegistrySyncable* registry); // Create a preference dictionary for the provided application name, in the // given user profile. This is done only once per application name / per diff --git a/chrome/browser/ui/cocoa/extensions/browser_actions_controller.h b/chrome/browser/ui/cocoa/extensions/browser_actions_controller.h index d33dbec..7465d2d 100644 --- a/chrome/browser/ui/cocoa/extensions/browser_actions_controller.h +++ b/chrome/browser/ui/cocoa/extensions/browser_actions_controller.h @@ -17,7 +17,7 @@ class Browser; class ExtensionToolbarModel; class ExtensionServiceObserverBridge; @class MenuButton; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; namespace extensions { @@ -106,7 +106,7 @@ extern NSString* const kBrowserActionVisibilityChangedNotification; - (BOOL)chevronIsHidden; // Registers the user preferences used by this class. -+ (void)registerUserPrefs:(PrefServiceSyncable*)prefs; ++ (void)registerUserPrefs:(PrefRegistrySyncable*)prefs; @end // @interface BrowserActionsController diff --git a/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm b/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm index 6b99c20..96f5bbc 100644 --- a/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm +++ b/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm @@ -13,6 +13,7 @@ #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_system.h" #include "chrome/browser/extensions/extension_toolbar_model.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/sessions/session_tab_helper.h" @@ -27,9 +28,9 @@ #include "chrome/common/chrome_notification_types.h" #include "chrome/common/extensions/api/extension_action/action_info.h" #include "chrome/common/pref_names.h" +#include "content/public/browser/notification_details.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" -#include "content/public/browser/notification_details.h" #include "content/public/browser/notification_source.h" #include "grit/theme_resources.h" #import "third_party/GTM/AppKit/GTMNSAnimation+Duration.h" @@ -263,9 +264,12 @@ class ExtensionServiceObserverBridge : public content::NotificationObserver, browser_ = browser; profile_ = browser->profile(); + // TODO(joi): Do all registrations up front. if (!profile_->GetPrefs()->FindPreference( prefs::kBrowserActionContainerWidth)) - [BrowserActionsController registerUserPrefs:profile_->GetPrefs()]; + [BrowserActionsController registerUserPrefs:( + (PrefRegistrySyncable*) + profile_->GetPrefs()->DeprecatedGetPrefRegistry())]; observer_.reset(new ExtensionServiceObserverBridge(self, browser_)); ExtensionService* extensionService = @@ -440,10 +444,10 @@ class ExtensionServiceObserverBridge : public content::NotificationObserver, return YES; } -+ (void)registerUserPrefs:(PrefServiceSyncable*)prefs { - prefs->RegisterDoublePref(prefs::kBrowserActionContainerWidth, - 0, - PrefServiceSyncable::UNSYNCABLE_PREF); ++ (void)registerUserPrefs:(PrefRegistrySyncable*)registry { + registry->RegisterDoublePref(prefs::kBrowserActionContainerWidth, + 0, + PrefRegistrySyncable::UNSYNCABLE_PREF); } #pragma mark - diff --git a/chrome/browser/ui/cocoa/window_size_autosaver_unittest.mm b/chrome/browser/ui/cocoa/window_size_autosaver_unittest.mm index bfb6481..3ff7a7f 100644 --- a/chrome/browser/ui/cocoa/window_size_autosaver_unittest.mm +++ b/chrome/browser/ui/cocoa/window_size_autosaver_unittest.mm @@ -7,6 +7,7 @@ #import "chrome/browser/ui/cocoa/window_size_autosaver.h" #include "base/memory/scoped_nsobject.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/ui/cocoa/cocoa_profile_test.h" @@ -25,9 +26,12 @@ class WindowSizeAutosaverTest : public CocoaProfileTest { NSResizableWindowMask backing:NSBackingStoreBuffered defer:NO]; - profile()->GetPrefs()->RegisterDictionaryPref( - path_, - PrefServiceSyncable::UNSYNCABLE_PREF); + // TODO(joi): Do all registration up front. + static_cast<PrefRegistrySyncable*>( + profile()->GetPrefs()->DeprecatedGetPrefRegistry())-> + RegisterDictionaryPref( + path_, + PrefRegistrySyncable::UNSYNCABLE_PREF); } virtual void TearDown() { diff --git a/chrome/browser/ui/gesture_prefs_observer_factory_aura.cc b/chrome/browser/ui/gesture_prefs_observer_factory_aura.cc index 7b30840..93c829b 100644 --- a/chrome/browser/ui/gesture_prefs_observer_factory_aura.cc +++ b/chrome/browser/ui/gesture_prefs_observer_factory_aura.cc @@ -8,6 +8,7 @@ #include "base/bind_helpers.h" #include "base/compiler_specific.h" #include "base/prefs/public/pref_change_registrar.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/profiles/profile_dependency_manager.h" @@ -269,150 +270,151 @@ ProfileKeyedService* GesturePrefsObserverFactoryAura::BuildServiceInstanceFor( } void GesturePrefsObserverFactoryAura::RegisterOverscrollPrefs( - PrefServiceSyncable* prefs) { + PrefRegistrySyncable* registry) { const OverscrollPref* overscroll_prefs = GesturePrefsObserver::GetOverscrollPrefs(); for (int i = 0; overscroll_prefs[i].pref_name; ++i) { - prefs->RegisterDoublePref( + registry->RegisterDoublePref( overscroll_prefs[i].pref_name, content::GetOverscrollConfig(overscroll_prefs[i].config), - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); } } void GesturePrefsObserverFactoryAura::RegisterFlingCurveParameters( - PrefServiceSyncable* prefs) { + PrefRegistrySyncable* registry) { content::RendererPreferences def_prefs; for (size_t i = 0; i < arraysize(kFlingTouchpadPrefs); i++) - prefs->RegisterDoublePref(kFlingTouchpadPrefs[i], - def_prefs.touchpad_fling_profile[i], - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref(kFlingTouchpadPrefs[i], + def_prefs.touchpad_fling_profile[i], + PrefRegistrySyncable::UNSYNCABLE_PREF); for (size_t i = 0; i < arraysize(kFlingTouchscreenPrefs); i++) - prefs->RegisterDoublePref(kFlingTouchscreenPrefs[i], - def_prefs.touchscreen_fling_profile[i], - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref(kFlingTouchscreenPrefs[i], + def_prefs.touchscreen_fling_profile[i], + PrefRegistrySyncable::UNSYNCABLE_PREF); } -void GesturePrefsObserverFactoryAura::RegisterUserPrefs( - PrefServiceSyncable* prefs) { - prefs->RegisterDoublePref( +void GesturePrefsObserverFactoryAura::DeprecatedRegisterUserPrefs( + PrefService* prefs, + PrefRegistrySyncable* registry) { + registry->RegisterDoublePref( prefs::kFlingAccelerationCurveCoefficient0, GestureConfiguration::fling_acceleration_curve_coefficients(0), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kFlingAccelerationCurveCoefficient1, GestureConfiguration::fling_acceleration_curve_coefficients(1), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kFlingAccelerationCurveCoefficient2, GestureConfiguration::fling_acceleration_curve_coefficients(2), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kFlingAccelerationCurveCoefficient3, GestureConfiguration::fling_acceleration_curve_coefficients(3), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref( prefs::kFlingMaxCancelToDownTimeInMs, GestureConfiguration::fling_max_cancel_to_down_time_in_ms(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref( prefs::kFlingMaxTapGapTimeInMs, GestureConfiguration::fling_max_tap_gap_time_in_ms(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kFlingVelocityCap, GestureConfiguration::fling_velocity_cap(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kLongPressTimeInSeconds, GestureConfiguration::long_press_time_in_seconds(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kSemiLongPressTimeInSeconds, GestureConfiguration::semi_long_press_time_in_seconds(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kMaxDistanceForTwoFingerTapInPixels, GestureConfiguration::max_distance_for_two_finger_tap_in_pixels(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kMaxSecondsBetweenDoubleClick, GestureConfiguration::max_seconds_between_double_click(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kMaxSeparationForGestureTouchesInPixels, GestureConfiguration::max_separation_for_gesture_touches_in_pixels(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kMaxSwipeDeviationRatio, GestureConfiguration::max_swipe_deviation_ratio(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kMaxTouchDownDurationInSecondsForClick, GestureConfiguration::max_touch_down_duration_in_seconds_for_click(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kMaxTouchMoveInPixelsForClick, GestureConfiguration::max_touch_move_in_pixels_for_click(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kMaxDistanceBetweenTapsForDoubleTap, GestureConfiguration::max_distance_between_taps_for_double_tap(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kMinDistanceForPinchScrollInPixels, GestureConfiguration::min_distance_for_pinch_scroll_in_pixels(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kMinFlickSpeedSquared, GestureConfiguration::min_flick_speed_squared(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kMinPinchUpdateDistanceInPixels, GestureConfiguration::min_pinch_update_distance_in_pixels(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kMinRailBreakVelocity, GestureConfiguration::min_rail_break_velocity(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kMinScrollDeltaSquared, GestureConfiguration::min_scroll_delta_squared(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kMinSwipeSpeed, GestureConfiguration::min_swipe_speed(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kMinTouchDownDurationInSecondsForClick, GestureConfiguration::min_touch_down_duration_in_seconds_for_click(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterIntegerPref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref( prefs::kPointsBufferedForVelocity, GestureConfiguration::points_buffered_for_velocity(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kRailBreakProportion, GestureConfiguration::rail_break_proportion(), - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDoublePref( + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref( prefs::kRailStartProportion, GestureConfiguration::rail_start_proportion(), - PrefServiceSyncable::UNSYNCABLE_PREF); + PrefRegistrySyncable::UNSYNCABLE_PREF); // TODO(rjkroege): Remove this in M29. http://crbug.com/160243. const char kTouchScreenFlingAccelerationAdjustment[] = "gesture.touchscreen_fling_acceleration_adjustment"; - prefs->RegisterDoublePref(kTouchScreenFlingAccelerationAdjustment, - 0.0, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterDoublePref(kTouchScreenFlingAccelerationAdjustment, + 0.0, + PrefRegistrySyncable::UNSYNCABLE_PREF); prefs->ClearPref(kTouchScreenFlingAccelerationAdjustment); - RegisterOverscrollPrefs(prefs); - RegisterFlingCurveParameters(prefs); + RegisterOverscrollPrefs(registry); + RegisterFlingCurveParameters(registry); } bool GesturePrefsObserverFactoryAura::ServiceIsCreatedWithProfile() const { diff --git a/chrome/browser/ui/gesture_prefs_observer_factory_aura.h b/chrome/browser/ui/gesture_prefs_observer_factory_aura.h index 1e069de..46364ec 100644 --- a/chrome/browser/ui/gesture_prefs_observer_factory_aura.h +++ b/chrome/browser/ui/gesture_prefs_observer_factory_aura.h @@ -9,7 +9,8 @@ #include "base/memory/singleton.h" #include "chrome/browser/profiles/profile_keyed_service_factory.h" -class PrefServiceSyncable; +class PrefRegistrySyncable; +class PrefService; class Profile; // Create an observer per Profile that listens for gesture preferences updates. @@ -23,13 +24,15 @@ class GesturePrefsObserverFactoryAura : public ProfileKeyedServiceFactory { GesturePrefsObserverFactoryAura(); virtual ~GesturePrefsObserverFactoryAura(); - void RegisterOverscrollPrefs(PrefServiceSyncable* prefs); - void RegisterFlingCurveParameters(PrefServiceSyncable* prefs); + void RegisterOverscrollPrefs(PrefRegistrySyncable* prefs); + void RegisterFlingCurveParameters(PrefRegistrySyncable* prefs); // ProfileKeyedServiceFactory: virtual ProfileKeyedService* BuildServiceInstanceFor( Profile* profile) const OVERRIDE; - virtual void RegisterUserPrefs(PrefServiceSyncable* prefs) OVERRIDE; + virtual void DeprecatedRegisterUserPrefs( + PrefService* prefs, + PrefRegistrySyncable* registry) OVERRIDE; virtual bool ServiceIsCreatedWithProfile() const OVERRIDE; virtual bool ServiceRedirectedInIncognito() const OVERRIDE; virtual bool ServiceIsNULLWhileTesting() const OVERRIDE; diff --git a/chrome/browser/ui/gtk/browser_window_gtk.cc b/chrome/browser/ui/gtk/browser_window_gtk.cc index 93300ac..cd11e1e 100644 --- a/chrome/browser/ui/gtk/browser_window_gtk.cc +++ b/chrome/browser/ui/gtk/browser_window_gtk.cc @@ -29,6 +29,7 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/download/download_item_model.h" #include "chrome/browser/extensions/tab_helper.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" @@ -1485,7 +1486,9 @@ GtkWidget* BrowserWindowGtk::titlebar_widget() const { } // static -void BrowserWindowGtk::RegisterUserPrefs(PrefServiceSyncable* prefs) { +void BrowserWindowGtk::RegisterUserPrefs(PrefService* prefs, + PrefRegistrySyncable* registry) { + // TODO(joi): Remove PrefService parameter. bool custom_frame_default = false; // Avoid checking the window manager if we're not connected to an X server (as // is the case in Valgrind tests). @@ -1493,9 +1496,9 @@ void BrowserWindowGtk::RegisterUserPrefs(PrefServiceSyncable* prefs) { !prefs->HasPrefPath(prefs::kUseCustomChromeFrame)) { custom_frame_default = GetCustomFramePrefDefault(); } - prefs->RegisterBooleanPref(prefs::kUseCustomChromeFrame, - custom_frame_default, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kUseCustomChromeFrame, + custom_frame_default, + PrefRegistrySyncable::UNSYNCABLE_PREF); } WebContents* BrowserWindowGtk::GetDisplayedTab() { diff --git a/chrome/browser/ui/gtk/browser_window_gtk.h b/chrome/browser/ui/gtk/browser_window_gtk.h index 5c2204b..4d9e0c3 100644 --- a/chrome/browser/ui/gtk/browser_window_gtk.h +++ b/chrome/browser/ui/gtk/browser_window_gtk.h @@ -40,7 +40,8 @@ class GlobalMenuBar; class InfoBarContainerGtk; class InstantPreviewControllerGtk; class LocationBar; -class PrefServiceSyncable; +class PrefRegistrySyncable; +class PrefService; class StatusBubbleGtk; class TabContentsContainerGtk; class TabStripGtk; @@ -247,7 +248,8 @@ class BrowserWindowGtk // Returns the tab we're currently displaying in the tab contents container. content::WebContents* GetDisplayedTab(); - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefService* prefs, + PrefRegistrySyncable* registry); // Tells GTK that the toolbar area is invalidated and needs redrawing. We // have this method as a hack because GTK doesn't queue the toolbar area for diff --git a/chrome/browser/ui/network_profile_bubble.cc b/chrome/browser/ui/network_profile_bubble.cc index bc6ea8b..88e2955 100644 --- a/chrome/browser/ui/network_profile_bubble.cc +++ b/chrome/browser/ui/network_profile_bubble.cc @@ -18,6 +18,7 @@ #include "base/metrics/histogram.h" #include "base/time.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/ui/browser_finder.h" @@ -156,11 +157,13 @@ void NetworkProfileBubble::SetNotificationShown(bool shown) { } // static -void NetworkProfileBubble::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterIntegerPref(prefs::kNetworkProfileWarningsLeft, kMaxWarnings, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterInt64Pref(prefs::kNetworkProfileLastWarningTime, 0, - PrefServiceSyncable::UNSYNCABLE_PREF); +void NetworkProfileBubble::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterIntegerPref(prefs::kNetworkProfileWarningsLeft, + kMaxWarnings, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterInt64Pref(prefs::kNetworkProfileLastWarningTime, + 0, + PrefRegistrySyncable::UNSYNCABLE_PREF); } // static diff --git a/chrome/browser/ui/network_profile_bubble.h b/chrome/browser/ui/network_profile_bubble.h index 74eb2fa..18f32799 100644 --- a/chrome/browser/ui/network_profile_bubble.h +++ b/chrome/browser/ui/network_profile_bubble.h @@ -8,7 +8,7 @@ #include "base/basictypes.h" class Browser; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; namespace base { @@ -58,7 +58,7 @@ class NetworkProfileBubble { static void SetNotificationShown(bool shown); // Register the pref that controls whether the bubble should be shown anymore. - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Helper function wrapping the UMA_HISTOGRAM_ENUMERATION macro. static void RecordUmaEvent(MetricNetworkedProfileCheck event); diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/prefs/prefs_tab_helper.cc index 4c46e8e..5271675 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, diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.h b/chrome/browser/ui/prefs/prefs_tab_helper.h index f2a3d3e..71c42c5 100644 --- a/chrome/browser/ui/prefs/prefs_tab_helper.h +++ b/chrome/browser/ui/prefs/prefs_tab_helper.h @@ -12,7 +12,8 @@ #include "content/public/browser/web_contents_user_data.h" class OverlayUserPrefStore; -class PrefServiceSyncable; +class PrefRegistrySyncable; +class PrefService; class Profile; namespace content { @@ -26,7 +27,9 @@ class PrefsTabHelper : public content::NotificationObserver, virtual ~PrefsTabHelper(); static void InitIncognitoUserPrefStore(OverlayUserPrefStore* pref_store); - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); + static void MigrateUserPrefs(PrefService* prefs, + PrefRegistrySyncable* registry); protected: // Update the RenderView's WebPreferences. Exposed as protected for testing. diff --git a/chrome/browser/ui/startup/autolaunch_prompt.cc b/chrome/browser/ui/startup/autolaunch_prompt.cc index 8e97363..ed05494 100644 --- a/chrome/browser/ui/startup/autolaunch_prompt.cc +++ b/chrome/browser/ui/startup/autolaunch_prompt.cc @@ -4,6 +4,8 @@ #include "chrome/browser/ui/startup/autolaunch_prompt.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" + namespace chrome { bool ShowAutolaunchPrompt(Browser* browser) { @@ -11,7 +13,7 @@ bool ShowAutolaunchPrompt(Browser* browser) { return false; } -void RegisterAutolaunchUserPrefs(PrefServiceSyncable* prefs) { +void RegisterAutolaunchUserPrefs(PrefRegistrySyncable* registry) { // Autolaunch is only implemented on Windows right now. } diff --git a/chrome/browser/ui/startup/autolaunch_prompt.h b/chrome/browser/ui/startup/autolaunch_prompt.h index ed0ba3d..a4c70e5 100644 --- a/chrome/browser/ui/startup/autolaunch_prompt.h +++ b/chrome/browser/ui/startup/autolaunch_prompt.h @@ -5,7 +5,7 @@ #ifndef CHROME_BROWSER_UI_STARTUP_AUTOLAUNCH_PROMPT_H_ #define CHROME_BROWSER_UI_STARTUP_AUTOLAUNCH_PROMPT_H_ -class PrefServiceSyncable; +class PrefRegistrySyncable; class Browser; namespace chrome { @@ -15,7 +15,7 @@ namespace chrome { bool ShowAutolaunchPrompt(Browser* browser); // Registers auto-launch specific prefs. -void RegisterAutolaunchUserPrefs(PrefServiceSyncable* prefs); +void RegisterAutolaunchUserPrefs(PrefRegistrySyncable* registry); } // namespace chrome diff --git a/chrome/browser/ui/startup/autolaunch_prompt_win.cc b/chrome/browser/ui/startup/autolaunch_prompt_win.cc index 73afb60..5a34dbe 100644 --- a/chrome/browser/ui/startup/autolaunch_prompt_win.cc +++ b/chrome/browser/ui/startup/autolaunch_prompt_win.cc @@ -11,6 +11,7 @@ #include "chrome/browser/api/infobars/infobar_service.h" #include "chrome/browser/auto_launch_trial.h" #include "chrome/browser/first_run/first_run.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/ui/browser.h" @@ -197,9 +198,9 @@ bool ShowAutolaunchPrompt(Browser* browser) { return true; } -void RegisterAutolaunchUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterIntegerPref( - prefs::kShownAutoLaunchInfobar, 0, PrefServiceSyncable::UNSYNCABLE_PREF); +void RegisterAutolaunchUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterIntegerPref( + prefs::kShownAutoLaunchInfobar, 0, PrefRegistrySyncable::UNSYNCABLE_PREF); } } // namespace chrome diff --git a/chrome/browser/ui/sync/one_click_signin_helper_unittest.cc b/chrome/browser/ui/sync/one_click_signin_helper_unittest.cc index 2c0f777..bfbda7d 100644 --- a/chrome/browser/ui/sync/one_click_signin_helper_unittest.cc +++ b/chrome/browser/ui/sync/one_click_signin_helper_unittest.cc @@ -7,7 +7,6 @@ #include "chrome/browser/content_settings/cookie_settings.h" #include "chrome/browser/custom_handlers/protocol_handler_registry.h" #include "chrome/browser/prefs/pref_service.h" -#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_info_cache.h" diff --git a/chrome/browser/ui/tabs/pinned_tab_codec.cc b/chrome/browser/ui/tabs/pinned_tab_codec.cc index 83e2bd4..49ea142 100644 --- a/chrome/browser/ui/tabs/pinned_tab_codec.cc +++ b/chrome/browser/ui/tabs/pinned_tab_codec.cc @@ -6,6 +6,7 @@ #include "base/values.h" #include "chrome/browser/extensions/tab_helper.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" @@ -98,9 +99,9 @@ static bool DecodeTab(const DictionaryValue& value, StartupTab* tab) { } // static -void PinnedTabCodec::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterListPref(prefs::kPinnedTabs, - PrefServiceSyncable::UNSYNCABLE_PREF); +void PinnedTabCodec::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterListPref(prefs::kPinnedTabs, + PrefRegistrySyncable::UNSYNCABLE_PREF); } // static diff --git a/chrome/browser/ui/tabs/pinned_tab_codec.h b/chrome/browser/ui/tabs/pinned_tab_codec.h index 0b87e76..c86ea42 100644 --- a/chrome/browser/ui/tabs/pinned_tab_codec.h +++ b/chrome/browser/ui/tabs/pinned_tab_codec.h @@ -14,7 +14,7 @@ namespace base { class Value; } -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; // PinnedTabCodec is used to read and write the set of pinned tabs to @@ -27,7 +27,7 @@ class Profile; class PinnedTabCodec { public: // Registers the preference used by this class. - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Resets the preferences state. static void WritePinnedTabs(Profile* profile); diff --git a/chrome/browser/ui/views/browser_actions_container.cc b/chrome/browser/ui/views/browser_actions_container.cc index f9cd7e5..e440ecb 100644 --- a/chrome/browser/ui/views/browser_actions_container.cc +++ b/chrome/browser/ui/views/browser_actions_container.cc @@ -9,6 +9,7 @@ #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_system.h" #include "chrome/browser/extensions/tab_helper.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/sessions/session_tab_helper.h" @@ -46,10 +47,10 @@ const int kItemSpacing = ToolbarView::kStandardSpacing; // Horizontal spacing before the chevron (if visible). const int kChevronSpacing = kItemSpacing - 2; -void RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterIntegerPref(prefs::kBrowserActionContainerWidth, - 0, - PrefServiceSyncable::UNSYNCABLE_PREF); +void RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterIntegerPref(prefs::kBrowserActionContainerWidth, + 0, + PrefRegistrySyncable::UNSYNCABLE_PREF); } } // namespace @@ -123,7 +124,8 @@ void BrowserActionsContainer::Init() { // browser_prefs::RegisterUserPrefs. if (!profile_->GetPrefs()->FindPreference( prefs::kBrowserActionContainerWidth)) - RegisterUserPrefs(profile_->GetPrefs()); + RegisterUserPrefs(static_cast<PrefRegistrySyncable*>( + profile_->GetPrefs()->DeprecatedGetPrefRegistry())); // We wait to set the container width until now so that the chevron images // will be loaded. The width calculation needs to know the chevron size. diff --git a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc index b15ec70..5416b3e 100644 --- a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc +++ b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc @@ -32,6 +32,7 @@ #include "chrome/browser/extensions/updater/extension_updater.h" #include "chrome/browser/google/google_util.h" #include "chrome/browser/managed_mode/managed_mode.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/tab_contents/background_contents.h" @@ -110,10 +111,11 @@ ExtensionSettingsHandler::ExtensionSettingsHandler(ExtensionService* service, } // static -void ExtensionSettingsHandler::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterBooleanPref(prefs::kExtensionsUIDeveloperMode, - false, - PrefServiceSyncable::SYNCABLE_PREF); +void ExtensionSettingsHandler::RegisterUserPrefs( + PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kExtensionsUIDeveloperMode, + false, + PrefRegistrySyncable::SYNCABLE_PREF); } DictionaryValue* ExtensionSettingsHandler::CreateExtensionDetailValue( diff --git a/chrome/browser/ui/webui/extensions/extension_settings_handler.h b/chrome/browser/ui/webui/extensions/extension_settings_handler.h index 4ba5a3d..fd1812d 100644 --- a/chrome/browser/ui/webui/extensions/extension_settings_handler.h +++ b/chrome/browser/ui/webui/extensions/extension_settings_handler.h @@ -28,7 +28,7 @@ #include "ui/shell_dialogs/select_file_dialog.h" class ExtensionService; -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace base { class DictionaryValue; @@ -75,7 +75,7 @@ class ExtensionSettingsHandler ExtensionSettingsHandler(); virtual ~ExtensionSettingsHandler(); - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Extension Detail JSON Struct for page. |pages| is injected for unit // testing. diff --git a/chrome/browser/ui/webui/instant_ui.cc b/chrome/browser/ui/webui/instant_ui.cc index 14df056..05e6c8b 100644 --- a/chrome/browser/ui/webui/instant_ui.cc +++ b/chrome/browser/ui/webui/instant_ui.cc @@ -8,6 +8,7 @@ #include "base/stringprintf.h" #include "base/time.h" #include "chrome/browser/instant/instant_controller.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/ui/browser.h" @@ -149,7 +150,7 @@ InstantUI::InstantUI(content::WebUI* web_ui) : WebUIController(web_ui) { } // static -void InstantUI::RegisterUserPrefs(PrefServiceSyncable* user_prefs) { - user_prefs->RegisterStringPref(prefs::kInstantUIZeroSuggestUrlPrefix, "", - PrefServiceSyncable::UNSYNCABLE_PREF); +void InstantUI::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterStringPref(prefs::kInstantUIZeroSuggestUrlPrefix, "", + PrefRegistrySyncable::UNSYNCABLE_PREF); } diff --git a/chrome/browser/ui/webui/instant_ui.h b/chrome/browser/ui/webui/instant_ui.h index 82420f0..f050d13 100644 --- a/chrome/browser/ui/webui/instant_ui.h +++ b/chrome/browser/ui/webui/instant_ui.h @@ -7,7 +7,7 @@ #include "content/public/browser/web_ui_controller.h" -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace content { class BrowserContext; @@ -20,7 +20,7 @@ class InstantUI : public content::WebUIController { // handlers. explicit InstantUI(content::WebUI* web_ui); - static void RegisterUserPrefs(PrefServiceSyncable* user_prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); private: DISALLOW_COPY_AND_ASSIGN(InstantUI); diff --git a/chrome/browser/ui/webui/ntp/android/promo_handler.cc b/chrome/browser/ui/webui/ntp/android/promo_handler.cc index 7d5ffa7..535e4f5 100644 --- a/chrome/browser/ui/webui/ntp/android/promo_handler.cc +++ b/chrome/browser/ui/webui/ntp/android/promo_handler.cc @@ -11,6 +11,7 @@ #include "base/strings/string_number_conversions.h" #include "base/utf_string_conversions.h" #include "chrome/browser/android/intent_helper.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/profiles/profile_manager.h" @@ -122,10 +123,10 @@ void PromoHandler::RegisterMessages() { } // static -void PromoHandler::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterBooleanPref(prefs::kNtpPromoDesktopSessionFound, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); +void PromoHandler::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kNtpPromoDesktopSessionFound, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); } void PromoHandler::Observe(int type, diff --git a/chrome/browser/ui/webui/ntp/android/promo_handler.h b/chrome/browser/ui/webui/ntp/android/promo_handler.h index 9d44150..20a3ce4 100644 --- a/chrome/browser/ui/webui/ntp/android/promo_handler.h +++ b/chrome/browser/ui/webui/ntp/android/promo_handler.h @@ -9,7 +9,7 @@ #include "content/public/browser/notification_registrar.h" #include "content/public/browser/web_ui_message_handler.h" -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace base { class DictionaryValue; @@ -27,7 +27,7 @@ class PromoHandler : public content::WebUIMessageHandler, virtual void RegisterMessages() OVERRIDE; // Register preferences. - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); private: // NotificationObserver override and implementation. diff --git a/chrome/browser/ui/webui/ntp/app_launcher_handler.cc b/chrome/browser/ui/webui/ntp/app_launcher_handler.cc index c847acb..a2fd36c 100644 --- a/chrome/browser/ui/webui/ntp/app_launcher_handler.cc +++ b/chrome/browser/ui/webui/ntp/app_launcher_handler.cc @@ -23,6 +23,7 @@ #include "chrome/browser/extensions/extension_system.h" #include "chrome/browser/extensions/management_policy.h" #include "chrome/browser/favicon/favicon_service_factory.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" @@ -776,9 +777,9 @@ void AppLauncherHandler::OnPreferenceChanged() { } // static -void AppLauncherHandler::RegisterUserPrefs(PrefServiceSyncable* pref_service) { - pref_service->RegisterListPref(prefs::kNtpAppPageNames, - PrefServiceSyncable::SYNCABLE_PREF); +void AppLauncherHandler::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterListPref(prefs::kNtpAppPageNames, + PrefRegistrySyncable::SYNCABLE_PREF); } void AppLauncherHandler::CleanupAfterUninstall() { diff --git a/chrome/browser/ui/webui/ntp/app_launcher_handler.h b/chrome/browser/ui/webui/ntp/app_launcher_handler.h index c68a176..0f109b7 100644 --- a/chrome/browser/ui/webui/ntp/app_launcher_handler.h +++ b/chrome/browser/ui/webui/ntp/app_launcher_handler.h @@ -24,7 +24,7 @@ class ExtensionEnableFlow; class ExtensionService; class PrefChangeRegistrar; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; namespace extensions { @@ -105,7 +105,7 @@ class AppLauncherHandler : public content::WebUIMessageHandler, void HandleSetNotificationsDisabled(const base::ListValue* args); // Register app launcher preferences. - static void RegisterUserPrefs(PrefServiceSyncable* pref_service); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Records the given type of app launch for UMA. static void RecordAppLaunchType(extension_misc::AppLaunchBucket bucket); diff --git a/chrome/browser/ui/webui/ntp/foreign_session_handler.cc b/chrome/browser/ui/webui/ntp/foreign_session_handler.cc index 34ddc8a..7c5624b 100644 --- a/chrome/browser/ui/webui/ntp/foreign_session_handler.cc +++ b/chrome/browser/ui/webui/ntp/foreign_session_handler.cc @@ -15,6 +15,7 @@ #include "base/strings/string_number_conversions.h" #include "base/utf_string_conversions.h" #include "base/values.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" @@ -60,9 +61,9 @@ ForeignSessionHandler::ForeignSessionHandler() { } // static -void ForeignSessionHandler::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterDictionaryPref(prefs::kNtpCollapsedForeignSessions, - PrefServiceSyncable::UNSYNCABLE_PREF); +void ForeignSessionHandler::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterDictionaryPref(prefs::kNtpCollapsedForeignSessions, + PrefRegistrySyncable::UNSYNCABLE_PREF); } // static diff --git a/chrome/browser/ui/webui/ntp/foreign_session_handler.h b/chrome/browser/ui/webui/ntp/foreign_session_handler.h index 3287f4e..fdf9ad3 100644 --- a/chrome/browser/ui/webui/ntp/foreign_session_handler.h +++ b/chrome/browser/ui/webui/ntp/foreign_session_handler.h @@ -15,7 +15,7 @@ #include "content/public/browser/web_ui.h" #include "content/public/browser/web_ui_message_handler.h" -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace browser_sync { @@ -31,7 +31,7 @@ class ForeignSessionHandler : public content::WebUIMessageHandler, ForeignSessionHandler(); virtual ~ForeignSessionHandler() {} - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); static void OpenForeignSessionTab(content::WebUI* web_ui, const std::string& session_string_value, diff --git a/chrome/browser/ui/webui/ntp/most_visited_handler.cc b/chrome/browser/ui/webui/ntp/most_visited_handler.cc index 6e374e3..7a54256 100644 --- a/chrome/browser/ui/webui/ntp/most_visited_handler.cc +++ b/chrome/browser/ui/webui/ntp/most_visited_handler.cc @@ -20,6 +20,7 @@ #include "base/values.h" #include "chrome/browser/history/page_usage_data.h" #include "chrome/browser/history/top_sites.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" @@ -256,7 +257,7 @@ std::string MostVisitedHandler::GetDictionaryKeyForUrl(const std::string& url) { } // static -void MostVisitedHandler::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterDictionaryPref(prefs::kNtpMostVisitedURLsBlacklist, - PrefServiceSyncable::UNSYNCABLE_PREF); +void MostVisitedHandler::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterDictionaryPref(prefs::kNtpMostVisitedURLsBlacklist, + PrefRegistrySyncable::UNSYNCABLE_PREF); } diff --git a/chrome/browser/ui/webui/ntp/most_visited_handler.h b/chrome/browser/ui/webui/ntp/most_visited_handler.h index e60b81c..45d4e41 100644 --- a/chrome/browser/ui/webui/ntp/most_visited_handler.h +++ b/chrome/browser/ui/webui/ntp/most_visited_handler.h @@ -17,7 +17,7 @@ class GURL; class PageUsageData; -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace base { class ListValue; @@ -67,7 +67,7 @@ class MostVisitedHandler : public content::WebUIMessageHandler, return most_visited_urls_; } - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); private: struct MostVisitedPage; diff --git a/chrome/browser/ui/webui/ntp/new_tab_page_handler.cc b/chrome/browser/ui/webui/ntp/new_tab_page_handler.cc index 8416cfa..70b72a8 100644 --- a/chrome/browser/ui/webui/ntp/new_tab_page_handler.cc +++ b/chrome/browser/ui/webui/ntp/new_tab_page_handler.cc @@ -9,6 +9,7 @@ #include "base/memory/scoped_ptr.h" #include "base/metrics/histogram.h" #include "chrome/browser/extensions/app_launcher.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/sync/profile_sync_service.h" @@ -183,10 +184,10 @@ void NewTabPageHandler::GotIsAppLauncherEnabled(bool is_enabled) { } // static -void NewTabPageHandler::RegisterUserPrefs(PrefServiceSyncable* prefs) { +void NewTabPageHandler::RegisterUserPrefs(PrefRegistrySyncable* registry) { // TODO(estade): should be syncable. - prefs->RegisterIntegerPref(prefs::kNtpShownPage, APPS_PAGE_ID, - PrefServiceSyncable::UNSYNCABLE_PREF); + registry->RegisterIntegerPref(prefs::kNtpShownPage, APPS_PAGE_ID, + PrefRegistrySyncable::UNSYNCABLE_PREF); } // static diff --git a/chrome/browser/ui/webui/ntp/new_tab_page_handler.h b/chrome/browser/ui/webui/ntp/new_tab_page_handler.h index 3e2d680..121723c 100644 --- a/chrome/browser/ui/webui/ntp/new_tab_page_handler.h +++ b/chrome/browser/ui/webui/ntp/new_tab_page_handler.h @@ -11,7 +11,7 @@ #include "content/public/browser/web_ui_message_handler.h" class PrefRegistrySimple; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; // Handler for general New Tab Page functionality that does not belong in a @@ -22,7 +22,7 @@ class NewTabPageHandler : public content::WebUIMessageHandler, NewTabPageHandler(); // Register NTP per-profile preferences. - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Registers values (strings etc.) for the page. static void GetLocalizedValues(Profile* profile, DictionaryValue* values); diff --git a/chrome/browser/ui/webui/ntp/new_tab_ui.cc b/chrome/browser/ui/webui/ntp/new_tab_ui.cc index 21996a4..47d1a76 100644 --- a/chrome/browser/ui/webui/ntp/new_tab_ui.cc +++ b/chrome/browser/ui/webui/ntp/new_tab_ui.cc @@ -20,6 +20,7 @@ #include "base/utf_string_conversions.h" #include "chrome/browser/defaults.h" #include "chrome/browser/extensions/app_launcher.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/sessions/session_types.h" @@ -281,15 +282,15 @@ void NewTabUI::InitializeCSSCaches() { } // static -void NewTabUI::RegisterUserPrefs(PrefServiceSyncable* prefs) { +void NewTabUI::RegisterUserPrefs(PrefRegistrySyncable* registry) { #if !defined(OS_ANDROID) - AppLauncherHandler::RegisterUserPrefs(prefs); - NewTabPageHandler::RegisterUserPrefs(prefs); + AppLauncherHandler::RegisterUserPrefs(registry); + NewTabPageHandler::RegisterUserPrefs(registry); if (NewTabUI::IsDiscoveryInNTPEnabled()) - SuggestionsHandler::RegisterUserPrefs(prefs); + SuggestionsHandler::RegisterUserPrefs(registry); #endif - MostVisitedHandler::RegisterUserPrefs(prefs); - browser_sync::ForeignSessionHandler::RegisterUserPrefs(prefs); + MostVisitedHandler::RegisterUserPrefs(registry); + browser_sync::ForeignSessionHandler::RegisterUserPrefs(registry); } // static diff --git a/chrome/browser/ui/webui/ntp/new_tab_ui.h b/chrome/browser/ui/webui/ntp/new_tab_ui.h index 8f89ade..1498eac 100644 --- a/chrome/browser/ui/webui/ntp/new_tab_ui.h +++ b/chrome/browser/ui/webui/ntp/new_tab_ui.h @@ -13,13 +13,13 @@ #include "base/time.h" #include "base/timer.h" #include "chrome/browser/sessions/tab_restore_service.h" -#include "content/public/browser/url_data_source.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" +#include "content/public/browser/url_data_source.h" #include "content/public/browser/web_ui_controller.h" class GURL; -class PrefServiceSyncable; +class PrefRegistrySyncable; class Profile; namespace base { @@ -33,7 +33,7 @@ class NewTabUI : public content::WebUIController, explicit NewTabUI(content::WebUI* web_ui); virtual ~NewTabUI(); - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Returns whether or not to show apps pages. static bool ShouldShowApps(); diff --git a/chrome/browser/ui/webui/ntp/suggestions_page_handler.cc b/chrome/browser/ui/webui/ntp/suggestions_page_handler.cc index 9f6b614..f51d759 100644 --- a/chrome/browser/ui/webui/ntp/suggestions_page_handler.cc +++ b/chrome/browser/ui/webui/ntp/suggestions_page_handler.cc @@ -17,10 +17,11 @@ #include "base/values.h" #include "chrome/browser/history/page_usage_data.h" #include "chrome/browser/history/top_sites.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/webui/favicon_source.h" -#include "chrome/browser/ui/webui/ntp/suggestions_combiner.h" #include "chrome/browser/ui/webui/ntp/ntp_stats.h" +#include "chrome/browser/ui/webui/ntp/suggestions_combiner.h" #include "chrome/browser/ui/webui/ntp/suggestions_source_top_sites.h" #include "chrome/browser/ui/webui/ntp/thumbnail_source.h" #include "chrome/common/chrome_notification_types.h" @@ -191,6 +192,6 @@ std::string SuggestionsHandler::GetDictionaryKeyForURL(const std::string& url) { } // static -void SuggestionsHandler::RegisterUserPrefs(PrefServiceSyncable* prefs) { +void SuggestionsHandler::RegisterUserPrefs(PrefRegistrySyncable* registry) { // TODO(georgey) add user preferences (such as own blacklist) as needed. } diff --git a/chrome/browser/ui/webui/ntp/suggestions_page_handler.h b/chrome/browser/ui/webui/ntp/suggestions_page_handler.h index a408f38..5dbaaa7 100644 --- a/chrome/browser/ui/webui/ntp/suggestions_page_handler.h +++ b/chrome/browser/ui/webui/ntp/suggestions_page_handler.h @@ -16,7 +16,7 @@ class GURL; class PageUsageData; -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace base { class ListValue; @@ -65,7 +65,7 @@ class SuggestionsHandler : public content::WebUIMessageHandler, // SuggestionsCombiner::Delegate implementation. virtual void OnSuggestionsReady() OVERRIDE; - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); private: // Puts the passed URL in the blacklist (so it does not show as a thumbnail). diff --git a/chrome/browser/ui/webui/plugins_ui.cc b/chrome/browser/ui/webui/plugins_ui.cc index 3960c92..28f75f4 100644 --- a/chrome/browser/ui/webui/plugins_ui.cc +++ b/chrome/browser/ui/webui/plugins_ui.cc @@ -23,6 +23,7 @@ #include "chrome/browser/plugins/plugin_finder.h" #include "chrome/browser/plugins/plugin_metadata.h" #include "chrome/browser/plugins/plugin_prefs.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" @@ -490,10 +491,10 @@ base::RefCountedMemory* PluginsUI::GetFaviconResourceBytes( } // static -void PluginsUI::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterBooleanPref(prefs::kPluginsShowDetails, - false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterDictionaryPref(prefs::kContentSettingsPluginWhitelist, - PrefServiceSyncable::SYNCABLE_PREF); +void PluginsUI::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kPluginsShowDetails, + false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterDictionaryPref(prefs::kContentSettingsPluginWhitelist, + PrefRegistrySyncable::SYNCABLE_PREF); } diff --git a/chrome/browser/ui/webui/plugins_ui.h b/chrome/browser/ui/webui/plugins_ui.h index 8ad24a4..bd97b95 100644 --- a/chrome/browser/ui/webui/plugins_ui.h +++ b/chrome/browser/ui/webui/plugins_ui.h @@ -8,7 +8,7 @@ #include "content/public/browser/web_ui_controller.h" #include "ui/base/layout.h" -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace base { class RefCountedMemory; @@ -20,7 +20,7 @@ class PluginsUI : public content::WebUIController { static base::RefCountedMemory* GetFaviconResourceBytes( ui::ScaleFactor scale_factor); - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); private: DISALLOW_COPY_AND_ASSIGN(PluginsUI); diff --git a/chrome/browser/ui/webui/print_preview/sticky_settings.cc b/chrome/browser/ui/webui/print_preview/sticky_settings.cc index ef097f2..a5a3ce8 100644 --- a/chrome/browser/ui/webui/print_preview/sticky_settings.cc +++ b/chrome/browser/ui/webui/print_preview/sticky_settings.cc @@ -7,6 +7,7 @@ #include "base/command_line.h" #include "base/file_path.h" #include "base/values.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_switches.h" @@ -58,9 +59,9 @@ void StickySettings::RestoreFromPrefs(PrefService* prefs) { } } -void StickySettings::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterDictionaryPref(prefs::kPrintPreviewStickySettings, - PrefServiceSyncable::UNSYNCABLE_PREF); +void StickySettings::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterDictionaryPref(prefs::kPrintPreviewStickySettings, + PrefRegistrySyncable::UNSYNCABLE_PREF); } std::string* StickySettings::printer_app_state() { diff --git a/chrome/browser/ui/webui/print_preview/sticky_settings.h b/chrome/browser/ui/webui/print_preview/sticky_settings.h index 77a4c10..21c6ed4 100644 --- a/chrome/browser/ui/webui/print_preview/sticky_settings.h +++ b/chrome/browser/ui/webui/print_preview/sticky_settings.h @@ -13,7 +13,7 @@ class PrintPreviewHandlerTest; class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; namespace base { class DictionaryValue; @@ -40,7 +40,7 @@ class StickySettings { void SaveInPrefs(PrefService* profile); void RestoreFromPrefs(PrefService* profile); - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); private: scoped_ptr<base::FilePath> save_path_; diff --git a/chrome/browser/ui/webui/sync_promo/sync_promo_handler.cc b/chrome/browser/ui/webui/sync_promo/sync_promo_handler.cc index 8d6a76a..761d72d 100644 --- a/chrome/browser/ui/webui/sync_promo/sync_promo_handler.cc +++ b/chrome/browser/ui/webui/sync_promo/sync_promo_handler.cc @@ -8,6 +8,7 @@ #include "base/bind_helpers.h" #include "base/metrics/histogram.h" #include "base/time.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/sync/profile_sync_service.h" @@ -75,13 +76,13 @@ SyncPromoHandler::~SyncPromoHandler() { } // static -void SyncPromoHandler::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterIntegerPref(prefs::kSyncPromoViewCount, 0, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kSyncPromoShowNTPBubble, false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterStringPref(prefs::kSyncPromoErrorMessage, std::string(), - PrefServiceSyncable::UNSYNCABLE_PREF); +void SyncPromoHandler::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterIntegerPref(prefs::kSyncPromoViewCount, 0, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kSyncPromoShowNTPBubble, false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterStringPref(prefs::kSyncPromoErrorMessage, std::string(), + PrefRegistrySyncable::UNSYNCABLE_PREF); } void SyncPromoHandler::RegisterMessages() { diff --git a/chrome/browser/ui/webui/sync_promo/sync_promo_handler.h b/chrome/browser/ui/webui/sync_promo/sync_promo_handler.h index d33dd11..0dde9af 100644 --- a/chrome/browser/ui/webui/sync_promo/sync_promo_handler.h +++ b/chrome/browser/ui/webui/sync_promo/sync_promo_handler.h @@ -8,7 +8,7 @@ #include "chrome/browser/ui/webui/sync_setup_handler.h" class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; // The handler for JavaScript messages related to the "sync promo" page. class SyncPromoHandler : public SyncSetupHandler { @@ -18,7 +18,7 @@ class SyncPromoHandler : public SyncSetupHandler { // Called to register our preferences before we use them (so there will be a // default if not present yet). - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // WebUIMessageHandler implementation. virtual void RegisterMessages() OVERRIDE; diff --git a/chrome/browser/ui/webui/sync_promo/sync_promo_ui.cc b/chrome/browser/ui/webui/sync_promo/sync_promo_ui.cc index 7f86f72..c0ddd03 100644 --- a/chrome/browser/ui/webui/sync_promo/sync_promo_ui.cc +++ b/chrome/browser/ui/webui/sync_promo/sync_promo_ui.cc @@ -12,6 +12,7 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/first_run/first_run.h" #include "chrome/browser/google/google_util.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/profiles/profile_info_cache.h" @@ -136,15 +137,15 @@ bool SyncPromoUI::ShouldShowSyncPromo(Profile* profile) { } // static -void SyncPromoUI::RegisterUserPrefs(PrefServiceSyncable* prefs) { - prefs->RegisterIntegerPref(prefs::kSyncPromoStartupCount, 0, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kSyncPromoUserSkipped, false, - PrefServiceSyncable::UNSYNCABLE_PREF); - prefs->RegisterBooleanPref(prefs::kSyncPromoShowOnFirstRunAllowed, true, - PrefServiceSyncable::UNSYNCABLE_PREF); - - SyncPromoHandler::RegisterUserPrefs(prefs); +void SyncPromoUI::RegisterUserPrefs(PrefRegistrySyncable* registry) { + registry->RegisterIntegerPref(prefs::kSyncPromoStartupCount, 0, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kSyncPromoUserSkipped, false, + PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kSyncPromoShowOnFirstRunAllowed, true, + PrefRegistrySyncable::UNSYNCABLE_PREF); + + SyncPromoHandler::RegisterUserPrefs(registry); } // static diff --git a/chrome/browser/ui/webui/sync_promo/sync_promo_ui.h b/chrome/browser/ui/webui/sync_promo/sync_promo_ui.h index 4c08e3a..decb402 100644 --- a/chrome/browser/ui/webui/sync_promo/sync_promo_ui.h +++ b/chrome/browser/ui/webui/sync_promo/sync_promo_ui.h @@ -8,7 +8,7 @@ #include "content/public/browser/web_ui_controller.h" class Profile; -class PrefServiceSyncable; +class PrefRegistrySyncable; // The Web UI handler for chrome://signin. class SyncPromoUI : public content::WebUIController { @@ -50,7 +50,7 @@ class SyncPromoUI : public content::WebUIController { static void SetUserSkippedSyncPromo(Profile* profile); // Registers the preferences the Sync Promo UI needs. - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefRegistrySyncable* registry); // Returns the sync promo URL wth the given arguments in the query. // |next_page| is the URL to navigate to when the user completes or skips the diff --git a/chrome/browser/web_resource/notification_promo.cc b/chrome/browser/web_resource/notification_promo.cc index c4f03da..d772d13 100644 --- a/chrome/browser/web_resource/notification_promo.cc +++ b/chrome/browser/web_resource/notification_promo.cc @@ -17,8 +17,8 @@ #include "base/values.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/prefs/pref_registry_simple.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_service.h" -#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/web_resource/promo_resource_service.h" #include "chrome/common/chrome_version_info.h" #include "chrome/common/pref_names.h" @@ -315,11 +315,13 @@ void NotificationPromo::RegisterPrefs(PrefRegistrySimple* registry) { } // static -void NotificationPromo::RegisterUserPrefs(PrefServiceSyncable* prefs) { +void NotificationPromo::RegisterUserPrefs(PrefService* prefs, + PrefRegistrySyncable* registry) { // TODO(dbeam): Remove in M28 when we're reasonably sure all prefs are gone. // http://crbug.com/168887 - prefs->RegisterDictionaryPref(kPrefPromoObject, - PrefServiceSyncable::UNSYNCABLE_PREF); + // TODO(joi): Remove PrefService parameter; move this to migration code. + registry->RegisterDictionaryPref(kPrefPromoObject, + PrefRegistrySyncable::UNSYNCABLE_PREF); prefs->ClearPref(kPrefPromoObject); } diff --git a/chrome/browser/web_resource/notification_promo.h b/chrome/browser/web_resource/notification_promo.h index 4d26a09..2dfe0bf 100644 --- a/chrome/browser/web_resource/notification_promo.h +++ b/chrome/browser/web_resource/notification_promo.h @@ -20,7 +20,7 @@ class ListValue; class PrefRegistrySimple; class PrefService; -class PrefServiceSyncable; +class PrefRegistrySyncable; // Helper class for PromoResourceService that parses promo notification info // from json or prefs. @@ -67,7 +67,8 @@ class NotificationPromo { // Register preferences. static void RegisterPrefs(PrefRegistrySimple* registry); - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefService* prefs, + PrefRegistrySyncable* registry); private: // For testing. diff --git a/chrome/browser/web_resource/promo_resource_service.cc b/chrome/browser/web_resource/promo_resource_service.cc index 12ede86..e9f7bb3 100644 --- a/chrome/browser/web_resource/promo_resource_service.cc +++ b/chrome/browser/web_resource/promo_resource_service.cc @@ -11,7 +11,8 @@ #include "base/values.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/prefs/pref_registry_simple.h" -#include "chrome/browser/prefs/pref_service_syncable.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" +#include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/web_resource/notification_promo.h" #include "chrome/common/chrome_notification_types.h" #include "chrome/common/chrome_switches.h" @@ -67,14 +68,16 @@ void PromoResourceService::RegisterPrefs(PrefRegistrySimple* registry) { } // static -void PromoResourceService::RegisterUserPrefs(PrefServiceSyncable* prefs) { +void PromoResourceService::RegisterUserPrefs(PrefService* prefs, + PrefRegistrySyncable* registry) { // TODO(dbeam): remove in M28 when all prefs have been cleared. // http://crbug.com/168887 - prefs->RegisterStringPref(prefs::kNtpPromoResourceCacheUpdate, - "0", - PrefServiceSyncable::UNSYNCABLE_PREF); + // TODO(joi): Remove PrefService parameter; move this to migration code. + registry->RegisterStringPref(prefs::kNtpPromoResourceCacheUpdate, + "0", + PrefRegistrySyncable::UNSYNCABLE_PREF); prefs->ClearPref(prefs::kNtpPromoResourceCacheUpdate); - NotificationPromo::RegisterUserPrefs(prefs); + NotificationPromo::RegisterUserPrefs(prefs, registry); } PromoResourceService::PromoResourceService() diff --git a/chrome/browser/web_resource/promo_resource_service.h b/chrome/browser/web_resource/promo_resource_service.h index 349dabf..f807f3d 100644 --- a/chrome/browser/web_resource/promo_resource_service.h +++ b/chrome/browser/web_resource/promo_resource_service.h @@ -16,7 +16,8 @@ class DictionaryValue; class NotificationPromo; class PrefRegistrySimple; -class PrefServiceSyncable; +class PrefRegistrySyncable; +class PrefService; // A PromoResourceService fetches data from a web resource server to be used to // dynamically change the appearance of the New Tab Page. For example, it has @@ -25,7 +26,8 @@ class PrefServiceSyncable; class PromoResourceService : public WebResourceService { public: static void RegisterPrefs(PrefRegistrySimple* registry); - static void RegisterUserPrefs(PrefServiceSyncable* prefs); + static void RegisterUserPrefs(PrefService* prefs, + PrefRegistrySyncable* registry); PromoResourceService(); diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index e6ef0de..55e9e2f 100644 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -1502,6 +1502,8 @@ 'browser/prefs/pref_registry.h', 'browser/prefs/pref_registry_simple.cc', 'browser/prefs/pref_registry_simple.h', + 'browser/prefs/pref_registry_syncable.cc', + 'browser/prefs/pref_registry_syncable.h', 'browser/prefs/pref_service.cc', 'browser/prefs/pref_service.h', 'browser/prefs/pref_service_builder.cc', diff --git a/chrome/test/base/testing_pref_service.cc b/chrome/test/base/testing_pref_service.cc index a6801dd..3aabc0c 100644 --- a/chrome/test/base/testing_pref_service.cc +++ b/chrome/test/base/testing_pref_service.cc @@ -10,6 +10,7 @@ #include "chrome/browser/prefs/browser_prefs.h" #include "chrome/browser/prefs/pref_notifier_impl.h" #include "chrome/browser/prefs/pref_registry_simple.h" +#include "chrome/browser/prefs/pref_registry_syncable.h" #include "chrome/browser/prefs/pref_value_store.h" #include "chrome/test/base/testing_browser_process.h" #include "testing/gtest/include/gtest/gtest.h" @@ -64,7 +65,7 @@ TestingPrefServiceBase<PrefServiceSyncable>::TestingPrefServiceBase( pref_registry->defaults(), pref_notifier), user_prefs, - pref_registry, + static_cast<PrefRegistrySyncable*>(pref_registry), base::Bind(&HandleReadError), false), managed_prefs_(managed_prefs), @@ -88,24 +89,27 @@ PrefRegistrySimple* TestingPrefServiceSimple::registry() { return static_cast<PrefRegistrySimple*>(DeprecatedGetPrefRegistry()); } -// TODO(joi): Switch to PrefRegistrySyncable once available. TestingPrefServiceSyncable::TestingPrefServiceSyncable() : TestingPrefServiceBase<PrefServiceSyncable>( new TestingPrefStore(), new TestingPrefStore(), new TestingPrefStore(), - new PrefRegistrySimple(), + new PrefRegistrySyncable(), new PrefNotifierImpl()) { } TestingPrefServiceSyncable::~TestingPrefServiceSyncable() { } +PrefRegistrySyncable* TestingPrefServiceSyncable::registry() { + return static_cast<PrefRegistrySyncable*>(DeprecatedGetPrefRegistry()); +} + ScopedTestingLocalState::ScopedTestingLocalState( TestingBrowserProcess* browser_process) : browser_process_(browser_process) { - chrome::RegisterLocalState(static_cast<PrefRegistrySimple*>( - local_state_.DeprecatedGetPrefRegistry()), &local_state_); + chrome::RegisterLocalState(&local_state_, + local_state_.registry()); EXPECT_FALSE(browser_process->local_state()); browser_process->SetLocalState(&local_state_); } diff --git a/chrome/test/base/testing_pref_service.h b/chrome/test/base/testing_pref_service.h index fd72601..28856d7 100644 --- a/chrome/test/base/testing_pref_service.h +++ b/chrome/test/base/testing_pref_service.h @@ -10,10 +10,12 @@ #include "base/prefs/testing_pref_store.h" #include "chrome/browser/prefs/pref_registry.h" #include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/prefs/pref_service_syncable.h" class PrefModelAssociator; class PrefNotifierImpl; class PrefRegistrySimple; +class PrefRegistrySyncable; class TestingBrowserProcess; class TestingPrefStore; @@ -102,6 +104,12 @@ class TestingPrefServiceSyncable TestingPrefServiceSyncable(); virtual ~TestingPrefServiceSyncable(); + // This is provided as a convenience; on a production PrefService + // you would do all registrations before constructing it, passing it + // a PrefRegistry via its constructor (or via + // e.g. PrefServiceBuilder). + PrefRegistrySyncable* registry(); + private: DISALLOW_COPY_AND_ASSIGN(TestingPrefServiceSyncable); }; diff --git a/chrome/test/base/testing_profile.cc b/chrome/test/base/testing_profile.cc index dddb2f5..73fc4d7 100644 --- a/chrome/test/base/testing_profile.cc +++ b/chrome/test/base/testing_profile.cc @@ -39,6 +39,7 @@ #include "chrome/browser/notifications/desktop_notification_service.h" #include "chrome/browser/notifications/desktop_notification_service_factory.h" #include "chrome/browser/prefs/browser_prefs.h" +#include "chrome/browser/prefs/pref_service_syncable.h" #include "chrome/browser/prerender/prerender_manager.h" #include "chrome/browser/profiles/profile_dependency_manager.h" #include "chrome/browser/profiles/storage_partition_descriptor.h" @@ -559,11 +560,11 @@ void TestingProfile::CreateTestingPrefService() { DCHECK(!prefs_.get()); testing_prefs_ = new TestingPrefServiceSyncable(); prefs_.reset(testing_prefs_); - Profile::RegisterUserPrefs(prefs_.get()); - chrome::RegisterUserPrefs(prefs_.get()); + Profile::RegisterUserPrefs(testing_prefs_->registry()); + chrome::RegisterUserPrefs(testing_prefs_, testing_prefs_->registry()); } -PrefServiceSyncable* TestingProfile::GetPrefs() { +PrefService* TestingProfile::GetPrefs() { if (!prefs_.get()) { CreateTestingPrefService(); } @@ -769,7 +770,7 @@ GURL TestingProfile::GetHomePage() { return GURL(chrome::kChromeUINewTabURL); } -PrefServiceSyncable* TestingProfile::GetOffTheRecordPrefs() { +PrefService* TestingProfile::GetOffTheRecordPrefs() { return NULL; } diff --git a/chrome/test/base/testing_profile.h b/chrome/test/base/testing_profile.h index 23302ac..8e857eb 100644 --- a/chrome/test/base/testing_profile.h +++ b/chrome/test/base/testing_profile.h @@ -237,7 +237,7 @@ class TestingProfile : public Profile { // to set a pref service you must invoke this before GetPrefs. // TestingPrefService takes ownership of |prefs|. void SetPrefService(PrefServiceSyncable* prefs); - virtual PrefServiceSyncable* GetPrefs() OVERRIDE; + virtual PrefService* GetPrefs() OVERRIDE; virtual history::TopSites* GetTopSites() OVERRIDE; virtual history::TopSites* GetTopSitesWithoutCreating() OVERRIDE; @@ -315,7 +315,7 @@ class TestingProfile : public Profile { const base::Closure& completion) OVERRIDE; virtual GURL GetHomePage() OVERRIDE; - virtual PrefServiceSyncable* GetOffTheRecordPrefs() OVERRIDE; + virtual PrefService* GetOffTheRecordPrefs() OVERRIDE; protected: base::Time start_time_; |