| 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_SERVICE_FACTORY_H
_ | 5 #ifndef COMPONENTS_KEYED_SERVICE_CONTENT_BROWSER_CONTEXT_KEYED_SERVICE_FACTORY_H
_ |
| 6 #define COMPONENTS_KEYED_SERVICE_CONTENT_BROWSER_CONTEXT_KEYED_SERVICE_FACTORY_H
_ | 6 #define COMPONENTS_KEYED_SERVICE_CONTENT_BROWSER_CONTEXT_KEYED_SERVICE_FACTORY_H
_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 // BrowserContextDependencyManager. For all non-test code, write your subclass | 49 // BrowserContextDependencyManager. For all non-test code, write your subclass |
| 50 // constructors like this: | 50 // constructors like this: |
| 51 // | 51 // |
| 52 // MyServiceFactory::MyServiceFactory() | 52 // MyServiceFactory::MyServiceFactory() |
| 53 // : BrowserContextKeyedServiceFactory( | 53 // : BrowserContextKeyedServiceFactory( |
| 54 // "MyService", | 54 // "MyService", |
| 55 // BrowserContextDependencyManager::GetInstance()) | 55 // BrowserContextDependencyManager::GetInstance()) |
| 56 // {} | 56 // {} |
| 57 BrowserContextKeyedServiceFactory(const char* name, | 57 BrowserContextKeyedServiceFactory(const char* name, |
| 58 BrowserContextDependencyManager* manager); | 58 BrowserContextDependencyManager* manager); |
| 59 virtual ~BrowserContextKeyedServiceFactory(); | 59 ~BrowserContextKeyedServiceFactory() override; |
| 60 | 60 |
| 61 // Common implementation that maps |context| to some service object. Deals | 61 // Common implementation that maps |context| to some service object. Deals |
| 62 // with incognito contexts per subclass instructions with | 62 // with incognito contexts per subclass instructions with |
| 63 // GetBrowserContextRedirectedInIncognito() and | 63 // GetBrowserContextRedirectedInIncognito() and |
| 64 // GetBrowserContextOwnInstanceInIncognito() through the | 64 // GetBrowserContextOwnInstanceInIncognito() through the |
| 65 // GetBrowserContextToUse() method on the base. If |create| is true, the | 65 // GetBrowserContextToUse() method on the base. If |create| is true, the |
| 66 // service will be created using BuildServiceInstanceFor() if it doesn't | 66 // service will be created using BuildServiceInstanceFor() if it doesn't |
| 67 // already exist. | 67 // already exist. |
| 68 KeyedService* GetServiceForBrowserContext(content::BrowserContext* context, | 68 KeyedService* GetServiceForBrowserContext(content::BrowserContext* context, |
| 69 bool create); | 69 bool create); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 84 // does a two pass shutdown. | 84 // does a two pass shutdown. |
| 85 // | 85 // |
| 86 // First, BrowserContextShutdown() is called on every ServiceFactory and will | 86 // First, BrowserContextShutdown() is called on every ServiceFactory and will |
| 87 // usually call KeyedService::Shutdown(), which gives each | 87 // usually call KeyedService::Shutdown(), which gives each |
| 88 // KeyedService a chance to remove dependencies on other | 88 // KeyedService a chance to remove dependencies on other |
| 89 // services that it may be holding. | 89 // services that it may be holding. |
| 90 // | 90 // |
| 91 // Secondly, BrowserContextDestroyed() is called on every ServiceFactory | 91 // Secondly, BrowserContextDestroyed() is called on every ServiceFactory |
| 92 // and the default implementation removes it from |mapping_| and deletes | 92 // and the default implementation removes it from |mapping_| and deletes |
| 93 // the pointer. | 93 // the pointer. |
| 94 virtual void BrowserContextShutdown(content::BrowserContext* context) | 94 void BrowserContextShutdown(content::BrowserContext* context) override; |
| 95 override; | 95 void BrowserContextDestroyed(content::BrowserContext* context) override; |
| 96 virtual void BrowserContextDestroyed(content::BrowserContext* context) | |
| 97 override; | |
| 98 | 96 |
| 99 virtual void SetEmptyTestingFactory(content::BrowserContext* context) | 97 void SetEmptyTestingFactory(content::BrowserContext* context) override; |
| 100 override; | 98 bool HasTestingFactory(content::BrowserContext* context) override; |
| 101 virtual bool HasTestingFactory(content::BrowserContext* context) override; | 99 void CreateServiceNow(content::BrowserContext* context) override; |
| 102 virtual void CreateServiceNow(content::BrowserContext* context) override; | |
| 103 | 100 |
| 104 private: | 101 private: |
| 105 friend class BrowserContextDependencyManager; | 102 friend class BrowserContextDependencyManager; |
| 106 friend class BrowserContextDependencyManagerUnittests; | 103 friend class BrowserContextDependencyManagerUnittests; |
| 107 | 104 |
| 108 typedef std::map<content::BrowserContext*, KeyedService*> | 105 typedef std::map<content::BrowserContext*, KeyedService*> |
| 109 BrowserContextKeyedServices; | 106 BrowserContextKeyedServices; |
| 110 typedef std::map<content::BrowserContext*, TestingFactoryFunction> | 107 typedef std::map<content::BrowserContext*, TestingFactoryFunction> |
| 111 BrowserContextOverriddenTestingFunctions; | 108 BrowserContextOverriddenTestingFunctions; |
| 112 | 109 |
| 113 // The mapping between a BrowserContext and its service. | 110 // The mapping between a BrowserContext and its service. |
| 114 BrowserContextKeyedServices mapping_; | 111 BrowserContextKeyedServices mapping_; |
| 115 | 112 |
| 116 // The mapping between a BrowserContext and its overridden | 113 // The mapping between a BrowserContext and its overridden |
| 117 // TestingFactoryFunction. | 114 // TestingFactoryFunction. |
| 118 BrowserContextOverriddenTestingFunctions testing_factories_; | 115 BrowserContextOverriddenTestingFunctions testing_factories_; |
| 119 | 116 |
| 120 DISALLOW_COPY_AND_ASSIGN(BrowserContextKeyedServiceFactory); | 117 DISALLOW_COPY_AND_ASSIGN(BrowserContextKeyedServiceFactory); |
| 121 }; | 118 }; |
| 122 | 119 |
| 123 #endif // COMPONENTS_KEYED_SERVICE_CONTENT_BROWSER_CONTEXT_KEYED_SERVICE_FACTOR
Y_H_ | 120 #endif // COMPONENTS_KEYED_SERVICE_CONTENT_BROWSER_CONTEXT_KEYED_SERVICE_FACTOR
Y_H_ |
| OLD | NEW |