Index: third_party/WebKit/Source/core/html/parser/HTMLParserScriptRunner.cpp |
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLParserScriptRunner.cpp b/third_party/WebKit/Source/core/html/parser/HTMLParserScriptRunner.cpp |
index 0f8ce8351fa2e732f830745d68fb7c54db898d06..560d94224dfaa398a4b5a056faa53af4e45c11ab 100644 |
--- a/third_party/WebKit/Source/core/html/parser/HTMLParserScriptRunner.cpp |
+++ b/third_party/WebKit/Source/core/html/parser/HTMLParserScriptRunner.cpp |
@@ -31,6 +31,7 @@ |
#include "bindings/core/v8/ScriptSourceCode.h" |
#include "bindings/core/v8/V8Binding.h" |
#include "bindings/core/v8/V8PerIsolateData.h" |
+#include "core/dom/ClassicPendingScript.h" |
#include "core/dom/ClassicScript.h" |
#include "core/dom/DocumentParserTiming.h" |
#include "core/dom/Element.h" |
@@ -335,7 +336,7 @@ void HTMLParserScriptRunner::possiblyFetchBlockedDocWriteScript( |
return; |
if (!pendingScript->errorOccurred()) { |
- emitWarningForDocWriteScripts(pendingScript->resource()->url().getString(), |
+ emitWarningForDocWriteScripts(pendingScript->url().getString(), |
*m_document); |
return; |
} |
@@ -344,13 +345,12 @@ void HTMLParserScriptRunner::possiblyFetchBlockedDocWriteScript( |
// ERR_CACHE_MISS but other errors are rare with |
// WebCachePolicy::ReturnCacheDataDontLoad. |
- emitErrorForDocWriteScripts(pendingScript->resource()->url().getString(), |
- *m_document); |
+ emitErrorForDocWriteScripts(pendingScript->url().getString(), *m_document); |
TextPosition startingPosition = parserBlockingScript()->startingPosition(); |
bool isParserInserted = scriptLoader->isParserInserted(); |
// Remove this resource entry from memory cache as the new request |
// should not join onto this existing entry. |
- memoryCache()->remove(pendingScript->resource()); |
+ // memoryCache()->remove(pendingScript->resource()); |
fetchBlockedDocWriteScript(element, isParserInserted, startingPosition); |
} |
@@ -362,7 +362,7 @@ void HTMLParserScriptRunner::pendingScriptFinished( |
// script execution to signal an abrupt stop (e.g., window.close().) |
// |
// The parser is unprepared to be told, and doesn't need to be. |
- if (isExecutingScript() && pendingScript->resource()->wasCanceled()) { |
+ if (isExecutingScript() && pendingScript->wasCanceled()) { |
pendingScript->dispose(); |
if (pendingScript == parserBlockingScript()) { |
@@ -504,7 +504,7 @@ bool HTMLParserScriptRunner::executeScriptsWaitingForParsing() { |
while (!m_scriptsToExecuteAfterParsing.isEmpty()) { |
DCHECK(!isExecutingScript()); |
DCHECK(!hasParserBlockingScript()); |
- DCHECK(m_scriptsToExecuteAfterParsing.front()->resource()); |
+ DCHECK(m_scriptsToExecuteAfterParsing.front()->isExternal()); |
// 1. "Spin the event loop until the first script in the list of scripts |
// that will execute when the document has finished parsing |
@@ -549,8 +549,6 @@ void HTMLParserScriptRunner::requestParsingBlockingScript(Element* element) { |
if (!parserBlockingScript()) |
return; |
- DCHECK(parserBlockingScript()->resource()); |
- |
// We only care about a load callback if resource is not already in the cache. |
// Callers will attempt to run the m_parserBlockingScript if possible before |
// returning control to the parser. |
@@ -572,8 +570,6 @@ void HTMLParserScriptRunner::requestDeferredScript(Element* element) { |
ScriptStreamer::Deferred); |
} |
- DCHECK(pendingScript->resource()); |
- |
// "Add the element to the end of the list of scripts that will execute |
// when the document has finished parsing associated with the Document |
// of the parser that created the element." |
@@ -589,7 +585,10 @@ PendingScript* HTMLParserScriptRunner::requestPendingScript( |
// ScriptLoader::fetchScript() should have returned false and |
// thus the control shouldn't have reached here. |
CHECK(resource); |
- return PendingScript::create(scriptElement, resource); |
+ ClassicPendingScript* pendingScript = |
+ ClassicPendingScript::create(scriptElement, resource); |
+ DCHECK(pendingScript->resource()); |
+ return pendingScript; |
} |
// The initial steps for 'An end tag whose tag name is "script"' |
@@ -647,7 +646,7 @@ void HTMLParserScriptRunner::processScriptElementInternal( |
// (There can only be one such script per Document at a time.)" |
CHECK(!m_parserBlockingScript); |
m_parserBlockingScript = |
- PendingScript::create(element, scriptStartPosition); |
+ ClassicPendingScript::create(element, scriptStartPosition); |
} else { |
// 6th Clause of Step 23. |
// "Immediately execute the script block, |