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

Unified Diff: chrome/browser/profiles/profile.cc

Issue 12340111: Introduce //components/user_prefs, use to eliminate c/b/prefs dependency in Autofill. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/profiles/profile.cc
diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc
index 0302bf875d437f6ceda8c39dab9a17f89340d8d5..fac7caba40df8e3a2aa98cc98dbc3c24c732fc73 100644
--- a/chrome/browser/profiles/profile.cc
+++ b/chrome/browser/profiles/profile.cc
@@ -8,11 +8,13 @@
#include "base/prefs/pref_service.h"
#include "build/build_config.h"
-#include "chrome/browser/prefs/pref_registry_syncable.h"
#include "chrome/browser/sync/profile_sync_service.h"
#include "chrome/browser/sync/sync_prefs.h"
#include "chrome/common/chrome_notification_types.h"
#include "chrome/common/pref_names.h"
+#include "components/user_prefs/pref_registry_syncable.h"
+#include "components/user_prefs/user_prefs.h"
+#include "components/user_prefs/user_prefs_delegate.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_source.h"
#include "content/public/browser/web_contents.h"
@@ -23,10 +25,40 @@
#include "chrome/common/chrome_switches.h"
#endif
+namespace {
+
+// Used to initialize the UserPrefs component.
+class ChromeUserPrefsDelegate : public components::UserPrefsDelegate {
+ public:
+ ChromeUserPrefsDelegate() {}
+ virtual ~ChromeUserPrefsDelegate() {}
+
+ virtual PrefService* PrefServiceFromBrowserContext(
+ content::BrowserContext* context) OVERRIDE {
+ return static_cast<Profile*>(context)->GetPrefs();
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ChromeUserPrefsDelegate);
+};
+
+} // namespace
+
Profile::Profile()
: restored_last_session_(false),
sent_destroyed_notification_(false),
accessibility_pause_level_(0) {
+ // One-time initialization of UserPrefs. This is the safest to do
+ // it, since there can be no PrefService for user preferences unless
+ // there is a Profile, and even test code will create a Profile
+ // object if it uses a Profile at all, although it may bypass
+ // e.g. BrowserProcess or ProfileManager or
+ // chrome_prefs::CreateProfilePrefs.
+ components::UserPrefs* user_prefs = components::UserPrefs::GetInstance();
Elliot Glaysher 2013/02/28 21:58:57 You mentioned ContetnClient. If this is supposed t
+ if (!user_prefs->IsInitialized()) {
+ user_prefs->Initialize(scoped_ptr<components::UserPrefsDelegate>(
+ new ChromeUserPrefsDelegate).Pass());
+ }
}
// static

Powered by Google App Engine
This is Rietveld 408576698