summaryrefslogtreecommitdiffstats
path: root/chrome/browser/prefs
diff options
context:
space:
mode:
authorjoi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-06 00:42:44 +0000
committerjoi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-06 00:42:44 +0000
commit75fee3776f2e159d8e52bb13bb4545ac46021512 (patch)
tree7740edac61c7925bd342065bc31d6127e42a7b89 /chrome/browser/prefs
parentd959538b0a69164776b6410bc2c87f46a2c80e89 (diff)
downloadchromium_src-75fee3776f2e159d8e52bb13bb4545ac46021512.zip
chromium_src-75fee3776f2e159d8e52bb13bb4545ac46021512.tar.gz
chromium_src-75fee3776f2e159d8e52bb13bb4545ac46021512.tar.bz2
Introduce //components/user_prefs.
The user_prefs component provides: a) The UserPrefs class, used to map PrefService objects to BrowserContext. This addresses a TODO to get rid of PrefServiceFromBrowserContext from base/prefs/pref_service.h, where clearly a mention of a content class did not belong. b) A place for PrefRegistrySyncable to live, where it can be used by components that need to register prefs. We also use (b) in this change to eliminate Autofill's dependency on chrome/browser/prefs. Work is ongoing to move Autofill to //components/autofill. TBR=ben@chromium.org BUG=155525,140037 Review URL: https://chromiumcodereview.appspot.com/12340111 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186301 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/prefs')
-rw-r--r--chrome/browser/prefs/browser_prefs.cc2
-rw-r--r--chrome/browser/prefs/chrome_pref_service_factory.cc8
-rw-r--r--chrome/browser/prefs/chrome_pref_service_unittest.cc2
-rw-r--r--chrome/browser/prefs/incognito_mode_prefs.cc2
-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_mock_builder.cc2
-rw-r--r--chrome/browser/prefs/pref_service_syncable.cc2
-rw-r--r--chrome/browser/prefs/pref_service_syncable_builder.cc2
-rw-r--r--chrome/browser/prefs/proxy_policy_unittest.cc2
-rw-r--r--chrome/browser/prefs/scoped_user_pref_update_unittest.cc2
-rw-r--r--chrome/browser/prefs/session_startup_pref.cc2
-rw-r--r--chrome/browser/prefs/session_startup_pref_unittest.cc2
13 files changed, 11 insertions, 347 deletions
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index e2385bb..27dbd04 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -52,7 +52,6 @@
#include "chrome/browser/pepper_flash_settings_manager.h"
#include "chrome/browser/plugins/plugin_finder.h"
#include "chrome/browser/prefs/incognito_mode_prefs.h"
-#include "chrome/browser/prefs/pref_registry_syncable.h"
#include "chrome/browser/prefs/pref_service_syncable.h"
#include "chrome/browser/prefs/session_startup_pref.h"
#include "chrome/browser/printing/cloud_print/cloud_print_url.h"
@@ -90,6 +89,7 @@
#include "chrome/browser/upgrade_detector.h"
#include "chrome/browser/web_resource/promo_resource_service.h"
#include "chrome/common/pref_names.h"
+#include "components/user_prefs/pref_registry_syncable.h"
#include "content/public/browser/render_process_host.h"
#if defined(ENABLE_CONFIGURATION_POLICY)
diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc
index 792e2e8..d3f60bb 100644
--- a/chrome/browser/prefs/chrome_pref_service_factory.cc
+++ b/chrome/browser/prefs/chrome_pref_service_factory.cc
@@ -17,10 +17,9 @@
#include "chrome/browser/policy/configuration_policy_pref_store.h"
#include "chrome/browser/prefs/command_line_pref_store.h"
#include "chrome/browser/prefs/pref_model_associator.h"
-#include "chrome/browser/prefs/pref_registry_syncable.h"
#include "chrome/browser/prefs/pref_service_syncable_builder.h"
-#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/profile_error_dialog.h"
+#include "components/user_prefs/pref_registry_syncable.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_thread.h"
#include "grit/chromium_strings.h"
@@ -93,11 +92,6 @@ void PrepareBuilder(
} // namespace
-// TODO(joi): Find a better home for this.
-PrefService* PrefServiceFromBrowserContext(BrowserContext* context) {
- return static_cast<Profile*>(context)->GetPrefs();
-}
-
namespace chrome_prefs {
PrefService* CreateLocalState(
diff --git a/chrome/browser/prefs/chrome_pref_service_unittest.cc b/chrome/browser/prefs/chrome_pref_service_unittest.cc
index b65ee3e..c2e8a30 100644
--- a/chrome/browser/prefs/chrome_pref_service_unittest.cc
+++ b/chrome/browser/prefs/chrome_pref_service_unittest.cc
@@ -14,7 +14,6 @@
#include "chrome/browser/policy/mock_configuration_policy_provider.h"
#include "chrome/browser/prefs/browser_prefs.h"
#include "chrome/browser/prefs/command_line_pref_store.h"
-#include "chrome/browser/prefs/pref_registry_syncable.h"
#include "chrome/browser/prefs/pref_service_mock_builder.h"
#include "chrome/browser/prefs/scoped_user_pref_update.h"
#include "chrome/common/chrome_paths.h"
@@ -23,6 +22,7 @@
#include "chrome/test/base/chrome_render_view_host_test_harness.h"
#include "chrome/test/base/testing_pref_service_syncable.h"
#include "chrome/test/base/testing_profile.h"
+#include "components/user_prefs/pref_registry_syncable.h"
#include "content/public/test/test_browser_thread.h"
#include "content/public/test/web_contents_tester.h"
#include "ui/base/test/data/resource.h"
diff --git a/chrome/browser/prefs/incognito_mode_prefs.cc b/chrome/browser/prefs/incognito_mode_prefs.cc
index 22d67ac..e073013 100644
--- a/chrome/browser/prefs/incognito_mode_prefs.cc
+++ b/chrome/browser/prefs/incognito_mode_prefs.cc
@@ -7,9 +7,9 @@
#include "base/command_line.h"
#include "base/logging.h"
#include "base/prefs/pref_service.h"
-#include "chrome/browser/prefs/pref_registry_syncable.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
+#include "components/user_prefs/pref_registry_syncable.h"
#if defined(OS_WIN)
#include "base/win/metro.h"
diff --git a/chrome/browser/prefs/pref_registry_syncable.cc b/chrome/browser/prefs/pref_registry_syncable.cc
deleted file mode 100644
index 3a34360..0000000
--- a/chrome/browser/prefs/pref_registry_syncable.cc
+++ /dev/null
@@ -1,220 +0,0 @@
-// 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/files/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
deleted file mode 100644
index d6d1a4a..0000000
--- a/chrome/browser/prefs/pref_registry_syncable.h
+++ /dev/null
@@ -1,110 +0,0 @@
-// 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 "base/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_mock_builder.cc b/chrome/browser/prefs/pref_service_mock_builder.cc
index 51ae6fb..661e891 100644
--- a/chrome/browser/prefs/pref_service_mock_builder.cc
+++ b/chrome/browser/prefs/pref_service_mock_builder.cc
@@ -5,7 +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"
+#include "components/user_prefs/pref_registry_syncable.h"
PrefServiceMockBuilder::PrefServiceMockBuilder() {
ResetDefaultState();
diff --git a/chrome/browser/prefs/pref_service_syncable.cc b/chrome/browser/prefs/pref_service_syncable.cc
index 01db256..8f2f867 100644
--- a/chrome/browser/prefs/pref_service_syncable.cc
+++ b/chrome/browser/prefs/pref_service_syncable.cc
@@ -14,10 +14,10 @@
#include "base/strings/string_number_conversions.h"
#include "base/value_conversions.h"
#include "chrome/browser/prefs/pref_model_associator.h"
-#include "chrome/browser/prefs/pref_registry_syncable.h"
#include "chrome/browser/prefs/pref_service_syncable_observer.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/prefs/prefs_tab_helper.h"
+#include "components/user_prefs/pref_registry_syncable.h"
// static
PrefServiceSyncable* PrefServiceSyncable::FromProfile(Profile* profile) {
diff --git a/chrome/browser/prefs/pref_service_syncable_builder.cc b/chrome/browser/prefs/pref_service_syncable_builder.cc
index b11ba20..5e97d4d 100644
--- a/chrome/browser/prefs/pref_service_syncable_builder.cc
+++ b/chrome/browser/prefs/pref_service_syncable_builder.cc
@@ -10,8 +10,8 @@
#include "chrome/browser/policy/configuration_policy_pref_store.h"
#include "chrome/browser/policy/policy_service.h"
#include "chrome/browser/prefs/command_line_pref_store.h"
-#include "chrome/browser/prefs/pref_registry_syncable.h"
#include "chrome/browser/prefs/pref_service_syncable.h"
+#include "components/user_prefs/pref_registry_syncable.h"
PrefServiceSyncableBuilder::PrefServiceSyncableBuilder() {
}
diff --git a/chrome/browser/prefs/proxy_policy_unittest.cc b/chrome/browser/prefs/proxy_policy_unittest.cc
index 0318516..ec51894 100644
--- a/chrome/browser/prefs/proxy_policy_unittest.cc
+++ b/chrome/browser/prefs/proxy_policy_unittest.cc
@@ -8,13 +8,13 @@
#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_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"
#include "chrome/common/pref_names.h"
+#include "components/user_prefs/pref_registry_syncable.h"
#include "policy/policy_constants.h"
#include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/prefs/scoped_user_pref_update_unittest.cc b/chrome/browser/prefs/scoped_user_pref_update_unittest.cc
index 6a2b280..f12c099 100644
--- a/chrome/browser/prefs/scoped_user_pref_update_unittest.cc
+++ b/chrome/browser/prefs/scoped_user_pref_update_unittest.cc
@@ -4,9 +4,9 @@
#include "base/prefs/mock_pref_change_callback.h"
#include "base/prefs/public/pref_change_registrar.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_syncable.h"
+#include "components/user_prefs/pref_registry_syncable.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/prefs/session_startup_pref.cc b/chrome/browser/prefs/session_startup_pref.cc
index decc622..9ce5f44 100644
--- a/chrome/browser/prefs/session_startup_pref.cc
+++ b/chrome/browser/prefs/session_startup_pref.cc
@@ -10,10 +10,10 @@
#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/scoped_user_pref_update.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/pref_names.h"
+#include "components/user_prefs/pref_registry_syncable.h"
#if defined(OS_MACOSX)
#include "chrome/browser/ui/cocoa/window_restore_utils.h"
diff --git a/chrome/browser/prefs/session_startup_pref_unittest.cc b/chrome/browser/prefs/session_startup_pref_unittest.cc
index fac4ec1..7f7c5a4 100644
--- a/chrome/browser/prefs/session_startup_pref_unittest.cc
+++ b/chrome/browser/prefs/session_startup_pref_unittest.cc
@@ -2,10 +2,10 @@
// 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_syncable.h"
+#include "components/user_prefs/pref_registry_syncable.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"