| Index: third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp
|
| diff --git a/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp b/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp
|
| index 817664c3087739ec83b5063b1f2cb590768a85d1..62824bb478e7eedd23afc4a2605a8e1785ff9afe 100644
|
| --- a/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp
|
| +++ b/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp
|
| @@ -722,7 +722,8 @@ void HTMLDocumentParser::PumpTokenizer() {
|
| // crbug.com/465478
|
| if (preloader_) {
|
| if (!preload_scanner_) {
|
| - preload_scanner_ = CreatePreloadScanner();
|
| + preload_scanner_ = CreatePreloadScanner(
|
| + TokenPreloadScanner::ScannerType::kMainDocument);
|
| preload_scanner_->AppendToEnd(input_.Current());
|
| }
|
| ScanAndPreload(preload_scanner_.get());
|
| @@ -797,8 +798,10 @@ void HTMLDocumentParser::insert(const SegmentedString& source) {
|
| if (IsPaused()) {
|
| // Check the document.write() output with a separate preload scanner as
|
| // the main scanner can't deal with insertions.
|
| - if (!insertion_preload_scanner_)
|
| - insertion_preload_scanner_ = CreatePreloadScanner();
|
| + if (!insertion_preload_scanner_) {
|
| + insertion_preload_scanner_ =
|
| + CreatePreloadScanner(TokenPreloadScanner::ScannerType::kInsertion);
|
| + }
|
| insertion_preload_scanner_->AppendToEnd(source);
|
| ScanAndPreload(insertion_preload_scanner_.get());
|
| }
|
| @@ -899,8 +902,10 @@ void HTMLDocumentParser::Append(const String& input_source) {
|
| if (GetDocument()->Loader()->GetResponse().AppCacheID() != 0)
|
| return;
|
|
|
| - if (!preload_scanner_)
|
| - preload_scanner_ = CreatePreloadScanner();
|
| + if (!preload_scanner_) {
|
| + preload_scanner_ =
|
| + CreatePreloadScanner(TokenPreloadScanner::ScannerType::kMainDocument);
|
| + }
|
|
|
| preload_scanner_->AppendToEnd(source);
|
| ScanAndPreload(preload_scanner_.get());
|
| @@ -1256,11 +1261,12 @@ void HTMLDocumentParser::DocumentElementAvailable() {
|
| FetchQueuedPreloads();
|
| }
|
|
|
| -std::unique_ptr<HTMLPreloadScanner> HTMLDocumentParser::CreatePreloadScanner() {
|
| +std::unique_ptr<HTMLPreloadScanner> HTMLDocumentParser::CreatePreloadScanner(
|
| + TokenPreloadScanner::ScannerType scanner_type) {
|
| return HTMLPreloadScanner::Create(
|
| options_, GetDocument()->Url(),
|
| CachedDocumentParameters::Create(GetDocument()),
|
| - MediaValuesCached::MediaValuesCachedData(*GetDocument()));
|
| + MediaValuesCached::MediaValuesCachedData(*GetDocument()), scanner_type);
|
| }
|
|
|
| void HTMLDocumentParser::ScanAndPreload(HTMLPreloadScanner* scanner) {
|
| @@ -1306,7 +1312,8 @@ void HTMLDocumentParser::EvaluateAndPreloadScriptForDocumentWrite(
|
| int current_preload_count =
|
| GetDocument()->Loader()->Fetcher()->CountPreloads();
|
|
|
| - std::unique_ptr<HTMLPreloadScanner> scanner = CreatePreloadScanner();
|
| + std::unique_ptr<HTMLPreloadScanner> scanner =
|
| + CreatePreloadScanner(TokenPreloadScanner::ScannerType::kInsertion);
|
| scanner->AppendToEnd(SegmentedString(written_source));
|
| ScanAndPreload(scanner.get());
|
|
|
|
|