summaryrefslogtreecommitdiffstats
path: root/extensions/browser/process_map_factory.cc
diff options
context:
space:
mode:
authorjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-17 18:09:08 +0000
committerjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-17 18:09:08 +0000
commitfafdc84997a58392bb59046730c9be6948242c2f (patch)
tree2463200804eebabc7037b3defaff70429c571c1b /extensions/browser/process_map_factory.cc
parenteb02d47797f9eefa9524975efda8f9bd3c9f1c8f (diff)
downloadchromium_src-fafdc84997a58392bb59046730c9be6948242c2f.zip
chromium_src-fafdc84997a58392bb59046730c9be6948242c2f.tar.gz
chromium_src-fafdc84997a58392bb59046730c9be6948242c2f.tar.bz2
Convert extensions::ProcessMap to BrowserContextKeyedService
This allows us to remove more ExtensionService dependencies, which we need to do because app_shell doesn't have an ExtensionService. BUG=334706 TEST=existing unit_tests, browser_tests TBR=sky@chromium.org for mechanical changes across the non-extensions bits of chrome/browser/ Review URL: https://codereview.chromium.org/139943005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245556 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'extensions/browser/process_map_factory.cc')
-rw-r--r--extensions/browser/process_map_factory.cc46
1 files changed, 46 insertions, 0 deletions
diff --git a/extensions/browser/process_map_factory.cc b/extensions/browser/process_map_factory.cc
new file mode 100644
index 0000000..1351f22
--- /dev/null
+++ b/extensions/browser/process_map_factory.cc
@@ -0,0 +1,46 @@
+// Copyright 2014 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.
+
+#include "extensions/browser/process_map_factory.h"
+
+#include "components/browser_context_keyed_service/browser_context_dependency_manager.h"
+#include "extensions/browser/extensions_browser_client.h"
+#include "extensions/browser/process_map.h"
+
+using content::BrowserContext;
+
+namespace extensions {
+
+// static
+ProcessMap* ProcessMapFactory::GetForBrowserContext(BrowserContext* context) {
+ return static_cast<ProcessMap*>(
+ GetInstance()->GetServiceForBrowserContext(context, true));
+}
+
+// static
+ProcessMapFactory* ProcessMapFactory::GetInstance() {
+ return Singleton<ProcessMapFactory>::get();
+}
+
+ProcessMapFactory::ProcessMapFactory()
+ : BrowserContextKeyedServiceFactory(
+ "ProcessMap",
+ BrowserContextDependencyManager::GetInstance()) {
+ // No dependencies on other services.
+}
+
+ProcessMapFactory::~ProcessMapFactory() {}
+
+BrowserContextKeyedService* ProcessMapFactory::BuildServiceInstanceFor(
+ BrowserContext* context) const {
+ return new ProcessMap;
+}
+
+BrowserContext* ProcessMapFactory::GetBrowserContextToUse(
+ BrowserContext* context) const {
+ // Redirected in incognito.
+ return ExtensionsBrowserClient::Get()->GetOriginalContext(context);
+}
+
+} // namespace extensions