Index: Source/core/html/parser/HTMLScriptRunner.cpp |
diff --git a/Source/core/html/parser/HTMLScriptRunner.cpp b/Source/core/html/parser/HTMLScriptRunner.cpp |
index 91e008b4ca370d5714c448ded81c215f60c1d77e..6a66243a9f6a0a17540d401b21443727dee5ebc5 100644 |
--- a/Source/core/html/parser/HTMLScriptRunner.cpp |
+++ b/Source/core/html/parser/HTMLScriptRunner.cpp |
@@ -244,9 +244,9 @@ bool HTMLScriptRunner::executeScriptsWaitingForParsing() |
return true; |
} |
-void HTMLScriptRunner::requestParsingBlockingScript(Element* element) |
+void HTMLScriptRunner::requestParsingBlockingScript(const ResourcePtr<ScriptResource>& resource, Element* element) |
{ |
- if (!requestPendingScript(m_parserBlockingScript, element)) |
+ if (!requestPendingScript(resource, m_parserBlockingScript, element)) |
return; |
ASSERT(m_parserBlockingScript.resource()); |
@@ -258,27 +258,26 @@ void HTMLScriptRunner::requestParsingBlockingScript(Element* element) |
watchForLoad(m_parserBlockingScript); |
} |
-void HTMLScriptRunner::requestDeferredScript(Element* element) |
+void HTMLScriptRunner::requestDeferredScript(const ResourcePtr<ScriptResource>& resource, Element* element) |
{ |
PendingScript pendingScript; |
- if (!requestPendingScript(pendingScript, element)) |
+ if (!requestPendingScript(resource, pendingScript, element)) |
return; |
ASSERT(pendingScript.resource()); |
m_scriptsToExecuteAfterParsing.append(pendingScript); |
} |
-bool HTMLScriptRunner::requestPendingScript(PendingScript& pendingScript, Element* script) const |
+bool HTMLScriptRunner::requestPendingScript(const ResourcePtr<ScriptResource>& resource, PendingScript& pendingScript, Element* script) const |
{ |
ASSERT(!pendingScript.element()); |
pendingScript.setElement(script); |
// This should correctly return 0 for empty or invalid srcValues. |
- ScriptResource* resource = toScriptLoaderIfPossible(script)->resource().get(); |
if (!resource) { |
notImplemented(); // Dispatch error event. |
return false; |
} |
- pendingScript.setScriptResource(resource); |
+ pendingScript.setScriptResource(resource.get()); |
return true; |
} |
@@ -307,13 +306,13 @@ void HTMLScriptRunner::runScript(Element* script, const TextPosition& scriptStar |
InsertionPointRecord insertionPointRecord(m_host->inputStream()); |
NestingLevelIncrementer nestingLevelIncrementer(m_scriptNestingLevel); |
- scriptLoader->prepareScript(scriptStartPosition); |
+ ScriptPrep prep = scriptLoader->prepareScript(scriptStartPosition); |
if (!scriptLoader->willBeParserExecuted()) |
return; |
if (scriptLoader->willExecuteWhenDocumentFinishedParsing()) { |
- requestDeferredScript(script); |
+ requestDeferredScript(prep.resource(), script); |
} else if (scriptLoader->readyToBeParserExecuted()) { |
if (m_scriptNestingLevel == 1) { |
m_parserBlockingScript.setElement(script); |
@@ -323,7 +322,7 @@ void HTMLScriptRunner::runScript(Element* script, const TextPosition& scriptStar |
scriptLoader->executeScript(sourceCode); |
} |
} else { |
- requestParsingBlockingScript(script); |
+ requestParsingBlockingScript(prep.resource(), script); |
} |
} |
} |