#include "third_party/blink/renderer/modules/animationworklet/animation_worklet_proxy_client.h"
#include <memory>
#include "base/metrics/histogram_macros.h"
#include "base/task/single_thread_task_runner.h"
#include "third_party/blink/public/platform/scheduler/web_agent_group_scheduler.h"
#include "third_party/blink/renderer/core/animation/worklet_animation_controller.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/frame/web_frame_widget_impl.h"
#include "third_party/blink/renderer/core/frame/web_local_frame_impl.h"
#include "third_party/blink/renderer/core/workers/worker_thread.h"
#include "third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl.h"
#include "third_party/blink/renderer/platform/scheduler/public/non_main_thread.h"
#include "third_party/blink/renderer/platform/scheduler/public/thread_scheduler.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_copier_base.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
namespace blink {
namespace {
static const wtf_size_t kMaxMutateCountToSwitch = …;
}
const char AnimationWorkletProxyClient::kSupplementName[] = …;
const int8_t AnimationWorkletProxyClient::kNumStatelessGlobalScopes = …;
AnimationWorkletProxyClient::AnimationWorkletProxyClient(
int worklet_id,
base::WeakPtr<AnimationWorkletMutatorDispatcherImpl>
compositor_mutator_dispatcher,
scoped_refptr<base::SingleThreadTaskRunner> compositor_mutator_runner,
base::WeakPtr<AnimationWorkletMutatorDispatcherImpl>
main_thread_mutator_dispatcher,
scoped_refptr<base::SingleThreadTaskRunner> main_thread_mutator_runner)
: … { … }
void AnimationWorkletProxyClient::Trace(Visitor* visitor) const { … }
void AnimationWorkletProxyClient::SynchronizeAnimatorName(
const String& animator_name) { … }
void AnimationWorkletProxyClient::AddGlobalScope(
WorkletGlobalScope* global_scope) { … }
void AnimationWorkletProxyClient::Dispose() { … }
std::unique_ptr<AnimationWorkletOutput> AnimationWorkletProxyClient::Mutate(
std::unique_ptr<AnimationWorkletInput> input) { … }
AnimationWorkletGlobalScope*
AnimationWorkletProxyClient::SelectGlobalScopeAndUpdateAnimatorsIfNecessary() { … }
void AnimationWorkletProxyClient::AddGlobalScopeForTesting(
WorkletGlobalScope* global_scope) { … }
AnimationWorkletProxyClient* AnimationWorkletProxyClient::FromDocument(
Document* document,
int worklet_id) { … }
AnimationWorkletProxyClient* AnimationWorkletProxyClient::From(
WorkerClients* clients) { … }
void ProvideAnimationWorkletProxyClientTo(WorkerClients* clients,
AnimationWorkletProxyClient* client) { … }
}