Index: chrome/browser/extensions/extension_process_manager.cc |
diff --git a/chrome/browser/extensions/extension_process_manager.cc b/chrome/browser/extensions/extension_process_manager.cc |
index ae861fa34d8edd40929db103c9f28a5fa0849211..70a57a33ae6706809681480cf35a94873bcfa9d6 100644 |
--- a/chrome/browser/extensions/extension_process_manager.cc |
+++ b/chrome/browser/extensions/extension_process_manager.cc |
@@ -304,7 +304,10 @@ void ExtensionProcessManager::CreateBackgroundHost( |
extensions::VIEW_TYPE_EXTENSION_BACKGROUND_PAGE); |
#endif |
- host->CreateRenderViewSoon(); |
+ if (defer_background_host_creation_) |
Matt Perry
2013/08/31 00:22:23
Since you're doing this for all background hosts,
Greg Spencer (Chromium)
2013/09/03 19:09:31
Good point, that does simplify things. Done.
|
+ host->CreateRenderViewDeferred(); |
+ else |
+ host->CreateRenderViewSoon(); |
OnExtensionHostCreated(host, true); |
} |
@@ -544,6 +547,14 @@ void ExtensionProcessManager::CancelSuspend(const Extension* extension) { |
} |
} |
+void ExtensionProcessManager::DeferBackgroundHostCreation(bool defer) { |
+ defer_background_host_creation_ = defer; |
+} |
+ |
+void ExtensionProcessManager::CreateDeferredBackgroundHosts() { |
+ ExtensionHost::CreateDeferredRenderViews(); |
+} |
+ |
void ExtensionProcessManager::Observe( |
int type, |
const content::NotificationSource& source, |