Index: third_party/WebKit/Source/bindings/core/v8/ScriptController.cpp |
diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptController.cpp b/third_party/WebKit/Source/bindings/core/v8/ScriptController.cpp |
index d7464e062606c5634c0b979b8fc6247717233d79..f5c668d369b7625c137010f6ede4194ed6d01374 100644 |
--- a/third_party/WebKit/Source/bindings/core/v8/ScriptController.cpp |
+++ b/third_party/WebKit/Source/bindings/core/v8/ScriptController.cpp |
@@ -266,8 +266,14 @@ void ScriptController::collectIsolatedContexts(Vector<std::pair<ScriptState*, Se |
void ScriptController::updateDocument() |
{ |
+ bool forceMainWorldInitialization = false; |
+ if (canExecuteScripts(NotAboutToExecuteScript) && !frame()->loader().stateMachine()->creatingInitialEmptyDocument()) { |
+ Settings* settings = frame()->settings(); |
+ forceMainWorldInitialization = settings && settings->forceMainWorldInitialization(); |
+ } |
+ |
// For an uninitialized main window windowProxy, do not incur the cost of context initialization. |
- if (!m_windowProxyManager->mainWorldProxy()->isGlobalInitialized()) |
+ if (!forceMainWorldInitialization && !m_windowProxyManager->mainWorldProxy()->isGlobalInitialized()) |
return; |
if (!initializeMainWorld()) |