| 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 1b94d33abc3e4bea927f444a3324cf0fb77a475e..6b2c3764eafe7678130d9f9001dd76297ac6771c 100644
|
| --- a/third_party/WebKit/Source/core/html/parser/HTMLParserScriptRunner.cpp
|
| +++ b/third_party/WebKit/Source/core/html/parser/HTMLParserScriptRunner.cpp
|
| @@ -31,7 +31,6 @@
|
| #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"
|
| @@ -49,6 +48,7 @@
|
| #include "platform/WebFrameScheduler.h"
|
| #include "platform/instrumentation/tracing/TraceEvent.h"
|
| #include "platform/instrumentation/tracing/TracedValue.h"
|
| +#include "platform/loader/fetch/MemoryCache.h"
|
| #include "public/platform/Platform.h"
|
|
|
| namespace blink {
|
| @@ -335,12 +335,9 @@
|
| if (!script_loader || !script_loader->DisallowedFetchForDocWrittenScript())
|
| return;
|
|
|
| - // We don't allow document.write() and its intervention with module scripts.
|
| - CHECK_EQ(pending_script->GetScriptType(), ScriptType::kClassic);
|
| -
|
| if (!pending_script->ErrorOccurred()) {
|
| - EmitWarningForDocWriteScripts(pending_script->Url().GetString(),
|
| - *document_);
|
| + EmitWarningForDocWriteScripts(
|
| + pending_script->GetResource()->Url().GetString(), *document_);
|
| return;
|
| }
|
|
|
| @@ -348,12 +345,13 @@
|
| // ERR_CACHE_MISS but other errors are rare with
|
| // WebCachePolicy::ReturnCacheDataDontLoad.
|
|
|
| - EmitErrorForDocWriteScripts(pending_script->Url().GetString(), *document_);
|
| + EmitErrorForDocWriteScripts(pending_script->GetResource()->Url().GetString(),
|
| + *document_);
|
| TextPosition starting_position = ParserBlockingScript()->StartingPosition();
|
| bool is_parser_inserted = script_loader->IsParserInserted();
|
| // Remove this resource entry from memory cache as the new request
|
| // should not join onto this existing entry.
|
| - pending_script->RemoveFromMemoryCache();
|
| + GetMemoryCache()->Remove(pending_script->GetResource());
|
| FetchBlockedDocWriteScript(element, is_parser_inserted, starting_position);
|
| }
|
|
|
| @@ -365,7 +363,7 @@
|
| // 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() && pending_script->WasCanceled()) {
|
| + if (IsExecutingScript() && pending_script->GetResource()->WasCanceled()) {
|
| pending_script->Dispose();
|
|
|
| if (pending_script == ParserBlockingScript()) {
|
| @@ -507,7 +505,7 @@
|
| while (!scripts_to_execute_after_parsing_.IsEmpty()) {
|
| DCHECK(!IsExecutingScript());
|
| DCHECK(!HasParserBlockingScript());
|
| - DCHECK(scripts_to_execute_after_parsing_.front()->IsExternal());
|
| + DCHECK(scripts_to_execute_after_parsing_.front()->GetResource());
|
|
|
| // 1. "Spin the event loop until the first script in the list of scripts
|
| // that will execute when the document has finished parsing
|
| @@ -553,7 +551,7 @@
|
| if (!ParserBlockingScript())
|
| return;
|
|
|
| - DCHECK(ParserBlockingScript()->IsExternal());
|
| + DCHECK(ParserBlockingScript()->GetResource());
|
|
|
| // 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
|
| @@ -576,7 +574,7 @@
|
| ScriptStreamer::kDeferred);
|
| }
|
|
|
| - DCHECK(pending_script->IsExternal());
|
| + DCHECK(pending_script->GetResource());
|
|
|
| // "Add the element to the end of the list of scripts that will execute
|
| // when the document has finished parsing associated with the Document
|
| @@ -646,7 +644,7 @@
|
| // (There can only be one such script per Document at a time.)"
|
| CHECK(!parser_blocking_script_);
|
| parser_blocking_script_ =
|
| - ClassicPendingScript::Create(element, script_start_position);
|
| + PendingScript::Create(element, script_start_position);
|
| } else {
|
| // 6th Clause of Step 23.
|
| // "Immediately execute the script block,
|
|
|