diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/workers/worker_or_worklet_module_fetch_coordinator_proxy.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/core/workers/worker_or_worklet_module_fetch_coordinator_proxy.cc | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/chromium/third_party/blink/renderer/core/workers/worker_or_worklet_module_fetch_coordinator_proxy.cc b/chromium/third_party/blink/renderer/core/workers/worker_or_worklet_module_fetch_coordinator_proxy.cc deleted file mode 100644 index 7669cd98461..00000000000 --- a/chromium/third_party/blink/renderer/core/workers/worker_or_worklet_module_fetch_coordinator_proxy.cc +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright 2017 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/workers/worker_or_worklet_module_fetch_coordinator_proxy.h" - -#include "third_party/blink/renderer/core/loader/modulescript/module_script_creation_params.h" -#include "third_party/blink/renderer/platform/cross_thread_functional.h" -#include "third_party/blink/renderer/platform/web_task_runner.h" - -namespace blink { - -namespace { - -// ClientAdapter mediates WorkletModuleResponsesMap on the main -// thread and WorkletModuleResponsesMap::Client implementation on -// the worker or worklet context thread as follows. -// -// CoordinatorProxy (context thread) --> Coordinator (main thread) -// Coordinator::Client (context thread) <-- ClientAdapter (main thread) -// -// This lives on the main thread. -class ClientAdapter final : public GarbageCollectedFinalized<ClientAdapter>, - public WorkletModuleResponsesMap::Client { - USING_GARBAGE_COLLECTED_MIXIN(ClientAdapter); - - public: - static ClientAdapter* Create( - WorkletModuleResponsesMap::Client* client, - scoped_refptr<base::SingleThreadTaskRunner> inside_settings_task_runner) { - return new ClientAdapter(client, std::move(inside_settings_task_runner)); - } - - ~ClientAdapter() override = default; - - void OnFetched(const ModuleScriptCreationParams& params) override { - DCHECK(IsMainThread()); - PostCrossThreadTask( - *inside_settings_task_runner_, FROM_HERE, - CrossThreadBind(&WorkletModuleResponsesMap::Client::OnFetched, client_, - params)); - } - - void OnFailed() override { - DCHECK(IsMainThread()); - PostCrossThreadTask( - *inside_settings_task_runner_, FROM_HERE, - CrossThreadBind(&WorkletModuleResponsesMap::Client::OnFailed, client_)); - } - - void Trace(blink::Visitor* visitor) override {} - - private: - ClientAdapter( - WorkletModuleResponsesMap::Client* client, - scoped_refptr<base::SingleThreadTaskRunner> inside_settings_task_runner) - : client_(client), - inside_settings_task_runner_(std::move(inside_settings_task_runner)) {} - - CrossThreadPersistent<WorkletModuleResponsesMap::Client> client_; - scoped_refptr<base::SingleThreadTaskRunner> inside_settings_task_runner_; -}; - -} // namespace - -WorkerOrWorkletModuleFetchCoordinatorProxy* -WorkerOrWorkletModuleFetchCoordinatorProxy::Create( - WorkletModuleResponsesMap* module_responses_map, - scoped_refptr<base::SingleThreadTaskRunner> outside_settings_task_runner, - scoped_refptr<base::SingleThreadTaskRunner> inside_settings_task_runner) { - return new WorkerOrWorkletModuleFetchCoordinatorProxy( - module_responses_map, std::move(outside_settings_task_runner), - std::move(inside_settings_task_runner)); -} - -void WorkerOrWorkletModuleFetchCoordinatorProxy::Fetch( - const FetchParameters& fetch_params, - Client* client) { - DCHECK(inside_settings_task_runner_->RunsTasksInCurrentSequence()); - PostCrossThreadTask( - *outside_settings_task_runner_, FROM_HERE, - CrossThreadBind( - &WorkerOrWorkletModuleFetchCoordinatorProxy::FetchOnMainThread, - WrapCrossThreadPersistent(this), fetch_params, - WrapCrossThreadPersistent(client))); -} - -void WorkerOrWorkletModuleFetchCoordinatorProxy::Trace( - blink::Visitor* visitor) {} - -WorkerOrWorkletModuleFetchCoordinatorProxy:: - WorkerOrWorkletModuleFetchCoordinatorProxy( - WorkletModuleResponsesMap* module_responses_map, - scoped_refptr<base::SingleThreadTaskRunner> - outside_settings_task_runner, - scoped_refptr<base::SingleThreadTaskRunner> inside_settings_task_runner) - : module_responses_map_(module_responses_map), - outside_settings_task_runner_(outside_settings_task_runner), - inside_settings_task_runner_(inside_settings_task_runner) { - DCHECK(module_responses_map_); - DCHECK(outside_settings_task_runner_); - DCHECK(inside_settings_task_runner_); - DCHECK(inside_settings_task_runner_->RunsTasksInCurrentSequence()); -} - -void WorkerOrWorkletModuleFetchCoordinatorProxy::FetchOnMainThread( - std::unique_ptr<CrossThreadFetchParametersData> cross_thread_fetch_params, - Client* client) { - DCHECK(IsMainThread()); - FetchParameters fetch_params(std::move(cross_thread_fetch_params)); - ClientAdapter* wrapper = - ClientAdapter::Create(client, inside_settings_task_runner_); - module_responses_map_->Fetch(fetch_params, wrapper); -} - -} // namespace blink |