diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/html/imports/html_import_loader.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/core/html/imports/html_import_loader.cc | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/chromium/third_party/blink/renderer/core/html/imports/html_import_loader.cc b/chromium/third_party/blink/renderer/core/html/imports/html_import_loader.cc index a921505e787..b23f609a9a5 100644 --- a/chromium/third_party/blink/renderer/core/html/imports/html_import_loader.cc +++ b/chromium/third_party/blink/renderer/core/html/imports/html_import_loader.cc @@ -96,16 +96,21 @@ HTMLImportLoader::State HTMLImportLoader::StartWritingAndParsing( const ResourceResponse& response) { DCHECK(controller_); DCHECK(!imports_.IsEmpty()); - Document* master = controller_->Master(); + Document* tree_root = controller_->TreeRoot(); document_ = MakeGarbageCollected<HTMLDocument>( DocumentInit::Create() .WithImportsController(controller_) - .WithContextDocument(master->ContextDocument()) - .WithRegistrationContext(master->RegistrationContext()) - .WithContentSecurityPolicy(master->GetContentSecurityPolicy()) + .WithExecutionContext(tree_root->GetExecutionContext()) + .WithRegistrationContext(tree_root->RegistrationContext()) .WithURL(response.CurrentRequestUrl())); - document_->OpenForNavigation(kAllowAsynchronousParsing, response.MimeType(), - "UTF-8"); + // imports expect to be able to log CSP errors, which requires binding the CSP + // to a CSP delegate. + document_->BindContentSecurityPolicy(); + document_->OpenForNavigation( + RuntimeEnabledFeatures::ForceSynchronousHTMLParsingEnabled() + ? kAllowDeferredParsing + : kAllowAsynchronousParsing, + response.MimeType(), "UTF-8"); DocumentParser* parser = document_->Parser(); DCHECK(parser); @@ -204,7 +209,7 @@ V0CustomElementSyncMicrotaskQueue* HTMLImportLoader::MicrotaskQueue() const { return microtask_queue_; } -void HTMLImportLoader::Trace(Visitor* visitor) { +void HTMLImportLoader::Trace(Visitor* visitor) const { visitor->Trace(controller_); visitor->Trace(imports_); visitor->Trace(document_); |