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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_PREFS_PREF_SERVICE_SYNCABLE_H_ 5 #ifndef CHROME_BROWSER_PREFS_PREF_SERVICE_SYNCABLE_H_
6 #define CHROME_BROWSER_PREFS_PREF_SERVICE_SYNCABLE_H_ 6 #define CHROME_BROWSER_PREFS_PREF_SERVICE_SYNCABLE_H_
7 7
8 #include "base/callback_forward.h"
8 #include "base/prefs/pref_service.h" 9 #include "base/prefs/pref_service.h"
9 #include "chrome/browser/prefs/pref_model_associator.h" 10 #include "chrome/browser/prefs/pref_model_associator.h"
10 #include "chrome/browser/prefs/synced_pref_observer.h" 11 #include "chrome/browser/prefs/synced_pref_observer.h"
11 #include "components/pref_registry/pref_registry_syncable.h" 12 #include "components/pref_registry/pref_registry_syncable.h"
12 13
14 class OverlayUserPrefStore;
15 class PrefModelAssociatorClient;
13 class PrefServiceSyncableObserver; 16 class PrefServiceSyncableObserver;
14 class Profile;
15 17
16 namespace syncer { 18 namespace syncer {
17 class SyncableService; 19 class SyncableService;
18 } 20 }
19 21
20 // A PrefService that can be synced. Users are forced to declare 22 // A PrefService that can be synced. Users are forced to declare
21 // whether preferences are syncable or not when registering them to 23 // whether preferences are syncable or not when registering them to
22 // this PrefService. 24 // this PrefService.
23 class PrefServiceSyncable : public PrefService { 25 class PrefServiceSyncable : public PrefService {
24 public: 26 public:
25 // PrefServiceSyncable is a PrefService with added integration for
26 // sync, and knowledge of how to create an incognito
27 // PrefService. For code that does not need to know about the sync
28 // integration, you should use only the plain PrefService type.
29 //
30 // For this reason, Profile does not expose an accessor for the
31 // PrefServiceSyncable type. Instead, you can use the utilities
32 // below to retrieve the PrefServiceSyncable (or its incognito
33 // version) from a Profile.
34 static PrefServiceSyncable* FromProfile(Profile* profile);
35 static PrefServiceSyncable* IncognitoFromProfile(Profile* profile);
36
37 // You may wish to use PrefServiceFactory or one of its subclasses 27 // You may wish to use PrefServiceFactory or one of its subclasses
38 // for simplified construction. 28 // for simplified construction.
39 PrefServiceSyncable( 29 PrefServiceSyncable(PrefNotifierImpl* pref_notifier,
40 PrefNotifierImpl* pref_notifier, 30 PrefValueStore* pref_value_store,
41 PrefValueStore* pref_value_store, 31 PersistentPrefStore* user_prefs,
42 PersistentPrefStore* user_prefs, 32 user_prefs::PrefRegistrySyncable* pref_registry,
43 user_prefs::PrefRegistrySyncable* pref_registry, 33 base::Callback<void(PersistentPrefStore::PrefReadError)>
44 base::Callback<void(PersistentPrefStore::PrefReadError)> 34 read_error_callback,
45 read_error_callback, 35 bool async);
46 bool async);
47 ~PrefServiceSyncable() override; 36 ~PrefServiceSyncable() override;
48 37
38 // Sets the PrefModelAssociatorClient that control special treatment of
39 // some preferences during synchronisation. Must be called before starting
40 // the synchronisation.
41 void SetPrefModelAssociatorClient(
42 PrefModelAssociatorClient* pref_model_associator_client);
gab 2015/09/10 14:15:09 Feels this should be a constructor input (since it
43
49 // Creates an incognito copy of the pref service that shares most pref stores 44 // Creates an incognito copy of the pref service that shares most pref stores
50 // but uses a fresh non-persistent overlay for the user pref store and an 45 // but uses a fresh non-persistent overlay for the user pref store and an
51 // individual extension pref store (to cache the effective extension prefs for 46 // individual extension pref store (to cache the effective extension prefs for
52 // incognito windows). 47 // incognito windows).
gab 2015/09/10 14:15:09 Update comment.
53 PrefServiceSyncable* CreateIncognitoPrefService( 48 PrefServiceSyncable* CreateIncognitoPrefService(
54 PrefStore* incognito_extension_prefs); 49 PrefStore* incognito_extension_prefs,
50 const base::Callback<void(OverlayUserPrefStore*)>&
51 incognito_pref_created_cb);
55 52
56 // Returns true if preferences state has synchronized with the remote 53 // Returns true if preferences state has synchronized with the remote
57 // preferences. If true is returned it can be assumed the local preferences 54 // preferences. If true is returned it can be assumed the local preferences
58 // has applied changes from the remote preferences. The two may not be 55 // has applied changes from the remote preferences. The two may not be
59 // identical if a change is in flight (from either side). 56 // identical if a change is in flight (from either side).
60 // 57 //
61 // TODO(albertb): Given that we now support priority preferences, callers of 58 // TODO(albertb): Given that we now support priority preferences, callers of
62 // this method are likely better off making the preferences they care about 59 // this method are likely better off making the preferences they care about
63 // into priority preferences and calling IsPrioritySyncing(). 60 // into priority preferences and calling IsPrioritySyncing().
64 bool IsSyncing(); 61 bool IsSyncing();
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 // Process a local preference change. This can trigger new SyncChanges being 94 // Process a local preference change. This can trigger new SyncChanges being
98 // sent to the syncer. 95 // sent to the syncer.
99 void ProcessPrefChange(const std::string& name); 96 void ProcessPrefChange(const std::string& name);
100 97
101 // Whether CreateIncognitoPrefService() has been called to create a 98 // Whether CreateIncognitoPrefService() has been called to create a
102 // "forked" PrefService. 99 // "forked" PrefService.
103 bool pref_service_forked_; 100 bool pref_service_forked_;
104 101
105 PrefModelAssociator pref_sync_associator_; 102 PrefModelAssociator pref_sync_associator_;
106 PrefModelAssociator priority_pref_sync_associator_; 103 PrefModelAssociator priority_pref_sync_associator_;
104 PrefModelAssociatorClient* pref_model_associator_client_;
107 105
108 base::ObserverList<PrefServiceSyncableObserver> observer_list_; 106 base::ObserverList<PrefServiceSyncableObserver> observer_list_;
109 107
110 DISALLOW_COPY_AND_ASSIGN(PrefServiceSyncable); 108 DISALLOW_COPY_AND_ASSIGN(PrefServiceSyncable);
111 }; 109 };
112 110
113 #endif // CHROME_BROWSER_PREFS_PREF_SERVICE_SYNCABLE_H_ 111 #endif // CHROME_BROWSER_PREFS_PREF_SERVICE_SYNCABLE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698