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

Unified Diff: extensions/browser/process_manager.cc

Issue 671763002: Extract ProcessManager from ExtensionSystem. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased. Created 6 years, 2 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
« no previous file with comments | « extensions/browser/process_manager.h ('k') | extensions/browser/process_manager_factory.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/browser/process_manager.cc
diff --git a/extensions/browser/process_manager.cc b/extensions/browser/process_manager.cc
index 141caed6b047d52578ac217ee515e9046a9b1e0f..fe583eaf70de29a6a7d9bba6b8986c5c9681d0ef 100644
--- a/extensions/browser/process_manager.cc
+++ b/extensions/browser/process_manager.cc
@@ -33,6 +33,7 @@
#include "extensions/browser/extensions_browser_client.h"
#include "extensions/browser/notification_types.h"
#include "extensions/browser/process_manager_delegate.h"
+#include "extensions/browser/process_manager_factory.h"
#include "extensions/browser/process_manager_observer.h"
#include "extensions/browser/view_type_utils.h"
#include "extensions/common/constants.h"
@@ -114,7 +115,6 @@ class IncognitoProcessManager : public ProcessManager {
public:
IncognitoProcessManager(BrowserContext* incognito_context,
BrowserContext* original_context,
- ProcessManager* original_manager,
ExtensionRegistry* extension_registry);
~IncognitoProcessManager() override {}
bool CreateBackgroundHost(const Extension* extension,
@@ -122,8 +122,6 @@ class IncognitoProcessManager : public ProcessManager {
SiteInstance* GetSiteInstanceForURL(const GURL& url) override;
private:
- ProcessManager* original_manager_;
-
DISALLOW_COPY_AND_ASSIGN(IncognitoProcessManager);
};
@@ -147,7 +145,7 @@ class RenderViewHostDestructionObserver
explicit RenderViewHostDestructionObserver(WebContents* web_contents)
: WebContentsObserver(web_contents) {
BrowserContext* context = web_contents->GetBrowserContext();
- process_manager_ = ExtensionSystem::Get(context)->process_manager();
+ process_manager_ = ProcessManager::Get(context);
}
friend class content::WebContentsUserData<RenderViewHostDestructionObserver>;
@@ -199,6 +197,11 @@ struct ProcessManager::BackgroundPageData {
//
// static
+ProcessManager* ProcessManager::Get(BrowserContext* context) {
+ return ProcessManagerFactory::GetForBrowserContext(context);
+}
+
+// static
ProcessManager* ProcessManager::Create(BrowserContext* context) {
ExtensionRegistry* extension_registry = ExtensionRegistry::Get(context);
ExtensionsBrowserClient* client = ExtensionsBrowserClient::Get();
@@ -213,10 +216,8 @@ ProcessManager* ProcessManager::Create(BrowserContext* context) {
if (context->IsOffTheRecord()) {
BrowserContext* original_context = client->GetOriginalContext(context);
- ProcessManager* original_manager =
- ExtensionSystem::Get(original_context)->process_manager();
return new IncognitoProcessManager(
- context, original_context, original_manager, extension_registry);
+ context, original_context, extension_registry);
}
return new ProcessManager(context, context, extension_registry);
@@ -234,13 +235,11 @@ ProcessManager* ProcessManager::CreateForTesting(
ProcessManager* ProcessManager::CreateIncognitoForTesting(
BrowserContext* incognito_context,
BrowserContext* original_context,
- ProcessManager* original_manager,
ExtensionRegistry* extension_registry) {
DCHECK(incognito_context->IsOffTheRecord());
DCHECK(!original_context->IsOffTheRecord());
return new IncognitoProcessManager(incognito_context,
original_context,
- original_manager,
extension_registry);
}
@@ -517,11 +516,7 @@ void ProcessManager::OnKeepaliveFromPlugin(int render_process_id,
if (!extension)
return;
- ProcessManager* pm = ExtensionSystem::Get(browser_context)->process_manager();
- if (!pm)
- return;
-
- pm->KeepaliveImpulse(extension);
+ ProcessManager::Get(browser_context)->KeepaliveImpulse(extension);
}
// DecrementLazyKeepaliveCount is called when no calls to KeepaliveImpulse
@@ -920,10 +915,8 @@ void ProcessManager::ClearBackgroundPageData(const std::string& extension_id) {
IncognitoProcessManager::IncognitoProcessManager(
BrowserContext* incognito_context,
BrowserContext* original_context,
- ProcessManager* original_manager,
ExtensionRegistry* extension_registry)
- : ProcessManager(incognito_context, original_context, extension_registry),
- original_manager_(original_manager) {
+ : ProcessManager(incognito_context, original_context, extension_registry) {
DCHECK(incognito_context->IsOffTheRecord());
// The original profile will have its own ProcessManager to
@@ -951,8 +944,11 @@ bool IncognitoProcessManager::CreateBackgroundHost(const Extension* extension,
SiteInstance* IncognitoProcessManager::GetSiteInstanceForURL(const GURL& url) {
const Extension* extension =
extension_registry_->enabled_extensions().GetExtensionOrAppByURL(url);
- if (extension && !IncognitoInfo::IsSplitMode(extension))
- return original_manager_->GetSiteInstanceForURL(url);
+ if (extension && !IncognitoInfo::IsSplitMode(extension)) {
+ BrowserContext* original_context =
+ ExtensionsBrowserClient::Get()->GetOriginalContext(GetBrowserContext());
+ return ProcessManager::Get(original_context)->GetSiteInstanceForURL(url);
+ }
return ProcessManager::GetSiteInstanceForURL(url);
}
« no previous file with comments | « extensions/browser/process_manager.h ('k') | extensions/browser/process_manager_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698