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

Unified Diff: chrome/browser/prefs/pref_service_syncable.h

Issue 1326353002: Remove dependency of PrefSyncableService on Profile. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@pref_model_associator
Patch Set: Move files back to //chrome/browser/prefs & //chrome/test/base Created 5 years, 3 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/prefs/pref_service_syncable.h
diff --git a/chrome/browser/prefs/pref_service_syncable.h b/chrome/browser/prefs/pref_service_syncable.h
index da52017911454d014c83796fee049b9e098056fa..8f8bbf0e5adfec6ffc2f439ab99706ae5394dd7f 100644
--- a/chrome/browser/prefs/pref_service_syncable.h
+++ b/chrome/browser/prefs/pref_service_syncable.h
@@ -5,13 +5,15 @@
#ifndef CHROME_BROWSER_PREFS_PREF_SERVICE_SYNCABLE_H_
#define CHROME_BROWSER_PREFS_PREF_SERVICE_SYNCABLE_H_
+#include "base/callback_forward.h"
#include "base/prefs/pref_service.h"
#include "chrome/browser/prefs/pref_model_associator.h"
#include "chrome/browser/prefs/synced_pref_observer.h"
#include "components/pref_registry/pref_registry_syncable.h"
+class OverlayUserPrefStore;
+class PrefModelAssociatorClient;
class PrefServiceSyncableObserver;
-class Profile;
namespace syncer {
class SyncableService;
@@ -22,36 +24,31 @@ class SyncableService;
// this PrefService.
class PrefServiceSyncable : public PrefService {
public:
- // 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 PrefServiceFactory or one of its subclasses
// for simplified construction.
- PrefServiceSyncable(
- PrefNotifierImpl* pref_notifier,
- PrefValueStore* pref_value_store,
- PersistentPrefStore* user_prefs,
- user_prefs::PrefRegistrySyncable* pref_registry,
- base::Callback<void(PersistentPrefStore::PrefReadError)>
- read_error_callback,
- bool async);
+ PrefServiceSyncable(PrefNotifierImpl* pref_notifier,
+ PrefValueStore* pref_value_store,
+ PersistentPrefStore* user_prefs,
+ user_prefs::PrefRegistrySyncable* pref_registry,
+ base::Callback<void(PersistentPrefStore::PrefReadError)>
+ read_error_callback,
+ bool async);
~PrefServiceSyncable() override;
+ // Sets the PrefModelAssociatorClient that control special treatment of
+ // some preferences during synchronisation. Must be called before starting
+ // the synchronisation.
+ void SetPrefModelAssociatorClient(
+ PrefModelAssociatorClient* pref_model_associator_client);
gab 2015/09/10 14:15:09 Feels this should be a constructor input (since it
+
// Creates an incognito copy of the pref service that shares most pref stores
// but uses a fresh non-persistent overlay for the user pref store and an
// individual extension pref store (to cache the effective extension prefs for
// incognito windows).
gab 2015/09/10 14:15:09 Update comment.
PrefServiceSyncable* CreateIncognitoPrefService(
- PrefStore* incognito_extension_prefs);
+ PrefStore* incognito_extension_prefs,
+ const base::Callback<void(OverlayUserPrefStore*)>&
+ incognito_pref_created_cb);
// Returns true if preferences state has synchronized with the remote
// preferences. If true is returned it can be assumed the local preferences
@@ -104,6 +101,7 @@ class PrefServiceSyncable : public PrefService {
PrefModelAssociator pref_sync_associator_;
PrefModelAssociator priority_pref_sync_associator_;
+ PrefModelAssociatorClient* pref_model_associator_client_;
base::ObserverList<PrefServiceSyncableObserver> observer_list_;

Powered by Google App Engine
This is Rietveld 408576698