| Index: extensions/browser/process_manager.cc
|
| diff --git a/extensions/browser/process_manager.cc b/extensions/browser/process_manager.cc
|
| index 721bc14cb976272c0b1ce30bdcd304a70c8f4959..6298553ebe7cd64742d01e73d6c6690f3cef6ba1 100644
|
| --- a/extensions/browser/process_manager.cc
|
| +++ b/extensions/browser/process_manager.cc
|
| @@ -95,7 +95,8 @@ void OnRenderViewHostUnregistered(BrowserContext* context,
|
| class IncognitoProcessManager : public ProcessManager {
|
| public:
|
| IncognitoProcessManager(BrowserContext* incognito_context,
|
| - BrowserContext* original_context);
|
| + BrowserContext* original_context,
|
| + ProcessManager* original_manager);
|
| virtual ~IncognitoProcessManager() {}
|
| virtual bool CreateBackgroundHost(const Extension* extension,
|
| const GURL& url) OVERRIDE;
|
| @@ -189,12 +190,26 @@ ProcessManager* ProcessManager::Create(BrowserContext* context) {
|
|
|
| if (context->IsOffTheRecord()) {
|
| BrowserContext* original_context = client->GetOriginalContext(context);
|
| - return new IncognitoProcessManager(context, original_context);
|
| + ProcessManager* original_manager =
|
| + ExtensionSystem::Get(original_context)->process_manager();
|
| + return new IncognitoProcessManager(
|
| + context, original_context, original_manager);
|
| }
|
|
|
| return new ProcessManager(context, context);
|
| }
|
|
|
| +// static
|
| +ProcessManager* ProcessManager::CreateIncognitoForTesting(
|
| + BrowserContext* incognito_context,
|
| + BrowserContext* original_context,
|
| + ProcessManager* original_manager) {
|
| + DCHECK(incognito_context->IsOffTheRecord());
|
| + DCHECK(!original_context->IsOffTheRecord());
|
| + return new IncognitoProcessManager(
|
| + incognito_context, original_context, original_manager);
|
| +}
|
| +
|
| ProcessManager::ProcessManager(BrowserContext* context,
|
| BrowserContext* original_context)
|
| : site_instance_(SiteInstance::Create(context)),
|
| @@ -861,10 +876,10 @@ bool ProcessManager::DeferLoadingBackgroundHosts() const {
|
|
|
| IncognitoProcessManager::IncognitoProcessManager(
|
| BrowserContext* incognito_context,
|
| - BrowserContext* original_context)
|
| + BrowserContext* original_context,
|
| + ProcessManager* original_manager)
|
| : ProcessManager(incognito_context, original_context),
|
| - original_manager_(
|
| - ExtensionSystem::Get(original_context)->process_manager()) {
|
| + original_manager_(original_manager) {
|
| DCHECK(incognito_context->IsOffTheRecord());
|
|
|
| // The original profile will have its own ProcessManager to
|
|
|