summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/loader/modulescript
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/loader/modulescript')
-rw-r--r--chromium/third_party/blink/renderer/core/loader/modulescript/document_module_script_fetcher.cc9
-rw-r--r--chromium/third_party/blink/renderer/core/loader/modulescript/installed_service_worker_module_script_fetcher.cc52
-rw-r--r--chromium/third_party/blink/renderer/core/loader/modulescript/installed_service_worker_module_script_fetcher.h43
-rw-r--r--chromium/third_party/blink/renderer/core/loader/modulescript/module_script_creation_params.h27
-rw-r--r--chromium/third_party/blink/renderer/core/loader/modulescript/module_script_fetcher.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc13
-rw-r--r--chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader.h9
-rw-r--r--chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader_registry.h7
-rw-r--r--chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc40
-rw-r--r--chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.cc14
-rw-r--r--chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h15
-rw-r--r--chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h7
-rw-r--r--chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc7
-rw-r--r--chromium/third_party/blink/renderer/core/loader/modulescript/worker_module_script_fetcher.cc13
-rw-r--r--chromium/third_party/blink/renderer/core/loader/modulescript/worklet_module_script_fetcher.cc6
15 files changed, 182 insertions, 82 deletions
diff --git a/chromium/third_party/blink/renderer/core/loader/modulescript/document_module_script_fetcher.cc b/chromium/third_party/blink/renderer/core/loader/modulescript/document_module_script_fetcher.cc
index da5a8736d80..9b0da3f68a8 100644
--- a/chromium/third_party/blink/renderer/core/loader/modulescript/document_module_script_fetcher.cc
+++ b/chromium/third_party/blink/renderer/core/loader/modulescript/document_module_script_fetcher.cc
@@ -27,7 +27,8 @@ void DocumentModuleScriptFetcher::Fetch(FetchParameters& fetch_params,
if (FetchIfLayeredAPI(fetch_params))
return;
- ScriptResource::Fetch(fetch_params, fetcher_, this);
+ ScriptResource::Fetch(fetch_params, fetcher_, this,
+ ScriptResource::kNoStreaming);
}
void DocumentModuleScriptFetcher::NotifyFinished(Resource* resource) {
@@ -43,8 +44,7 @@ void DocumentModuleScriptFetcher::NotifyFinished(Resource* resource) {
ModuleScriptCreationParams params(
script_resource->GetResponse().Url(), script_resource->SourceText(),
- script_resource->GetResourceRequest().GetFetchCredentialsMode(),
- script_resource->CalculateAccessControlStatus());
+ script_resource->GetResourceRequest().GetFetchCredentialsMode());
client_->NotifyFetchFinished(params, error_messages);
}
@@ -77,8 +77,7 @@ bool DocumentModuleScriptFetcher::FetchIfLayeredAPI(
ModuleScriptCreationParams params(
layered_api_url, ParkableString(source_text.ReleaseImpl()),
- fetch_params.GetResourceRequest().GetFetchCredentialsMode(),
- kSharableCrossOrigin);
+ fetch_params.GetResourceRequest().GetFetchCredentialsMode());
client_->NotifyFetchFinished(params, HeapVector<Member<ConsoleMessage>>());
return true;
}
diff --git a/chromium/third_party/blink/renderer/core/loader/modulescript/installed_service_worker_module_script_fetcher.cc b/chromium/third_party/blink/renderer/core/loader/modulescript/installed_service_worker_module_script_fetcher.cc
new file mode 100644
index 00000000000..a69982edbca
--- /dev/null
+++ b/chromium/third_party/blink/renderer/core/loader/modulescript/installed_service_worker_module_script_fetcher.cc
@@ -0,0 +1,52 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "third_party/blink/renderer/core/loader/modulescript/installed_service_worker_module_script_fetcher.h"
+
+#include "third_party/blink/renderer/core/inspector/console_message.h"
+#include "third_party/blink/renderer/core/workers/installed_scripts_manager.h"
+#include "third_party/blink/renderer/core/workers/worker_global_scope.h"
+#include "third_party/blink/renderer/core/workers/worker_thread.h"
+
+namespace blink {
+
+InstalledServiceWorkerModuleScriptFetcher::
+ InstalledServiceWorkerModuleScriptFetcher(WorkerGlobalScope* global_scope)
+ : global_scope_(global_scope) {}
+
+void InstalledServiceWorkerModuleScriptFetcher::Fetch(
+ FetchParameters& fetch_params,
+ ModuleGraphLevel level,
+ ModuleScriptFetcher::Client* client) {
+ DCHECK(global_scope_->IsContextThread());
+ InstalledScriptsManager* installed_scripts_manager =
+ global_scope_->GetThread()->GetInstalledScriptsManager();
+ DCHECK(installed_scripts_manager);
+ DCHECK(installed_scripts_manager->IsScriptInstalled(fetch_params.Url()));
+
+ std::unique_ptr<InstalledScriptsManager::ScriptData> script =
+ installed_scripts_manager->GetScriptData(fetch_params.Url());
+
+ if (!script) {
+ HeapVector<Member<ConsoleMessage>> error_messages;
+ error_messages.push_back(ConsoleMessage::CreateForRequest(
+ kJSMessageSource, kErrorMessageLevel,
+ "Failed to load the script unexpectedly",
+ fetch_params.Url().GetString(), nullptr, 0));
+ client->NotifyFetchFinished(base::nullopt, error_messages);
+ return;
+ }
+
+ ModuleScriptCreationParams params(
+ fetch_params.Url(), ParkableString(script->TakeSourceText().Impl()),
+ fetch_params.GetResourceRequest().GetFetchCredentialsMode());
+ client->NotifyFetchFinished(params, HeapVector<Member<ConsoleMessage>>());
+}
+
+void InstalledServiceWorkerModuleScriptFetcher::Trace(blink::Visitor* visitor) {
+ ModuleScriptFetcher::Trace(visitor);
+ visitor->Trace(global_scope_);
+}
+
+} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/loader/modulescript/installed_service_worker_module_script_fetcher.h b/chromium/third_party/blink/renderer/core/loader/modulescript/installed_service_worker_module_script_fetcher.h
new file mode 100644
index 00000000000..5788aaec6a1
--- /dev/null
+++ b/chromium/third_party/blink/renderer/core/loader/modulescript/installed_service_worker_module_script_fetcher.h
@@ -0,0 +1,43 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_MODULESCRIPT_INSTALLED_SERVICE_WORKER_MODULE_SCRIPT_FETCHER_H_
+#define THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_MODULESCRIPT_INSTALLED_SERVICE_WORKER_MODULE_SCRIPT_FETCHER_H_
+
+#include "third_party/blink/renderer/core/loader/modulescript/module_script_fetcher.h"
+
+namespace blink {
+
+class WorkerGlobalScope;
+
+// InstalledServiceWorkerModuleScriptFetcher is an implementation of
+// ModuleScriptFetcher for retrieving an installed ServiceWorker script
+// from ServiceWorker's script storage.
+class CORE_EXPORT InstalledServiceWorkerModuleScriptFetcher final
+ : public GarbageCollectedFinalized<
+ InstalledServiceWorkerModuleScriptFetcher>,
+ public ModuleScriptFetcher {
+ USING_GARBAGE_COLLECTED_MIXIN(InstalledServiceWorkerModuleScriptFetcher);
+
+ public:
+ explicit InstalledServiceWorkerModuleScriptFetcher(WorkerGlobalScope*);
+
+ // Implements ModuleScriptFetcher.
+ void Fetch(FetchParameters&,
+ ModuleGraphLevel,
+ ModuleScriptFetcher::Client*) override;
+
+ void Trace(blink::Visitor*) override;
+
+ private:
+ String DebugName() const override {
+ return "InstalledServiceWorkerModuleScriptFetcher";
+ }
+
+ const Member<WorkerGlobalScope> global_scope_;
+};
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_MODULESCRIPT_WORKER_MODULE_SCRIPT_FETCHER_H_
diff --git a/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_creation_params.h b/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_creation_params.h
index a161709660c..bd4849de8d4 100644
--- a/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_creation_params.h
+++ b/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_creation_params.h
@@ -9,7 +9,6 @@
#include "third_party/blink/public/platform/web_url_request.h"
#include "third_party/blink/renderer/platform/bindings/parkable_string.h"
#include "third_party/blink/renderer/platform/cross_thread_copier.h"
-#include "third_party/blink/renderer/platform/loader/fetch/access_control_status.h"
#include "third_party/blink/renderer/platform/weborigin/kurl.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
@@ -21,22 +20,22 @@ class ModuleScriptCreationParams {
ModuleScriptCreationParams(
const KURL& response_url,
const ParkableString& source_text,
- network::mojom::FetchCredentialsMode fetch_credentials_mode,
- AccessControlStatus access_control_status)
+ network::mojom::FetchCredentialsMode fetch_credentials_mode)
: response_url_(response_url),
is_isolated_(false),
source_text_(source_text),
isolated_source_text_(),
- fetch_credentials_mode_(fetch_credentials_mode),
- access_control_status_(access_control_status) {}
+ fetch_credentials_mode_(fetch_credentials_mode) {}
~ModuleScriptCreationParams() = default;
ModuleScriptCreationParams IsolatedCopy() const {
- String isolated_source_text = GetSourceText().ToString().IsolatedCopy();
- return ModuleScriptCreationParams(
- GetResponseUrl().Copy(), isolated_source_text,
- GetFetchCredentialsMode(), GetAccessControlStatus());
+ String isolated_source_text =
+ isolated_source_text_ ? isolated_source_text_.IsolatedCopy()
+ : GetSourceText().ToString().IsolatedCopy();
+ return ModuleScriptCreationParams(GetResponseUrl().Copy(),
+ isolated_source_text,
+ GetFetchCredentialsMode());
}
const KURL& GetResponseUrl() const { return response_url_; }
@@ -51,9 +50,6 @@ class ModuleScriptCreationParams {
network::mojom::FetchCredentialsMode GetFetchCredentialsMode() const {
return fetch_credentials_mode_;
}
- AccessControlStatus GetAccessControlStatus() const {
- return access_control_status_;
- }
bool IsSafeToSendToAnotherThread() const {
return response_url_.IsSafeToSendToAnotherThread() && is_isolated_;
@@ -64,14 +60,12 @@ class ModuleScriptCreationParams {
ModuleScriptCreationParams(
const KURL& response_url,
const String& isolated_source_text,
- network::mojom::FetchCredentialsMode fetch_credentials_mode,
- AccessControlStatus access_control_status)
+ network::mojom::FetchCredentialsMode fetch_credentials_mode)
: response_url_(response_url),
is_isolated_(true),
source_text_(),
isolated_source_text_(isolated_source_text),
- fetch_credentials_mode_(fetch_credentials_mode),
- access_control_status_(access_control_status) {}
+ fetch_credentials_mode_(fetch_credentials_mode) {}
const KURL response_url_;
@@ -82,7 +76,6 @@ class ModuleScriptCreationParams {
mutable String isolated_source_text_;
const network::mojom::FetchCredentialsMode fetch_credentials_mode_;
- const AccessControlStatus access_control_status_;
};
// Creates a deep copy because |response_url_| and |source_text_| are not
diff --git a/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_fetcher.cc b/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_fetcher.cc
index 10634797e8d..dce66bc435f 100644
--- a/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_fetcher.cc
+++ b/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_fetcher.cc
@@ -43,7 +43,7 @@ bool ModuleScriptFetcher::WasModuleLoadSuccessful(
const auto& response = resource->GetResponse();
// - response's status is not an ok status
- if (response.IsHTTP() && !CORS::IsOkStatus(response.HttpStatusCode())) {
+ if (response.IsHTTP() && !cors::IsOkStatus(response.HttpStatusCode())) {
return false;
}
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 6c178a2750f..ef74f6b2702 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
@@ -84,7 +84,7 @@ void ModuleScriptLoader::Fetch(
ModuleScriptCustomFetchType custom_fetch_type,
ModuleScriptLoaderRegistry* registry,
ModuleScriptLoaderClient* client) {
- ModuleScriptLoader* loader = new ModuleScriptLoader(
+ 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,
@@ -154,8 +154,9 @@ void ModuleScriptLoader::FetchInternal(
// [SMSR] "... its referrer policy to options's referrer policy." [spec text]
// Note: For now this is done below with SetHTTPReferrer()
- ReferrerPolicy referrer_policy = module_request.Options().GetReferrerPolicy();
- if (referrer_policy == kReferrerPolicyDefault)
+ network::mojom::ReferrerPolicy referrer_policy =
+ module_request.Options().GetReferrerPolicy();
+ if (referrer_policy == network::mojom::ReferrerPolicy::kDefault)
referrer_policy = fetch_client_settings_object->GetReferrerPolicy();
// Step 5. "... mode is "cors", ..."
@@ -239,9 +240,9 @@ void ModuleScriptLoader::NotifyFetchFinished(
// Step 10. "Let module script be the result of creating a module script given
// source text, module map settings object, response's url, and options."
// [spec text]
- module_script_ = ModuleScript::Create(
- params->GetSourceText(), modulator_, params->GetResponseUrl(),
- params->GetResponseUrl(), options_, params->GetAccessControlStatus());
+ module_script_ = ModuleScript::Create(params->GetSourceText(), modulator_,
+ params->GetResponseUrl(),
+ params->GetResponseUrl(), options_);
AdvanceState(State::kFinished);
}
diff --git a/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader.h b/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader.h
index c2e1d338a20..14c9d7ffb91 100644
--- a/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader.h
+++ b/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader.h
@@ -45,6 +45,10 @@ class CORE_EXPORT ModuleScriptLoader final
};
public:
+ ModuleScriptLoader(Modulator*,
+ const ScriptFetchOptions&,
+ ModuleScriptLoaderRegistry*,
+ ModuleScriptLoaderClient*);
~ModuleScriptLoader();
static void Fetch(
@@ -67,11 +71,6 @@ class CORE_EXPORT ModuleScriptLoader final
void Trace(blink::Visitor*) override;
private:
- ModuleScriptLoader(Modulator*,
- const ScriptFetchOptions&,
- ModuleScriptLoaderRegistry*,
- ModuleScriptLoaderClient*);
-
void FetchInternal(
const ModuleScriptFetchRequest&,
FetchClientSettingsObjectSnapshot* fetch_client_settings_object,
diff --git a/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader_registry.h b/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader_registry.h
index 8ca0faea242..a2d9012c217 100644
--- a/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader_registry.h
+++ b/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader_registry.h
@@ -18,13 +18,14 @@ class CORE_EXPORT ModuleScriptLoaderRegistry final
: public GarbageCollected<ModuleScriptLoaderRegistry> {
public:
static ModuleScriptLoaderRegistry* Create() {
- return new ModuleScriptLoaderRegistry;
+ return MakeGarbageCollected<ModuleScriptLoaderRegistry>();
}
- void Trace(blink::Visitor*);
- private:
ModuleScriptLoaderRegistry() = default;
+ void Trace(blink::Visitor*);
+
+ private:
friend class ModuleScriptLoader;
void AddLoader(ModuleScriptLoader*);
void ReleaseFinishedLoader(ModuleScriptLoader*);
diff --git a/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc b/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc
index d2c856fc69a..5f169e71011 100644
--- a/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc
+++ b/chromium/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc
@@ -97,15 +97,14 @@ class ModuleScriptLoaderTestModulator final : public DummyModulator {
ModuleScriptFetcher* CreateModuleScriptFetcher(
ModuleScriptCustomFetchType custom_fetch_type) override {
auto* execution_context = ExecutionContext::From(script_state_);
- if (execution_context->IsWorkletGlobalScope()) {
+ if (auto* scope = DynamicTo<WorkletGlobalScope>(execution_context)) {
EXPECT_EQ(ModuleScriptCustomFetchType::kWorkletAddModule,
custom_fetch_type);
- auto* global_scope = ToWorkletGlobalScope(execution_context);
- return new WorkletModuleScriptFetcher(
- Fetcher(), global_scope->GetModuleResponsesMap());
+ return MakeGarbageCollected<WorkletModuleScriptFetcher>(
+ Fetcher(), scope->GetModuleResponsesMap());
}
EXPECT_EQ(ModuleScriptCustomFetchType::kNone, custom_fetch_type);
- return new DocumentModuleScriptFetcher(Fetcher());
+ return MakeGarbageCollected<DocumentModuleScriptFetcher>(Fetcher());
}
ResourceFetcher* Fetcher() const { return fetcher_.Get(); }
@@ -183,7 +182,8 @@ void ModuleScriptLoaderTest::InitializeForWorklet() {
reporting_proxy_ =
std::make_unique<MainThreadWorkletReportingProxy>(&GetDocument());
auto creation_params = std::make_unique<GlobalScopeCreationParams>(
- GetDocument().Url(), ScriptType::kModule, GetDocument().UserAgent(),
+ GetDocument().Url(), mojom::ScriptType::kModule,
+ GetDocument().UserAgent(), nullptr /* web_worker_fetch_context */,
Vector<CSPHeaderAndType>(), GetDocument().GetReferrerPolicy(),
GetDocument().GetSecurityOrigin(), GetDocument().IsSecureContext(),
GetDocument().GetHttpsState(), nullptr /* worker_clients */,
@@ -191,8 +191,8 @@ void ModuleScriptLoaderTest::InitializeForWorklet() {
OriginTrialContext::GetTokens(&GetDocument()).get(),
base::UnguessableToken::Create(), nullptr /* worker_settings */,
kV8CacheOptionsDefault, new WorkletModuleResponsesMap);
- global_scope_ = new WorkletGlobalScope(std::move(creation_params),
- *reporting_proxy_, &GetFrame());
+ global_scope_ = MakeGarbageCollected<WorkletGlobalScope>(
+ std::move(creation_params), *reporting_proxy_, &GetFrame());
global_scope_->ScriptController()->InitializeContextIfNeeded("Dummy Context",
NullURL());
modulator_ = new ModuleScriptLoaderTestModulator(
@@ -218,8 +218,10 @@ TEST_F(ModuleScriptLoaderTest, FetchDataURL) {
TestModuleScriptLoaderClient* client = new TestModuleScriptLoaderClient;
TestFetchDataURL(ModuleScriptCustomFetchType::kNone, client);
- EXPECT_TRUE(client->WasNotifyFinished())
- << "ModuleScriptLoader should finish synchronously.";
+ // TODO(leszeks): This should finish synchronously, but currently due
+ // to the script resource/script streamer interaction, it does not.
+ RunUntilIdle();
+ EXPECT_TRUE(client->WasNotifyFinished());
ASSERT_TRUE(client->GetModuleScript());
EXPECT_FALSE(client->GetModuleScript()->HasEmptyRecord());
EXPECT_FALSE(client->GetModuleScript()->HasParseError());
@@ -273,8 +275,11 @@ TEST_F(ModuleScriptLoaderTest, InvalidSpecifier) {
TestModuleScriptLoaderClient* client = new TestModuleScriptLoaderClient;
TestInvalidSpecifier(ModuleScriptCustomFetchType::kNone, client);
- EXPECT_TRUE(client->WasNotifyFinished())
- << "ModuleScriptLoader should finish synchronously.";
+ // TODO(leszeks): This should finish synchronously, but currently due
+ // to the script resource/script streamer interaction, it does not.
+ RunUntilIdle();
+ EXPECT_TRUE(client->WasNotifyFinished());
+
ASSERT_TRUE(client->GetModuleScript());
EXPECT_TRUE(client->GetModuleScript()->HasEmptyRecord());
EXPECT_TRUE(client->GetModuleScript()->HasParseError());
@@ -314,8 +319,10 @@ TEST_F(ModuleScriptLoaderTest, FetchInvalidURL) {
TestModuleScriptLoaderClient* client = new TestModuleScriptLoaderClient;
TestFetchInvalidURL(ModuleScriptCustomFetchType::kNone, client);
- EXPECT_TRUE(client->WasNotifyFinished())
- << "ModuleScriptLoader should finish synchronously.";
+ // TODO(leszeks): This should finish synchronously, but currently due
+ // to the script resource/script streamer interaction, it does not.
+ RunUntilIdle();
+ EXPECT_TRUE(client->WasNotifyFinished());
EXPECT_FALSE(client->GetModuleScript());
}
@@ -336,7 +343,7 @@ void ModuleScriptLoaderTest::TestFetchURL(
ModuleScriptCustomFetchType custom_fetch_type,
TestModuleScriptLoaderClient* client) {
KURL url("https://example.test/module.js");
- URLTestHelpers::RegisterMockedURLLoad(
+ url_test_helpers::RegisterMockedURLLoad(
url, test::CoreTestDataPath("module.js"), "text/javascript");
auto* fetch_client_settings_object =
GetDocument().CreateFetchClientSettingsObjectSnapshot();
@@ -356,6 +363,9 @@ TEST_F(ModuleScriptLoaderTest, FetchURL) {
EXPECT_FALSE(client->WasNotifyFinished())
<< "ModuleScriptLoader unexpectedly finished synchronously.";
platform_->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
+ // TODO(leszeks): This should finish synchronously, but currently due
+ // to the script resource/script streamer interaction, it does not.
+ RunUntilIdle();
EXPECT_TRUE(client->WasNotifyFinished());
EXPECT_TRUE(client->GetModuleScript());
diff --git a/chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.cc b/chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.cc
index fee91a7c5fd..088b7b3b27d 100644
--- a/chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.cc
+++ b/chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.cc
@@ -27,9 +27,9 @@ void ModuleTreeLinker::Fetch(
ModuleScriptCustomFetchType custom_fetch_type,
ModuleTreeLinkerRegistry* registry,
ModuleTreeClient* client) {
- ModuleTreeLinker* fetcher =
- new ModuleTreeLinker(fetch_client_settings_object, destination, modulator,
- custom_fetch_type, registry, client);
+ ModuleTreeLinker* fetcher = MakeGarbageCollected<ModuleTreeLinker>(
+ fetch_client_settings_object, destination, modulator, custom_fetch_type,
+ registry, client);
registry->AddFetcher(fetcher);
fetcher->FetchRoot(url, options);
DCHECK(fetcher->IsFetching());
@@ -44,9 +44,9 @@ void ModuleTreeLinker::FetchDescendantsForInlineScript(
ModuleTreeLinkerRegistry* registry,
ModuleTreeClient* client) {
DCHECK(module_script);
- ModuleTreeLinker* fetcher =
- new ModuleTreeLinker(fetch_client_settings_object, destination, modulator,
- custom_fetch_type, registry, client);
+ ModuleTreeLinker* fetcher = MakeGarbageCollected<ModuleTreeLinker>(
+ fetch_client_settings_object, destination, modulator, custom_fetch_type,
+ registry, client);
registry->AddFetcher(fetcher);
fetcher->FetchRootInline(module_script);
DCHECK(fetcher->IsFetching());
@@ -377,7 +377,7 @@ void ModuleTreeLinker::FetchDescendants(ModuleScript* module_script) {
//
// [FD] Step 7. These invocations of the internal module script graph fetching
// procedure should be performed in parallel to each other.
- for (size_t i = 0; i < urls.size(); ++i) {
+ for (wtf_size_t i = 0; i < urls.size(); ++i) {
// [FD] Step 7. ... perform the internal module script graph fetching
// procedure given url, fetch client settings object, destination, options,
// module script's settings object, visited set, module script's base URL,
diff --git a/chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h b/chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h
index e4dd03903b3..b4ed117ef38 100644
--- a/chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h
+++ b/chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h
@@ -57,6 +57,13 @@ class CORE_EXPORT ModuleTreeLinker final : public SingleModuleClient {
ModuleTreeLinkerRegistry*,
ModuleTreeClient*);
+ ModuleTreeLinker(
+ FetchClientSettingsObjectSnapshot* fetch_client_settings_object,
+ mojom::RequestContextType destination,
+ Modulator*,
+ ModuleScriptCustomFetchType,
+ ModuleTreeLinkerRegistry*,
+ ModuleTreeClient*);
~ModuleTreeLinker() override = default;
void Trace(blink::Visitor*) override;
@@ -66,14 +73,6 @@ class CORE_EXPORT ModuleTreeLinker final : public SingleModuleClient {
bool HasFinished() const { return state_ == State::kFinished; }
private:
- ModuleTreeLinker(
- FetchClientSettingsObjectSnapshot* fetch_client_settings_object,
- mojom::RequestContextType destination,
- Modulator*,
- ModuleScriptCustomFetchType,
- ModuleTreeLinkerRegistry*,
- ModuleTreeClient*);
-
enum class State {
kInitial,
// Running fetch of the module script corresponding to the target node.
diff --git a/chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h b/chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h
index b5f0b31ab5a..2867d9ca9ce 100644
--- a/chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h
+++ b/chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h
@@ -20,16 +20,17 @@ class CORE_EXPORT ModuleTreeLinkerRegistry
public NameClient {
public:
static ModuleTreeLinkerRegistry* Create() {
- return new ModuleTreeLinkerRegistry;
+ return MakeGarbageCollected<ModuleTreeLinkerRegistry>();
}
+
+ ModuleTreeLinkerRegistry() = default;
+
void Trace(blink::Visitor*);
const char* NameInHeapSnapshot() const override {
return "ModuleTreeLinkerRegistry";
}
private:
- ModuleTreeLinkerRegistry() = default;
-
friend class ModuleTreeLinker;
void AddFetcher(ModuleTreeLinker*);
void ReleaseFinishedFetcher(ModuleTreeLinker*);
diff --git a/chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc b/chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc
index 5b7d03ae927..36a57045c58 100644
--- a/chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc
+++ b/chromium/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc
@@ -85,8 +85,8 @@ class ModuleTreeLinkerTestModulator final : public DummyModulator {
ScriptModule script_module = ScriptModule::Compile(
script_state_->GetIsolate(), source_text.ToString(), url, url,
- ScriptFetchOptions(), kSharableCrossOrigin,
- TextPosition::MinimumPosition(), ASSERT_NO_EXCEPTION);
+ ScriptFetchOptions(), TextPosition::MinimumPosition(),
+ ASSERT_NO_EXCEPTION);
auto* module_script = ModuleScript::CreateForTest(this, script_module, url);
auto result_request = dependency_module_requests_map_.insert(
script_module, dependency_module_requests);
@@ -201,7 +201,8 @@ class ModuleTreeLinkerTest : public PageTestBase {
void ModuleTreeLinkerTest::SetUp() {
PageTestBase::SetUp(IntSize(500, 500));
ScriptState* script_state = ToScriptStateForMainWorld(&GetFrame());
- modulator_ = new ModuleTreeLinkerTestModulator(script_state);
+ modulator_ =
+ MakeGarbageCollected<ModuleTreeLinkerTestModulator>(script_state);
}
TEST_F(ModuleTreeLinkerTest, FetchTreeNoDeps) {
diff --git a/chromium/third_party/blink/renderer/core/loader/modulescript/worker_module_script_fetcher.cc b/chromium/third_party/blink/renderer/core/loader/modulescript/worker_module_script_fetcher.cc
index 092915a99d8..3e702d88131 100644
--- a/chromium/third_party/blink/renderer/core/loader/modulescript/worker_module_script_fetcher.cc
+++ b/chromium/third_party/blink/renderer/core/loader/modulescript/worker_module_script_fetcher.cc
@@ -4,11 +4,11 @@
#include "third_party/blink/renderer/core/loader/modulescript/worker_module_script_fetcher.h"
+#include "services/network/public/mojom/referrer_policy.mojom-shared.h"
#include "third_party/blink/renderer/core/inspector/console_message.h"
#include "third_party/blink/renderer/core/workers/worker_global_scope.h"
#include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h"
#include "third_party/blink/renderer/platform/network/http_names.h"
-#include "third_party/blink/renderer/platform/weborigin/referrer_policy.h"
#include "third_party/blink/renderer/platform/weborigin/security_policy.h"
namespace blink {
@@ -33,7 +33,8 @@ void WorkerModuleScriptFetcher::Fetch(FetchParameters& fetch_params,
// Step 13.2. "Fetch request, and asynchronously wait to run the remaining
// steps as part of fetch's process response for the response response." [spec
// text]
- ScriptResource::Fetch(fetch_params, global_scope_->EnsureFetcher(), this);
+ ScriptResource::Fetch(fetch_params, global_scope_->EnsureFetcher(), this,
+ ScriptResource::kNoStreaming);
}
void WorkerModuleScriptFetcher::Trace(blink::Visitor* visitor) {
@@ -82,9 +83,10 @@ void WorkerModuleScriptFetcher::NotifyFinished(Resource* resource) {
// Step 13.5. "Set worker global scope's referrer policy to the result of
// parsing the `Referrer-Policy` header of response." [spec text]
const String referrer_policy_header =
- resource->GetResponse().HttpHeaderField(HTTPNames::Referrer_Policy);
+ resource->GetResponse().HttpHeaderField(http_names::kReferrerPolicy);
if (!referrer_policy_header.IsNull()) {
- ReferrerPolicy referrer_policy = kReferrerPolicyDefault;
+ network::mojom::ReferrerPolicy referrer_policy =
+ network::mojom::ReferrerPolicy::kDefault;
SecurityPolicy::ReferrerPolicyFromHeaderValue(
referrer_policy_header, kDoNotSupportReferrerPolicyLegacyKeywords,
&referrer_policy);
@@ -98,8 +100,7 @@ void WorkerModuleScriptFetcher::NotifyFinished(Resource* resource) {
ModuleScriptCreationParams params(
script_resource->GetResponse().Url(), script_resource->SourceText(),
- script_resource->GetResourceRequest().GetFetchCredentialsMode(),
- script_resource->CalculateAccessControlStatus());
+ script_resource->GetResourceRequest().GetFetchCredentialsMode());
// Step 13.7. "Asynchronously complete the perform the fetch steps with
// response." [spec text]
diff --git a/chromium/third_party/blink/renderer/core/loader/modulescript/worklet_module_script_fetcher.cc b/chromium/third_party/blink/renderer/core/loader/modulescript/worklet_module_script_fetcher.cc
index b14d8929c2a..74b7850b18d 100644
--- a/chromium/third_party/blink/renderer/core/loader/modulescript/worklet_module_script_fetcher.cc
+++ b/chromium/third_party/blink/renderer/core/loader/modulescript/worklet_module_script_fetcher.cc
@@ -38,7 +38,8 @@ void WorkletModuleScriptFetcher::Fetch(FetchParameters& fetch_params,
// need to handle that case, maybe by having a way to restart fetches in a
// different global scope?
url_ = fetch_params.Url();
- ScriptResource::Fetch(fetch_params, fetcher_.Get(), this);
+ ScriptResource::Fetch(fetch_params, fetcher_.Get(), this,
+ ScriptResource::kNoStreaming);
}
void WorkletModuleScriptFetcher::NotifyFinished(Resource* resource) {
@@ -50,8 +51,7 @@ void WorkletModuleScriptFetcher::NotifyFinished(Resource* resource) {
if (WasModuleLoadSuccessful(script_resource, &error_messages)) {
params.emplace(
script_resource->GetResponse().Url(), script_resource->SourceText(),
- script_resource->GetResourceRequest().GetFetchCredentialsMode(),
- script_resource->CalculateAccessControlStatus());
+ script_resource->GetResourceRequest().GetFetchCredentialsMode());
}
// This will eventually notify |client| passed to