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

Side by Side Diff: components/sync_preferences/pref_service_syncable_factory.h

Issue 2740493002: Pref service: create service at browser startup (Closed)
Patch Set: Merge Created 3 years, 9 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 COMPONENTS_SYNC_PREFERENCES_PREF_SERVICE_SYNCABLE_FACTORY_H_ 5 #ifndef COMPONENTS_SYNC_PREFERENCES_PREF_SERVICE_SYNCABLE_FACTORY_H_
6 #define COMPONENTS_SYNC_PREFERENCES_PREF_SERVICE_SYNCABLE_FACTORY_H_ 6 #define COMPONENTS_SYNC_PREFERENCES_PREF_SERVICE_SYNCABLE_FACTORY_H_
7 7
8 #include <memory> 8 #include <memory>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "components/prefs/pref_service_factory.h" 11 #include "components/prefs/pref_service_factory.h"
12 12
13 namespace policy { 13 namespace policy {
14 class BrowserPolicyConnector; 14 class BrowserPolicyConnector;
15 class PolicyService; 15 class PolicyService;
16 } 16 }
17 17
18 namespace service_manager {
19 class Connector;
20 }
21
18 namespace user_prefs { 22 namespace user_prefs {
19 class PrefRegistrySyncable; 23 class PrefRegistrySyncable;
20 } 24 }
21 25
22 namespace sync_preferences { 26 namespace sync_preferences {
23 27
24 class PrefModelAssociatorClient; 28 class PrefModelAssociatorClient;
25 class PrefServiceSyncable; 29 class PrefServiceSyncable;
26 30
27 // A PrefServiceFactory that also knows how to build a 31 // A PrefServiceFactory that also knows how to build a
28 // PrefServiceSyncable, and may know about Chrome concepts such as 32 // PrefServiceSyncable, and may know about Chrome concepts such as
29 // PolicyService. 33 // PolicyService.
30 class PrefServiceSyncableFactory : public PrefServiceFactory { 34 class PrefServiceSyncableFactory : public PrefServiceFactory {
31 public: 35 public:
32 PrefServiceSyncableFactory(); 36 PrefServiceSyncableFactory();
33 ~PrefServiceSyncableFactory() override; 37 ~PrefServiceSyncableFactory() override;
34 38
35 // Set up policy pref stores using the given policy service and connector. 39 // Set up policy pref stores using the given policy service and connector.
36 // These will assert when policy is not used. 40 // These will assert when policy is not used.
37 void SetManagedPolicies(policy::PolicyService* service, 41 void SetManagedPolicies(policy::PolicyService* service,
38 policy::BrowserPolicyConnector* connector); 42 policy::BrowserPolicyConnector* connector);
39 void SetRecommendedPolicies(policy::PolicyService* service, 43 void SetRecommendedPolicies(policy::PolicyService* service,
40 policy::BrowserPolicyConnector* connector); 44 policy::BrowserPolicyConnector* connector);
41 45
42 void SetPrefModelAssociatorClient( 46 void SetPrefModelAssociatorClient(
43 PrefModelAssociatorClient* pref_model_associator_client); 47 PrefModelAssociatorClient* pref_model_associator_client);
44 48
49 // |connector| might be null during test or if we're not using the Mojo pref
50 // |service.
45 std::unique_ptr<PrefServiceSyncable> CreateSyncable( 51 std::unique_ptr<PrefServiceSyncable> CreateSyncable(
46 user_prefs::PrefRegistrySyncable* registry); 52 user_prefs::PrefRegistrySyncable* registry,
53 service_manager::Connector* connector = nullptr);
47 54
48 private: 55 private:
49 PrefModelAssociatorClient* pref_model_associator_client_; 56 PrefModelAssociatorClient* pref_model_associator_client_;
50 57
51 DISALLOW_COPY_AND_ASSIGN(PrefServiceSyncableFactory); 58 DISALLOW_COPY_AND_ASSIGN(PrefServiceSyncableFactory);
52 }; 59 };
53 60
54 } // namespace sync_preferences 61 } // namespace sync_preferences
55 62
56 #endif // COMPONENTS_SYNC_PREFERENCES_PREF_SERVICE_SYNCABLE_FACTORY_H_ 63 #endif // COMPONENTS_SYNC_PREFERENCES_PREF_SERVICE_SYNCABLE_FACTORY_H_
OLDNEW
« no previous file with comments | « components/sync_preferences/DEPS ('k') | components/sync_preferences/pref_service_syncable_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698