| 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);
|
| }
|
|
|