Index: third_party/WebKit/Source/core/workers/MainThreadWorkletGlobalScope.cpp |
diff --git a/third_party/WebKit/Source/core/workers/MainThreadWorkletGlobalScope.cpp b/third_party/WebKit/Source/core/workers/MainThreadWorkletGlobalScope.cpp |
index 20ca6dd8fccab2bdda0176d22eb0d178b79b6b77..776998542d71ed8100dd9a35004565698fe5c11a 100644 |
--- a/third_party/WebKit/Source/core/workers/MainThreadWorkletGlobalScope.cpp |
+++ b/third_party/WebKit/Source/core/workers/MainThreadWorkletGlobalScope.cpp |
@@ -8,12 +8,14 @@ |
#include "bindings/core/v8/WorkerOrWorkletScriptController.h" |
#include "core/dom/Document.h" |
#include "core/dom/Modulator.h" |
+#include "core/dom/TaskRunnerHelper.h" |
#include "core/frame/Deprecation.h" |
#include "core/frame/FrameConsole.h" |
#include "core/frame/LocalFrame.h" |
#include "core/inspector/MainThreadDebugger.h" |
#include "core/loader/modulescript/ModuleScriptFetchRequest.h" |
#include "core/probe/CoreProbes.h" |
+#include "core/workers/WorkletModuleResponsesMap.h" |
#include "core/workers/WorkletModuleTreeClient.h" |
#include "public/platform/WebURLRequest.h" |
@@ -58,10 +60,17 @@ WorkerThread* MainThreadWorkletGlobalScope::GetThread() const { |
// https://drafts.css-houdini.org/worklets/#fetch-and-invoke-a-worklet-script |
void MainThreadWorkletGlobalScope::FetchAndInvokeScript( |
const KURL& module_url_record, |
+ WorkletModuleResponsesMap* module_responses_map, |
WebURLRequest::FetchCredentialsMode credentials_mode, |
RefPtr<WebTaskRunner> outside_settings_task_runner, |
WorkletPendingTasks* pending_tasks) { |
DCHECK(IsMainThread()); |
+ if (!module_responses_map_proxy_) { |
+ module_responses_map_proxy_ = new WorkletModuleResponsesMapProxy( |
+ module_responses_map, outside_settings_task_runner, |
+ TaskRunnerHelper::Get(TaskType::kUnspecedLoading, this)); |
+ } |
+ |
// Step 1: "Let insideSettings be the workletGlobalScope's associated |
// environment settings object." |
// Step 2: "Let script by the result of fetch a worklet script given |
@@ -85,6 +94,12 @@ void MainThreadWorkletGlobalScope::Terminate() { |
Dispose(); |
} |
+WorkletModuleResponsesMapProxy* |
+MainThreadWorkletGlobalScope::GetModuleResponsesMapProxy() const { |
+ DCHECK(module_responses_map_proxy_); |
+ return module_responses_map_proxy_; |
+} |
+ |
void MainThreadWorkletGlobalScope::AddConsoleMessage( |
ConsoleMessage* console_message) { |
GetFrame()->Console().AddMessage(console_message); |
@@ -99,6 +114,7 @@ CoreProbeSink* MainThreadWorkletGlobalScope::GetProbeSink() { |
} |
DEFINE_TRACE(MainThreadWorkletGlobalScope) { |
+ visitor->Trace(module_responses_map_proxy_); |
WorkletGlobalScope::Trace(visitor); |
ContextClient::Trace(visitor); |
} |