OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_KEYED_SERVICE_CONTENT_BROWSER_CONTEXT_KEYED_BASE_FACTORY_H_ | 5 #ifndef COMPONENTS_KEYED_SERVICE_CONTENT_BROWSER_CONTEXT_KEYED_BASE_FACTORY_H_ |
6 #define COMPONENTS_KEYED_SERVICE_CONTENT_BROWSER_CONTEXT_KEYED_BASE_FACTORY_H_ | 6 #define COMPONENTS_KEYED_SERVICE_CONTENT_BROWSER_CONTEXT_KEYED_BASE_FACTORY_H_ |
7 | 7 |
8 #include "components/keyed_service/core/keyed_service_base_factory.h" | 8 #include "components/keyed_service/core/keyed_service_base_factory.h" |
9 #include "components/keyed_service/core/keyed_service_export.h" | 9 #include "components/keyed_service/core/keyed_service_export.h" |
10 | 10 |
(...skipping 25 matching lines...) Expand all Loading... |
36 // attached to a single |context|. Only test code is allowed to call this | 36 // attached to a single |context|. Only test code is allowed to call this |
37 // method. | 37 // method. |
38 // TODO(gab): This method can be removed entirely when | 38 // TODO(gab): This method can be removed entirely when |
39 // PrefService::DeprecatedGetPrefRegistry() is phased out. | 39 // PrefService::DeprecatedGetPrefRegistry() is phased out. |
40 void RegisterUserPrefsOnBrowserContextForTest( | 40 void RegisterUserPrefsOnBrowserContextForTest( |
41 content::BrowserContext* context); | 41 content::BrowserContext* context); |
42 | 42 |
43 protected: | 43 protected: |
44 BrowserContextKeyedBaseFactory(const char* name, | 44 BrowserContextKeyedBaseFactory(const char* name, |
45 BrowserContextDependencyManager* manager); | 45 BrowserContextDependencyManager* manager); |
46 virtual ~BrowserContextKeyedBaseFactory(); | 46 ~BrowserContextKeyedBaseFactory() override; |
47 | 47 |
48 // Interface for people building a concrete FooServiceFactory: -------------- | 48 // Interface for people building a concrete FooServiceFactory: -------------- |
49 | 49 |
50 // Finds which browser context (if any) to use. | 50 // Finds which browser context (if any) to use. |
51 virtual content::BrowserContext* GetBrowserContextToUse( | 51 virtual content::BrowserContext* GetBrowserContextToUse( |
52 content::BrowserContext* context) const; | 52 content::BrowserContext* context) const; |
53 | 53 |
54 // By default, we create instances of a service lazily and wait until | 54 // By default, we create instances of a service lazily and wait until |
55 // GetForBrowserContext() is called on our subclass. Some services need to be | 55 // GetForBrowserContext() is called on our subclass. Some services need to be |
56 // created as soon as the BrowserContext has been brought up. | 56 // created as soon as the BrowserContext has been brought up. |
57 virtual bool ServiceIsCreatedWithBrowserContext() const; | 57 virtual bool ServiceIsCreatedWithBrowserContext() const; |
58 | 58 |
59 // By default, TestingBrowserContexts will be treated like normal contexts. | 59 // By default, TestingBrowserContexts will be treated like normal contexts. |
60 // You can override this so that by default, the service associated with the | 60 // You can override this so that by default, the service associated with the |
61 // TestingBrowserContext is NULL. (This is just a shortcut around | 61 // TestingBrowserContext is NULL. (This is just a shortcut around |
62 // SetTestingFactory() to make sure our contexts don't directly refer to the | 62 // SetTestingFactory() to make sure our contexts don't directly refer to the |
63 // services they use.) | 63 // services they use.) |
64 virtual bool ServiceIsNULLWhileTesting() const override; | 64 bool ServiceIsNULLWhileTesting() const override; |
65 | 65 |
66 // Interface for people building a type of BrowserContextKeyedFactory: ------- | 66 // Interface for people building a type of BrowserContextKeyedFactory: ------- |
67 | 67 |
68 // A helper object actually listens for notifications about BrowserContext | 68 // A helper object actually listens for notifications about BrowserContext |
69 // destruction, calculates the order in which things are destroyed and then | 69 // destruction, calculates the order in which things are destroyed and then |
70 // does a two pass shutdown. | 70 // does a two pass shutdown. |
71 // | 71 // |
72 // It is up to the individual factory types to determine what this two pass | 72 // It is up to the individual factory types to determine what this two pass |
73 // shutdown means. The general framework guarantees the following: | 73 // shutdown means. The general framework guarantees the following: |
74 // | 74 // |
(...skipping 20 matching lines...) Expand all Loading... |
95 virtual void SetEmptyTestingFactory(content::BrowserContext* context) = 0; | 95 virtual void SetEmptyTestingFactory(content::BrowserContext* context) = 0; |
96 | 96 |
97 // Returns true if a testing factory function has been set for |context|. | 97 // Returns true if a testing factory function has been set for |context|. |
98 virtual bool HasTestingFactory(content::BrowserContext* context) = 0; | 98 virtual bool HasTestingFactory(content::BrowserContext* context) = 0; |
99 | 99 |
100 // We also need a generalized, non-returning method that generates the object | 100 // We also need a generalized, non-returning method that generates the object |
101 // now for when we're creating the context. | 101 // now for when we're creating the context. |
102 virtual void CreateServiceNow(content::BrowserContext* context) = 0; | 102 virtual void CreateServiceNow(content::BrowserContext* context) = 0; |
103 | 103 |
104 // KeyedServiceBaseFactory: | 104 // KeyedServiceBaseFactory: |
105 virtual user_prefs::PrefRegistrySyncable* GetAssociatedPrefRegistry( | 105 user_prefs::PrefRegistrySyncable* GetAssociatedPrefRegistry( |
106 base::SupportsUserData* context) const final; | 106 base::SupportsUserData* context) const final; |
107 virtual base::SupportsUserData* GetContextToUse( | 107 base::SupportsUserData* GetContextToUse( |
108 base::SupportsUserData* context) const final; | 108 base::SupportsUserData* context) const final; |
109 virtual bool ServiceIsCreatedWithContext() const final; | 109 bool ServiceIsCreatedWithContext() const final; |
110 virtual void ContextShutdown(base::SupportsUserData* context) final; | 110 void ContextShutdown(base::SupportsUserData* context) final; |
111 virtual void ContextDestroyed(base::SupportsUserData* context) final; | 111 void ContextDestroyed(base::SupportsUserData* context) final; |
112 virtual void RegisterPrefs(user_prefs::PrefRegistrySyncable* registry) final; | 112 void RegisterPrefs(user_prefs::PrefRegistrySyncable* registry) final; |
113 virtual void SetEmptyTestingFactory(base::SupportsUserData* context) final; | 113 void SetEmptyTestingFactory(base::SupportsUserData* context) final; |
114 virtual bool HasTestingFactory(base::SupportsUserData* context) final; | 114 bool HasTestingFactory(base::SupportsUserData* context) final; |
115 virtual void CreateServiceNow(base::SupportsUserData* context) final; | 115 void CreateServiceNow(base::SupportsUserData* context) final; |
116 }; | 116 }; |
117 | 117 |
118 #endif // COMPONENTS_KEYED_SERVICE_CONTENT_BROWSER_CONTEXT_KEYED_BASE_FACTORY_H
_ | 118 #endif // COMPONENTS_KEYED_SERVICE_CONTENT_BROWSER_CONTEXT_KEYED_BASE_FACTORY_H
_ |
OLD | NEW |