summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc29
1 files changed, 21 insertions, 8 deletions
diff --git a/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc b/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc
index ef74f6b2702..66cc33955b3 100644
--- a/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc
+++ b/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc
@@ -13,6 +13,8 @@
#include "third_party/blink/renderer/core/script/module_script.h"
#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h"
#include "third_party/blink/renderer/platform/loader/fetch/resource.h"
+#include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h"
+#include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher_properties.h"
#include "third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h"
#include "third_party/blink/renderer/platform/loader/fetch/resource_loading_log.h"
#include "third_party/blink/renderer/platform/weborigin/security_policy.h"
@@ -78,7 +80,7 @@ void ModuleScriptLoader::AdvanceState(ModuleScriptLoader::State new_state) {
void ModuleScriptLoader::Fetch(
const ModuleScriptFetchRequest& module_request,
- FetchClientSettingsObjectSnapshot* fetch_client_settings_object,
+ ResourceFetcher* fetch_client_settings_object_fetcher,
ModuleGraphLevel level,
Modulator* module_map_settings_object,
ModuleScriptCustomFetchType custom_fetch_type,
@@ -87,16 +89,20 @@ void ModuleScriptLoader::Fetch(
ModuleScriptLoader* loader = MakeGarbageCollected<ModuleScriptLoader>(
module_map_settings_object, module_request.Options(), registry, client);
registry->AddLoader(loader);
- loader->FetchInternal(module_request, fetch_client_settings_object, level,
- custom_fetch_type);
+ loader->FetchInternal(module_request, fetch_client_settings_object_fetcher,
+ level, custom_fetch_type);
}
// https://html.spec.whatwg.org/multipage/webappapis.html#fetch-a-single-module-script
void ModuleScriptLoader::FetchInternal(
const ModuleScriptFetchRequest& module_request,
- FetchClientSettingsObjectSnapshot* fetch_client_settings_object,
+ ResourceFetcher* fetch_client_settings_object_fetcher,
ModuleGraphLevel level,
ModuleScriptCustomFetchType custom_fetch_type) {
+ const FetchClientSettingsObject& fetch_client_settings_object =
+ fetch_client_settings_object_fetcher->GetProperties()
+ .GetFetchClientSettingsObject();
+
// Step 4. "Set moduleMap[url] to "fetching"." [spec text]
AdvanceState(State::kFetching);
@@ -157,20 +163,20 @@ void ModuleScriptLoader::FetchInternal(
network::mojom::ReferrerPolicy referrer_policy =
module_request.Options().GetReferrerPolicy();
if (referrer_policy == network::mojom::ReferrerPolicy::kDefault)
- referrer_policy = fetch_client_settings_object->GetReferrerPolicy();
+ referrer_policy = fetch_client_settings_object.GetReferrerPolicy();
// Step 5. "... mode is "cors", ..."
// [SMSR] "... and its credentials mode to options's credentials mode."
// [spec text]
fetch_params.SetCrossOriginAccessControl(
- fetch_client_settings_object->GetSecurityOrigin(),
+ fetch_client_settings_object.GetSecurityOrigin(),
options_.CredentialsMode());
// Step 5. "... referrer is referrer, ..." [spec text]
// Note: For now this is done below with SetHTTPReferrer()
String referrer_string = module_request.ReferrerString();
if (referrer_string == Referrer::ClientReferrerString())
- referrer_string = fetch_client_settings_object->GetOutgoingReferrer();
+ referrer_string = fetch_client_settings_object.GetOutgoingReferrer();
// TODO(domfarolino): Stop storing ResourceRequest's referrer as a
// blink::Referrer (https://crbug.com/850813).
@@ -179,6 +185,12 @@ void ModuleScriptLoader::FetchInternal(
fetch_params.GetResourceRequest().Url(),
referrer_string));
+ // Priority Hints and a request's "importance" are currently non-standard, but
+ // we can assume the following (see https://crbug.com/821464):
+ // Step 5. "... importance is options's importance ..."
+ fetch_params.MutableResourceRequest().SetFetchImportanceMode(
+ options_.Importance());
+
// Step 5. "... and client is fetch client settings object." [spec text]
// -> set by ResourceFetcher
@@ -209,7 +221,8 @@ void ModuleScriptLoader::FetchInternal(
// steps as part of the fetch's process response for the response response."
// [spec text]
module_fetcher_ = modulator_->CreateModuleScriptFetcher(custom_fetch_type);
- module_fetcher_->Fetch(fetch_params, level, this);
+ module_fetcher_->Fetch(fetch_params, fetch_client_settings_object_fetcher,
+ level, this);
}
void ModuleScriptLoader::NotifyFetchFinished(