#include "third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.h"
#include <utility>
#include "base/task/single_thread_task_runner.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "third_party/blink/public/mojom/script/script_type.mojom-blink.h"
#include "third_party/blink/public/mojom/v8_cache_options.mojom-blink.h"
#include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/execution_context/security_context.h"
#include "third_party/blink/renderer/core/frame/csp/content_security_policy.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/local_frame_client.h"
#include "third_party/blink/renderer/core/inspector/thread_debugger_common_impl.h"
#include "third_party/blink/renderer/core/loader/worker_fetch_context.h"
#include "third_party/blink/renderer/core/origin_trials/origin_trial_context.h"
#include "third_party/blink/renderer/core/script/script.h"
#include "third_party/blink/renderer/core/workers/global_scope_creation_params.h"
#include "third_party/blink/renderer/core/workers/threaded_worklet_object_proxy.h"
#include "third_party/blink/renderer/core/workers/worker_clients.h"
#include "third_party/blink/renderer/core/workers/worklet_global_scope.h"
#include "third_party/blink/renderer/core/workers/worklet_module_responses_map.h"
#include "third_party/blink/renderer/core/workers/worklet_pending_tasks.h"
#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h"
#include "third_party/blink/renderer/platform/loader/fetch/worker_resource_timing_notifier.h"
#include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_copier_base.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_copier_std.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
namespace blink {
ThreadedWorkletMessagingProxy::ThreadedWorkletMessagingProxy(
ExecutionContext* execution_context,
scoped_refptr<base::SingleThreadTaskRunner> parent_agent_group_task_runner)
: … { … }
void ThreadedWorkletMessagingProxy::Initialize(
WorkerClients* worker_clients,
WorkletModuleResponsesMap* module_responses_map,
const std::optional<WorkerBackingThreadStartupData>& thread_startup_data,
mojom::blink::WorkletGlobalScopeCreationParamsPtr
client_provided_global_scope_creation_params) { … }
void ThreadedWorkletMessagingProxy::Trace(Visitor* visitor) const { … }
void ThreadedWorkletMessagingProxy::FetchAndInvokeScript(
const KURL& module_url_record,
network::mojom::CredentialsMode credentials_mode,
const FetchClientSettingsObjectSnapshot& outside_settings_object,
WorkerResourceTimingNotifier& outside_resource_timing_notifier,
scoped_refptr<base::SingleThreadTaskRunner> outside_settings_task_runner,
WorkletPendingTasks* pending_tasks) { … }
void ThreadedWorkletMessagingProxy::WorkletObjectDestroyed() { … }
void ThreadedWorkletMessagingProxy::TerminateWorkletGlobalScope() { … }
std::unique_ptr<ThreadedWorkletObjectProxy>
ThreadedWorkletMessagingProxy::CreateObjectProxy(
ThreadedWorkletMessagingProxy* messaging_proxy,
ParentExecutionContextTaskRunners* parent_execution_context_task_runners,
scoped_refptr<base::SingleThreadTaskRunner>
parent_agent_group_task_runner) { … }
ThreadedWorkletObjectProxy&
ThreadedWorkletMessagingProxy::WorkletObjectProxy() { … }
}