summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/script/dynamic_module_resolver.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/script/dynamic_module_resolver.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/script/dynamic_module_resolver.cc18
1 files changed, 13 insertions, 5 deletions
diff --git a/chromium/third_party/blink/renderer/core/script/dynamic_module_resolver.cc b/chromium/third_party/blink/renderer/core/script/dynamic_module_resolver.cc
index b6fa9c62c5e..6a1f8285495 100644
--- a/chromium/third_party/blink/renderer/core/script/dynamic_module_resolver.cc
+++ b/chromium/third_party/blink/renderer/core/script/dynamic_module_resolver.cc
@@ -5,12 +5,13 @@
#include "third_party/blink/renderer/core/script/dynamic_module_resolver.h"
#include "third_party/blink/public/platform/web_url_request.h"
-#include "third_party/blink/renderer/bindings/core/v8/exception_state.h"
#include "third_party/blink/renderer/bindings/core/v8/referrer_script_info.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/core/loader/modulescript/module_script_fetch_request.h"
+#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h"
#include "third_party/blink/renderer/core/script/modulator.h"
#include "third_party/blink/renderer/core/script/module_script.h"
+#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/bindings/v8_throw_exception.h"
#include "v8/include/v8.h"
@@ -174,7 +175,7 @@ void DynamicModuleResolver::ResolveDynamically(
}
DCHECK(!base_url.IsNull());
- KURL url = Modulator::ResolveModuleSpecifier(specifier, base_url);
+ KURL url = modulator_->ResolveModuleSpecifier(specifier, base_url);
if (!url.IsValid()) {
// Step 2.2.1. "If the result is failure, then:" [spec text]
// Step 2.2.2.1. "Let completion be Completion { [[Type]]: throw, [[Value]]:
@@ -206,15 +207,22 @@ void DynamicModuleResolver::ResolveDynamically(
// string.</spec>
ScriptFetchOptions options(referrer_info.Nonce(), IntegrityMetadataSet(),
String(), referrer_info.ParserState(),
- referrer_info.CredentialsMode());
+ referrer_info.CredentialsMode(),
+ referrer_info.GetReferrerPolicy());
// Step 2.4. "Fetch a module script graph given url, settings object,
// "script", and options. Wait until the algorithm asynchronously completes
// with result."
auto* tree_client =
DynamicImportTreeClient::Create(url, modulator_.Get(), promise_resolver);
- modulator_->FetchTree(url, WebURLRequest::kRequestContextScript, options,
- tree_client);
+ // TODO(kouhei): ExecutionContext::From(modulator_->GetScriptState()) is
+ // highly discouraged since it breaks layering. Rewrite this.
+ auto* execution_context =
+ ExecutionContext::From(modulator_->GetScriptState());
+ modulator_->FetchTree(
+ url, new FetchClientSettingsObjectSnapshot(*execution_context),
+ WebURLRequest::kRequestContextScript, options,
+ ModuleScriptCustomFetchType::kNone, tree_client);
// Steps 2.[5-8] are implemented at
// DynamicImportTreeClient::NotifyModuleLoadFinished.