extension_registry_factory.cc revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
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
3// found in the LICENSE file.
4
5#include "extensions/browser/extension_registry_factory.h"
6
7#include "components/keyed_service/content/browser_context_dependency_manager.h"
8#include "extensions/browser/extension_registry.h"
9#include "extensions/browser/extensions_browser_client.h"
10
11using content::BrowserContext;
12
13namespace extensions {
14
15// static
16ExtensionRegistry* ExtensionRegistryFactory::GetForBrowserContext(
17    BrowserContext* context) {
18  return static_cast<ExtensionRegistry*>(
19      GetInstance()->GetServiceForBrowserContext(context, true));
20}
21
22// static
23ExtensionRegistryFactory* ExtensionRegistryFactory::GetInstance() {
24  return Singleton<ExtensionRegistryFactory>::get();
25}
26
27ExtensionRegistryFactory::ExtensionRegistryFactory()
28    : BrowserContextKeyedServiceFactory(
29          "ExtensionRegistry",
30          BrowserContextDependencyManager::GetInstance()) {
31  // No dependencies on other services.
32}
33
34ExtensionRegistryFactory::~ExtensionRegistryFactory() {}
35
36KeyedService* ExtensionRegistryFactory::BuildServiceInstanceFor(
37    content::BrowserContext* context) const {
38  return new ExtensionRegistry;
39}
40
41BrowserContext* ExtensionRegistryFactory::GetBrowserContextToUse(
42    BrowserContext* context) const {
43  // Redirected in incognito.
44  return ExtensionsBrowserClient::Get()->GetOriginalContext(context);
45}
46
47}  // namespace extensions
48