summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjoi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-10 13:14:04 +0000
committerjoi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-10 13:14:04 +0000
commitc753f148dc1a10cd9461e50e03dc2a93652c13d1 (patch)
tree9e1a8558556a0f31d4e527c4c203d076f8cca920
parente6dbde892ddea9e179fa76e4db1333e83776d160 (diff)
downloadchromium_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
-rw-r--r--chrome/browser/accessibility/invert_bubble_prefs.cc10
-rw-r--r--chrome/browser/accessibility/invert_bubble_prefs.h4
-rw-r--r--chrome/browser/autofill/autofill_manager.cc41
-rw-r--r--chrome/browser/autofill/autofill_manager.h4
-rw-r--r--chrome/browser/background/background_contents_service_factory.cc5
-rw-r--r--chrome/browser/background/background_contents_service_factory.h4
-rw-r--r--chrome/browser/bookmarks/DEPS3
-rw-r--r--chrome/browser/bookmarks/bookmark_model_factory.cc10
-rw-r--r--chrome/browser/bookmarks/bookmark_model_factory.h4
-rw-r--r--chrome/browser/bookmarks/bookmark_prompt_prefs.cc13
-rw-r--r--chrome/browser/bookmarks/bookmark_prompt_prefs.h4
-rw-r--r--chrome/browser/bookmarks/bookmark_utils.cc17
-rw-r--r--chrome/browser/bookmarks/bookmark_utils.h4
-rw-r--r--chrome/browser/browser_process_impl.cc2
-rw-r--r--chrome/browser/chrome_content_browser_client.cc22
-rw-r--r--chrome/browser/chrome_content_browser_client.h4
-rw-r--r--chrome/browser/chrome_to_mobile_service.cc7
-rw-r--r--chrome/browser/chrome_to_mobile_service.h4
-rw-r--r--chrome/browser/chromeos/language_preferences.cc81
-rw-r--r--chrome/browser/chromeos/language_preferences.h10
-rw-r--r--chrome/browser/chromeos/login/oauth2_login_manager.cc22
-rw-r--r--chrome/browser/chromeos/preferences.cc358
-rw-r--r--chrome/browser/chromeos/preferences.h4
-rw-r--r--chrome/browser/chromeos/preferences_unittest.cc4
-rw-r--r--chrome/browser/chromeos/proxy_config_service_impl.cc10
-rw-r--r--chrome/browser/chromeos/proxy_config_service_impl.h5
-rw-r--r--chrome/browser/content_settings/content_settings_default_provider.cc9
-rw-r--r--chrome/browser/content_settings/content_settings_default_provider.h4
-rw-r--r--chrome/browser/content_settings/content_settings_policy_provider.cc107
-rw-r--r--chrome/browser/content_settings/content_settings_policy_provider.h4
-rw-r--r--chrome/browser/content_settings/content_settings_pref_provider.cc11
-rw-r--r--chrome/browser/content_settings/content_settings_pref_provider.h4
-rw-r--r--chrome/browser/content_settings/content_settings_pref_provider_unittest.cc18
-rw-r--r--chrome/browser/content_settings/cookie_settings.cc9
-rw-r--r--chrome/browser/content_settings/cookie_settings.h6
-rw-r--r--chrome/browser/content_settings/host_content_settings_map.cc25
-rw-r--r--chrome/browser/content_settings/host_content_settings_map.h4
-rw-r--r--chrome/browser/custom_handlers/protocol_handler_registry.cc15
-rw-r--r--chrome/browser/custom_handlers/protocol_handler_registry.h4
-rw-r--r--chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc2
-rw-r--r--chrome/browser/devtools/devtools_window.cc34
-rw-r--r--chrome/browser/devtools/devtools_window.h4
-rw-r--r--chrome/browser/download/chrome_download_manager_delegate.cc13
-rw-r--r--chrome/browser/download/download_prefs.cc36
-rw-r--r--chrome/browser/download/download_prefs.h6
-rw-r--r--chrome/browser/extensions/api/commands/command_service.cc7
-rw-r--r--chrome/browser/extensions/api/commands/command_service.h4
-rw-r--r--chrome/browser/extensions/api/tabs/tabs_api.cc7
-rw-r--r--chrome/browser/extensions/api/tabs/tabs_api.h4
-rw-r--r--chrome/browser/extensions/component_loader.cc15
-rw-r--r--chrome/browser/extensions/component_loader.h4
-rw-r--r--chrome/browser/extensions/component_loader_unittest.cc15
-rw-r--r--chrome/browser/extensions/default_apps.cc7
-rw-r--r--chrome/browser/extensions/default_apps.h4
-rw-r--r--chrome/browser/extensions/extension_prefs.cc97
-rw-r--r--chrome/browser/extensions/extension_prefs.h14
-rw-r--r--chrome/browser/extensions/extension_prefs_unittest.cc28
-rw-r--r--chrome/browser/extensions/extension_prefs_unittest.h6
-rw-r--r--chrome/browser/extensions/extension_service_unittest.cc9
-rw-r--r--chrome/browser/extensions/extension_web_ui.cc7
-rw-r--r--chrome/browser/extensions/extension_web_ui.h4
-rw-r--r--chrome/browser/extensions/menu_manager_unittest.cc1
-rw-r--r--chrome/browser/extensions/platform_app_browsertest.cc8
-rw-r--r--chrome/browser/extensions/shell_window_geometry_cache_unittest.cc1
-rw-r--r--chrome/browser/extensions/test_extension_prefs.cc30
-rw-r--r--chrome/browser/extensions/test_extension_prefs.h9
-rw-r--r--chrome/browser/extensions/updater/extension_updater_unittest.cc4
-rw-r--r--chrome/browser/first_run/first_run.cc9
-rw-r--r--chrome/browser/first_run/first_run.h4
-rw-r--r--chrome/browser/geolocation/chrome_geolocation_permission_context_factory.cc9
-rw-r--r--chrome/browser/geolocation/chrome_geolocation_permission_context_factory.h3
-rw-r--r--chrome/browser/geolocation/geolocation_prefs.h1
-rw-r--r--chrome/browser/google/google_url_tracker_factory.cc7
-rw-r--r--chrome/browser/google/google_url_tracker_factory.h4
-rw-r--r--chrome/browser/intents/web_intents_util.cc7
-rw-r--r--chrome/browser/intents/web_intents_util.h4
-rw-r--r--chrome/browser/managed_mode/managed_mode.h2
-rw-r--r--chrome/browser/managed_mode/managed_mode_browsertest.cc3
-rw-r--r--chrome/browser/managed_mode/managed_user_service.cc17
-rw-r--r--chrome/browser/managed_mode/managed_user_service.h4
-rw-r--r--chrome/browser/media/media_capture_devices_dispatcher.cc18
-rw-r--r--chrome/browser/media/media_capture_devices_dispatcher.h6
-rw-r--r--chrome/browser/media/media_stream_devices_controller.cc14
-rw-r--r--chrome/browser/media/media_stream_devices_controller.h4
-rw-r--r--chrome/browser/media_gallery/media_galleries_preferences.cc14
-rw-r--r--chrome/browser/media_gallery/media_galleries_preferences.h4
-rw-r--r--chrome/browser/media_gallery/media_galleries_preferences_factory.cc5
-rw-r--r--chrome/browser/media_gallery/media_galleries_preferences_factory.h4
-rw-r--r--chrome/browser/metrics/metrics_log_unittest.cc2
-rw-r--r--chrome/browser/net/http_server_properties_manager.cc5
-rw-r--r--chrome/browser/net/http_server_properties_manager.h4
-rw-r--r--chrome/browser/net/net_pref_observer.cc15
-rw-r--r--chrome/browser/net/net_pref_observer.h4
-rw-r--r--chrome/browser/net/predictor.cc11
-rw-r--r--chrome/browser/net/predictor.h6
-rw-r--r--chrome/browser/net/pref_proxy_config_tracker_impl.cc5
-rw-r--r--chrome/browser/net/pref_proxy_config_tracker_impl.h4
-rw-r--r--chrome/browser/notifications/desktop_notification_service.cc9
-rw-r--r--chrome/browser/notifications/desktop_notification_service.h4
-rw-r--r--chrome/browser/notifications/desktop_notifications_unittest.cc2
-rw-r--r--chrome/browser/password_manager/password_manager.cc17
-rw-r--r--chrome/browser/password_manager/password_manager.h4
-rw-r--r--chrome/browser/password_manager/password_store_factory.cc11
-rw-r--r--chrome/browser/password_manager/password_store_factory.h4
-rw-r--r--chrome/browser/password_manager/password_store_x.cc10
-rw-r--r--chrome/browser/password_manager/password_store_x.h4
-rw-r--r--chrome/browser/pepper_flash_settings_manager.cc18
-rw-r--r--chrome/browser/pepper_flash_settings_manager.h4
-rw-r--r--chrome/browser/plugins/plugin_prefs_factory.cc43
-rw-r--r--chrome/browser/plugins/plugin_prefs_factory.h4
-rw-r--r--chrome/browser/policy/cloud_policy_core_unittest.cc2
-rw-r--r--chrome/browser/policy/device_cloud_policy_manager_chromeos_unittest.cc2
-rw-r--r--chrome/browser/policy/policy_statistics_collector_unittest.cc2
-rw-r--r--chrome/browser/policy/url_blacklist_manager.cc11
-rw-r--r--chrome/browser/policy/url_blacklist_manager.h4
-rw-r--r--chrome/browser/policy/user_cloud_policy_manager_chromeos_unittest.cc2
-rw-r--r--chrome/browser/policy/user_policy_signin_service_factory.cc5
-rw-r--r--chrome/browser/policy/user_policy_signin_service_factory.h4
-rw-r--r--chrome/browser/policy/user_policy_signin_service_unittest.cc6
-rw-r--r--chrome/browser/prefs/browser_prefs.cc137
-rw-r--r--chrome/browser/prefs/browser_prefs.h6
-rw-r--r--chrome/browser/prefs/chrome_pref_service_factory.cc4
-rw-r--r--chrome/browser/prefs/chrome_pref_service_factory.h2
-rw-r--r--chrome/browser/prefs/incognito_mode_prefs.cc10
-rw-r--r--chrome/browser/prefs/incognito_mode_prefs.h4
-rw-r--r--chrome/browser/prefs/incognito_mode_prefs_unittest.cc2
-rw-r--r--chrome/browser/prefs/pref_model_associator.cc1
-rw-r--r--chrome/browser/prefs/pref_model_associator.h1
-rw-r--r--chrome/browser/prefs/pref_registry.h8
-rw-r--r--chrome/browser/prefs/pref_registry_syncable.cc220
-rw-r--r--chrome/browser/prefs/pref_registry_syncable.h110
-rw-r--r--chrome/browser/prefs/pref_service.h8
-rw-r--r--chrome/browser/prefs/pref_service_mock_builder.cc7
-rw-r--r--chrome/browser/prefs/pref_service_mock_builder.h4
-rw-r--r--chrome/browser/prefs/pref_service_syncable.cc253
-rw-r--r--chrome/browser/prefs/pref_service_syncable.h78
-rw-r--r--chrome/browser/prefs/pref_service_syncable_builder.cc9
-rw-r--r--chrome/browser/prefs/pref_service_syncable_builder.h3
-rw-r--r--chrome/browser/prefs/pref_service_unittest.cc24
-rw-r--r--chrome/browser/prefs/proxy_policy_unittest.cc9
-rw-r--r--chrome/browser/prefs/scoped_user_pref_update_unittest.cc6
-rw-r--r--chrome/browser/prefs/session_startup_pref.cc19
-rw-r--r--chrome/browser/prefs/session_startup_pref.h4
-rw-r--r--chrome/browser/prefs/session_startup_pref_unittest.cc35
-rw-r--r--chrome/browser/printing/cloud_print/cloud_print_url.cc19
-rw-r--r--chrome/browser/printing/print_dialog_cloud.cc22
-rw-r--r--chrome/browser/profiles/chrome_version_service.cc8
-rw-r--r--chrome/browser/profiles/chrome_version_service.h4
-rw-r--r--chrome/browser/profiles/gaia_info_update_service.h1
-rw-r--r--chrome/browser/profiles/gaia_info_update_service_factory.cc8
-rw-r--r--chrome/browser/profiles/gaia_info_update_service_factory.h4
-rw-r--r--chrome/browser/profiles/off_the_record_profile_impl.cc10
-rw-r--r--chrome/browser/profiles/off_the_record_profile_impl.h6
-rw-r--r--chrome/browser/profiles/off_the_record_profile_impl_unittest.cc4
-rw-r--r--chrome/browser/profiles/profile.cc102
-rw-r--r--chrome/browser/profiles/profile.h13
-rw-r--r--chrome/browser/profiles/profile_impl.cc99
-rw-r--r--chrome/browser/profiles/profile_impl.h11
-rw-r--r--chrome/browser/profiles/profile_keyed_base_factory.cc10
-rw-r--r--chrome/browser/profiles/profile_keyed_base_factory.h9
-rw-r--r--chrome/browser/search_engines/template_url_prepopulate_data.cc27
-rw-r--r--chrome/browser/search_engines/template_url_prepopulate_data.h4
-rw-r--r--chrome/browser/search_engines/template_url_service_factory.cc78
-rw-r--r--chrome/browser/search_engines/template_url_service_factory.h4
-rw-r--r--chrome/browser/signin/about_signin_internals_factory.cc15
-rw-r--r--chrome/browser/signin/about_signin_internals_factory.h4
-rw-r--r--chrome/browser/signin/signin_manager_factory.cc26
-rw-r--r--chrome/browser/signin/signin_manager_factory.h4
-rw-r--r--chrome/browser/signin/signin_manager_unittest.cc2
-rw-r--r--chrome/browser/speech/chrome_speech_recognition_preferences.cc7
-rw-r--r--chrome/browser/speech/chrome_speech_recognition_preferences.h3
-rw-r--r--chrome/browser/spellchecker/spellcheck_factory.cc18
-rw-r--r--chrome/browser/spellchecker/spellcheck_factory.h3
-rw-r--r--chrome/browser/sync/glue/session_model_associator.cc13
-rw-r--r--chrome/browser/sync/glue/sync_backend_host_unittest.cc7
-rw-r--r--chrome/browser/sync/invalidations/invalidator_storage.cc34
-rw-r--r--chrome/browser/sync/invalidations/invalidator_storage.h10
-rw-r--r--chrome/browser/sync/invalidations/invalidator_storage_unittest.cc14
-rw-r--r--chrome/browser/sync/profile_sync_components_factory_impl.cc5
-rw-r--r--chrome/browser/sync/profile_sync_service.cc8
-rw-r--r--chrome/browser/sync/profile_sync_service_preference_unittest.cc8
-rw-r--r--chrome/browser/sync/sync_prefs.cc71
-rw-r--r--chrome/browser/sync/sync_prefs.h12
-rw-r--r--chrome/browser/sync/sync_prefs_unittest.cc3
-rw-r--r--chrome/browser/themes/theme_service_factory.cc37
-rw-r--r--chrome/browser/themes/theme_service_factory.h3
-rw-r--r--chrome/browser/translate/translate_prefs.cc36
-rw-r--r--chrome/browser/translate/translate_prefs.h5
-rw-r--r--chrome/browser/ui/alternate_error_tab_observer.cc7
-rw-r--r--chrome/browser/ui/alternate_error_tab_observer.h4
-rw-r--r--chrome/browser/ui/ash/chrome_launcher_prefs.cc32
-rw-r--r--chrome/browser/ui/ash/chrome_launcher_prefs.h4
-rw-r--r--chrome/browser/ui/ash/event_rewriter_unittest.cc32
-rw-r--r--chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app.cc11
-rw-r--r--chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.cc11
-rw-r--r--chrome/browser/ui/browser_instant_controller.cc20
-rw-r--r--chrome/browser/ui/browser_instant_controller.h6
-rw-r--r--chrome/browser/ui/browser_ui_prefs.cc247
-rw-r--r--chrome/browser/ui/browser_ui_prefs.h4
-rw-r--r--chrome/browser/ui/cocoa/extensions/browser_actions_controller.h4
-rw-r--r--chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm16
-rw-r--r--chrome/browser/ui/cocoa/window_size_autosaver_unittest.mm10
-rw-r--r--chrome/browser/ui/gesture_prefs_observer_factory_aura.cc140
-rw-r--r--chrome/browser/ui/gesture_prefs_observer_factory_aura.h11
-rw-r--r--chrome/browser/ui/gtk/browser_window_gtk.cc11
-rw-r--r--chrome/browser/ui/gtk/browser_window_gtk.h6
-rw-r--r--chrome/browser/ui/network_profile_bubble.cc13
-rw-r--r--chrome/browser/ui/network_profile_bubble.h4
-rw-r--r--chrome/browser/ui/prefs/prefs_tab_helper.cc246
-rw-r--r--chrome/browser/ui/prefs/prefs_tab_helper.h7
-rw-r--r--chrome/browser/ui/startup/autolaunch_prompt.cc4
-rw-r--r--chrome/browser/ui/startup/autolaunch_prompt.h4
-rw-r--r--chrome/browser/ui/startup/autolaunch_prompt_win.cc7
-rw-r--r--chrome/browser/ui/sync/one_click_signin_helper_unittest.cc1
-rw-r--r--chrome/browser/ui/tabs/pinned_tab_codec.cc7
-rw-r--r--chrome/browser/ui/tabs/pinned_tab_codec.h4
-rw-r--r--chrome/browser/ui/views/browser_actions_container.cc12
-rw-r--r--chrome/browser/ui/webui/extensions/extension_settings_handler.cc10
-rw-r--r--chrome/browser/ui/webui/extensions/extension_settings_handler.h4
-rw-r--r--chrome/browser/ui/webui/instant_ui.cc7
-rw-r--r--chrome/browser/ui/webui/instant_ui.h4
-rw-r--r--chrome/browser/ui/webui/ntp/android/promo_handler.cc9
-rw-r--r--chrome/browser/ui/webui/ntp/android/promo_handler.h4
-rw-r--r--chrome/browser/ui/webui/ntp/app_launcher_handler.cc7
-rw-r--r--chrome/browser/ui/webui/ntp/app_launcher_handler.h4
-rw-r--r--chrome/browser/ui/webui/ntp/foreign_session_handler.cc7
-rw-r--r--chrome/browser/ui/webui/ntp/foreign_session_handler.h4
-rw-r--r--chrome/browser/ui/webui/ntp/most_visited_handler.cc7
-rw-r--r--chrome/browser/ui/webui/ntp/most_visited_handler.h4
-rw-r--r--chrome/browser/ui/webui/ntp/new_tab_page_handler.cc7
-rw-r--r--chrome/browser/ui/webui/ntp/new_tab_page_handler.h4
-rw-r--r--chrome/browser/ui/webui/ntp/new_tab_ui.cc13
-rw-r--r--chrome/browser/ui/webui/ntp/new_tab_ui.h6
-rw-r--r--chrome/browser/ui/webui/ntp/suggestions_page_handler.cc5
-rw-r--r--chrome/browser/ui/webui/ntp/suggestions_page_handler.h4
-rw-r--r--chrome/browser/ui/webui/plugins_ui.cc13
-rw-r--r--chrome/browser/ui/webui/plugins_ui.h4
-rw-r--r--chrome/browser/ui/webui/print_preview/sticky_settings.cc7
-rw-r--r--chrome/browser/ui/webui/print_preview/sticky_settings.h4
-rw-r--r--chrome/browser/ui/webui/sync_promo/sync_promo_handler.cc15
-rw-r--r--chrome/browser/ui/webui/sync_promo/sync_promo_handler.h4
-rw-r--r--chrome/browser/ui/webui/sync_promo/sync_promo_ui.cc19
-rw-r--r--chrome/browser/ui/webui/sync_promo/sync_promo_ui.h4
-rw-r--r--chrome/browser/web_resource/notification_promo.cc10
-rw-r--r--chrome/browser/web_resource/notification_promo.h5
-rw-r--r--chrome/browser/web_resource/promo_resource_service.cc15
-rw-r--r--chrome/browser/web_resource/promo_resource_service.h6
-rw-r--r--chrome/chrome_browser.gypi2
-rw-r--r--chrome/test/base/testing_pref_service.cc14
-rw-r--r--chrome/test/base/testing_pref_service.h8
-rw-r--r--chrome/test/base/testing_profile.cc9
-rw-r--r--chrome/test/base/testing_profile.h4
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_;