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

Unified Diff: chrome/browser/extensions/api/profile_keyed_api_factory.h

Issue 178193030: Rename ProfileKeyedAPI to BrowserContextKeyedAPI and GetProfile to Get. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nits Created 6 years, 10 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/extensions/api/profile_keyed_api_factory.h
diff --git a/chrome/browser/extensions/api/profile_keyed_api_factory.h b/chrome/browser/extensions/api/profile_keyed_api_factory.h
deleted file mode 100644
index 2a03de02c59111bc88a944cdfe16a9b5ba490bed..0000000000000000000000000000000000000000
--- a/chrome/browser/extensions/api/profile_keyed_api_factory.h
+++ /dev/null
@@ -1,138 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_EXTENSIONS_API_PROFILE_KEYED_API_FACTORY_H_
-#define CHROME_BROWSER_EXTENSIONS_API_PROFILE_KEYED_API_FACTORY_H_
-
-#include "components/browser_context_keyed_service/browser_context_dependency_manager.h"
-#include "components/browser_context_keyed_service/browser_context_keyed_service.h"
-#include "components/browser_context_keyed_service/browser_context_keyed_service_factory.h"
-#include "extensions/browser/extension_system_provider.h"
-#include "extensions/browser/extensions_browser_client.h"
-
-namespace extensions {
-
-template <typename T>
-class ProfileKeyedAPIFactory;
-
-// Instantiations of ProfileKeyedAPIFactory should use this base class
-// and also define a static const char* service_name() function (used in the
-// BrowserContextKeyedBaseFactory constructor). These fields should
-// be accessible to the ProfileKeyedAPIFactory for the service.
-class ProfileKeyedAPI : public BrowserContextKeyedService {
- protected:
- // Defaults for flags that control ProfileKeyedAPIFactory behavior.
- // These can be overridden by subclasses to change that behavior.
- // See BrowserContextKeyedBaseFactory for usage.
-
- // These flags affect what instance is returned when GetForProfile is called
- // on an incognito profile. By default, it returns NULL. If
- // kServiceRedirectedInIncognito is true, it returns the instance for the
- // corresponding regular profile. If kServiceHasOwnInstanceInIncognito
- // is true, it returns a separate instance.
- static const bool kServiceRedirectedInIncognito = false;
- static const bool kServiceHasOwnInstanceInIncognito = false;
-
- // If set to false, don't start the service at BrowserContext creation time.
- // (The default differs from the BrowserContextKeyedBaseFactory default,
- // because historically, ProfileKeyedAPIs often do tasks at startup.)
- static const bool kServiceIsCreatedWithBrowserContext = true;
-
- // If set to true, GetForProfile returns NULL for TestingBrowserContexts.
- static const bool kServiceIsNULLWhileTesting = false;
-
- // Users of this factory template must define a GetFactoryInstance()
- // and manage their own instances (typically using LazyInstance or
- // Singleton), because those cannot be included in more than one
- // translation unit (and thus cannot be initialized in a header file).
- //
- // In the header file, declare GetFactoryInstance(), e.g.:
- // class ProcessesAPI {
- // ...
- // public:
- // static ProfileKeyedAPIFactory<ProcessesAPI>* GetFactoryInstance();
- // };
- //
- // In the cc file, provide the implementation, e.g.:
- // static base::LazyInstance<ProfileKeyedAPIFactory<ProcessesAPI> >
- // g_factory = LAZY_INSTANCE_INITIALIZER;
- //
- // // static
- // ProfileKeyedAPIFactory<ProcessesAPI>*
- // ProcessesAPI::GetFactoryInstance() {
- // return g_factory.Pointer();
- // }
-};
-
-// A template for factories for BrowserContextKeyedServices that manage
-// extension APIs. T is a BrowserContextKeyedService that uses this factory
-// template instead of its own separate factory definition to manage its
-// per-profile instances.
-template <typename T>
-class ProfileKeyedAPIFactory : public BrowserContextKeyedServiceFactory {
- public:
- // TODO(yoz): Rename to Get().
- static T* GetForProfile(content::BrowserContext* context) {
- return static_cast<T*>(
- T::GetFactoryInstance()->GetServiceForBrowserContext(context, true));
- }
-
- // Declare dependencies on other factories.
- // By default, ExtensionSystemFactory is the only dependency; however,
- // specializations can override this. Declare your specialization in
- // your header file after the ProfileKeyedAPI class definition.
- // Then in the cc file (or inline in the header), define it, e.g.:
- // template <>
- // ProfileKeyedAPIFactory<PushMessagingAPI>::DeclareFactoryDependencies() {
- // DependsOn(ExtensionsBrowserClient::Get()->GetExtensionSystemFactory());
- // DependsOn(ProfileSyncServiceFactory::GetInstance());
- // }
- void DeclareFactoryDependencies() {
- DependsOn(ExtensionsBrowserClient::Get()->GetExtensionSystemFactory());
- }
-
- ProfileKeyedAPIFactory()
- : BrowserContextKeyedServiceFactory(
- T::service_name(),
- BrowserContextDependencyManager::GetInstance()) {
- DeclareFactoryDependencies();
- }
-
- virtual ~ProfileKeyedAPIFactory() {
- }
-
- private:
- // BrowserContextKeyedServiceFactory implementation.
- virtual BrowserContextKeyedService* BuildServiceInstanceFor(
- content::BrowserContext* context) const OVERRIDE {
- return new T(context);
- }
-
- // BrowserContextKeyedBaseFactory implementation.
- // These can be effectively overridden with template specializations.
- virtual content::BrowserContext* GetBrowserContextToUse(
- content::BrowserContext* context) const OVERRIDE {
- if (T::kServiceRedirectedInIncognito)
- return ExtensionsBrowserClient::Get()->GetOriginalContext(context);
-
- if (T::kServiceHasOwnInstanceInIncognito)
- return context;
-
- return BrowserContextKeyedServiceFactory::GetBrowserContextToUse(context);
- }
-
- virtual bool ServiceIsCreatedWithBrowserContext() const OVERRIDE {
- return T::kServiceIsCreatedWithBrowserContext;
- }
-
- virtual bool ServiceIsNULLWhileTesting() const OVERRIDE {
- return T::kServiceIsNULLWhileTesting;
- }
-
- DISALLOW_COPY_AND_ASSIGN(ProfileKeyedAPIFactory);
-};
-
-} // namespace extensions
-
-#endif // CHROME_BROWSER_EXTENSIONS_API_PROFILE_KEYED_API_FACTORY_H_

Powered by Google App Engine
This is Rietveld 408576698