diff options
author | reillyg <reillyg@chromium.org> | 2014-10-28 08:30:23 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-28 15:30:47 +0000 |
commit | 0ea3fa90a36f091c943e286ade39b0252e5d34d7 (patch) | |
tree | 46bbe1b91e168c2d172699f5a1a52dd8634f33be /extensions/browser/process_manager_factory.cc | |
parent | ecfca4638d05a0f4b5839f52a00ed4ebc4d3f756 (diff) | |
download | chromium_src-0ea3fa90a36f091c943e286ade39b0252e5d34d7.zip chromium_src-0ea3fa90a36f091c943e286ade39b0252e5d34d7.tar.gz chromium_src-0ea3fa90a36f091c943e286ade39b0252e5d34d7.tar.bz2 |
Extract ProcessManager from ExtensionSystem.
This change removes ProcessManager's //chrome dependency because while
ProcessManager and ExtensionSystem are in //extensions the
ExtensionSystemFactory is in //chrome. This allows a service in
//extensions to declare a dependency on the ProcessManager's factory
directly.
Most of this patch is changing,
extensions::ExtensionSystem::Get(profile_)->process_manager() to, extensions::ProcessManager::Get(profile_).
BUG=
TBR=erikwright@chromium.org
Review URL: https://codereview.chromium.org/671763002
Cr-Commit-Position: refs/heads/master@{#301636}
Diffstat (limited to 'extensions/browser/process_manager_factory.cc')
-rw-r--r-- | extensions/browser/process_manager_factory.cc | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/extensions/browser/process_manager_factory.cc b/extensions/browser/process_manager_factory.cc new file mode 100644 index 0000000..370b151 --- /dev/null +++ b/extensions/browser/process_manager_factory.cc @@ -0,0 +1,55 @@ +// 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 "components/keyed_service/content/browser_context_dependency_manager.h" +#include "extensions/browser/extension_registry_factory.h" +#include "extensions/browser/process_manager.h" +#include "extensions/browser/process_manager_factory.h" + +using content::BrowserContext; + +namespace extensions { + +// static +ProcessManager* ProcessManagerFactory::GetForBrowserContext( + BrowserContext* context) { + return static_cast<ProcessManager*>( + GetInstance()->GetServiceForBrowserContext(context, true)); +} + +// static +ProcessManager* ProcessManagerFactory::GetForBrowserContextIfExists( + BrowserContext* context) { + return static_cast<ProcessManager*>( + GetInstance()->GetServiceForBrowserContext(context, false)); +} + +// static +ProcessManagerFactory* ProcessManagerFactory::GetInstance() { + return Singleton<ProcessManagerFactory>::get(); +} + +ProcessManagerFactory::ProcessManagerFactory() + : BrowserContextKeyedServiceFactory( + "ProcessManager", + BrowserContextDependencyManager::GetInstance()) { + DependsOn(extensions::ExtensionRegistryFactory::GetInstance()); +} + +ProcessManagerFactory::~ProcessManagerFactory() { +} + +KeyedService* ProcessManagerFactory::BuildServiceInstanceFor( + BrowserContext* context) const { + return ProcessManager::Create(context); +} + +BrowserContext* ProcessManagerFactory::GetBrowserContextToUse( + BrowserContext* context) const { + // ProcessManager::Create handles guest and incognito profiles, returning an + // IncognitoProcessManager in incognito mode. + return context; +} + +} // namespace extensions |