Index: third_party/WebKit/Source/core/loader/FrameLoader.cpp |
diff --git a/third_party/WebKit/Source/core/loader/FrameLoader.cpp b/third_party/WebKit/Source/core/loader/FrameLoader.cpp |
index c04ce6ba981bb5fbdd1c7c76256e19bd0460672b..8bcca75ce95ae37b496f2ea1143073e72fb172ee 100644 |
--- a/third_party/WebKit/Source/core/loader/FrameLoader.cpp |
+++ b/third_party/WebKit/Source/core/loader/FrameLoader.cpp |
@@ -83,6 +83,7 @@ |
#include "core/xml/parser/XMLDocumentParser.h" |
#include "platform/Logging.h" |
#include "platform/PluginScriptForbiddenScope.h" |
+#include "platform/ScriptForbiddenScope.h" |
#include "platform/UserGestureIndicator.h" |
#include "platform/network/HTTPParsers.h" |
#include "platform/network/ResourceRequest.h" |
@@ -492,8 +493,13 @@ void FrameLoader::finishedParsing() |
m_progressTracker->finishedParsing(); |
- if (client()) |
+ if (client()) { |
+ ScriptForbiddenScope forbidScripts; |
client()->dispatchDidFinishDocumentLoad(m_documentLoader ? m_documentLoader->isCommittedButEmpty() : true); |
+ } |
+ |
+ if (client()) |
+ client()->runScriptsAtDocumentReady(); |
checkCompleted(); |
@@ -1495,9 +1501,16 @@ bool FrameLoader::shouldTreatURLAsSrcdocDocument(const KURL& url) const |
void FrameLoader::dispatchDocumentElementAvailable() |
{ |
+ ScriptForbiddenScope forbidScripts; |
client()->documentElementAvailable(); |
} |
+void FrameLoader::runScriptsAtDocumentElementAvailable() |
+{ |
+ client()->runScriptsAtDocumentElementAvailable(); |
+ // The frame might be detached at this point. |
+} |
+ |
void FrameLoader::dispatchDidClearDocumentOfWindowObject() |
{ |
if (!m_frame->script().canExecuteScripts(NotAboutToExecuteScript)) |