Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(447)

Unified Diff: third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp

Issue 2826213003: Don't lower priority for scripts inserted by doc.write (Closed)
Patch Set: Fixed duplicate URLs in Layout test Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());

Powered by Google App Engine
This is Rietveld 408576698