Index: extensions/browser/process_manager.cc |
diff --git a/extensions/browser/process_manager.cc b/extensions/browser/process_manager.cc |
index dc3b5e71266cc0a0b0c4ed56d36d244f6ed572b3..75f56052a39d29ac362157e49f239fa33de25feb 100644 |
--- a/extensions/browser/process_manager.cc |
+++ b/extensions/browser/process_manager.cc |
@@ -365,7 +365,8 @@ bool ProcessManager::CreateBackgroundHost(const Extension* extension, |
// Don't create hosts if the embedder doesn't allow it. |
ProcessManagerDelegate* delegate = |
ExtensionsBrowserClient::Get()->GetProcessManagerDelegate(); |
- if (delegate && !delegate->IsBackgroundPageAllowed(browser_context_)) |
+ if (delegate && |
+ !delegate->IsBackgroundPageAllowed(browser_context_, extension)) |
Devlin
2017/03/13 19:39:35
We check this in three different places now, makin
achuithb
2017/03/15 00:40:25
It does seem that way :/
What would you propose?
|
return false; |
// Don't create multiple background hosts for an extension. |
@@ -387,7 +388,7 @@ void ProcessManager::MaybeCreateStartupBackgroundHosts() { |
// The embedder might disallow background pages entirely. |
ProcessManagerDelegate* delegate = |
ExtensionsBrowserClient::Get()->GetProcessManagerDelegate(); |
- if (delegate && !delegate->IsBackgroundPageAllowed(browser_context_)) |
+ if (delegate && !delegate->IsBackgroundPageAllowed(browser_context_, nullptr)) |
achuithb
2017/03/15 00:40:25
We could potentially drop this check since we chec
Devlin
2017/03/17 16:37:23
This one is somewhat beneficial, since it helps us
achuithb
2017/03/22 00:15:53
Done.
|
return; |
// The embedder might want to defer background page loading. For example, |
@@ -703,9 +704,13 @@ void ProcessManager::OnExtensionUnloaded( |
void ProcessManager::CreateStartupBackgroundHosts() { |
DCHECK(!startup_background_hosts_created_); |
+ ProcessManagerDelegate* delegate = |
+ ExtensionsBrowserClient::Get()->GetProcessManagerDelegate(); |
for (const scoped_refptr<const Extension>& extension : |
extension_registry_->enabled_extensions()) { |
- CreateBackgroundHostForExtensionLoad(this, extension.get()); |
+ if (delegate && |
+ delegate->IsBackgroundPageAllowed(browser_context_, extension.get())) |
Devlin
2017/03/17 16:37:23
This one should be able to be avoided - we'll chec
achuithb
2017/03/22 00:15:53
Done.
|
+ CreateBackgroundHostForExtensionLoad(this, extension.get()); |
for (auto& observer : observer_list_) |
observer.OnBackgroundHostStartup(extension.get()); |
} |