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 79fd95656d74720228d4a485bd693f839b8f5eac..729ab6c02bc0c45d16ee64cae4dd100037f22619 100644 |
--- a/third_party/WebKit/Source/core/loader/FrameLoader.cpp |
+++ b/third_party/WebKit/Source/core/loader/FrameLoader.cpp |
@@ -84,6 +84,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" |
@@ -494,8 +495,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(); |
@@ -1498,9 +1504,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)) |