#include "third_party/blink/renderer/core/animation/document_animations.h"
#include <algorithm>
#include "cc/animation/animation_host.h"
#include "cc/animation/animation_timeline.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/renderer/core/animation/animation_clock.h"
#include "third_party/blink/renderer/core/animation/animation_timeline.h"
#include "third_party/blink/renderer/core/animation/keyframe_effect.h"
#include "third_party/blink/renderer/core/animation/pending_animations.h"
#include "third_party/blink/renderer/core/animation/worklet_animation_controller.h"
#include "third_party/blink/renderer/core/css/style_engine.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/dom/element.h"
#include "third_party/blink/renderer/core/dom/node_computed_style.h"
#include "third_party/blink/renderer/core/execution_context/agent.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/local_frame_view.h"
#include "third_party/blink/renderer/core/frame/settings.h"
#include "third_party/blink/renderer/core/page/chrome_client.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/core/page/page_animator.h"
#include "third_party/blink/renderer/core/style/computed_style.h"
#include "third_party/blink/renderer/platform/heap/persistent.h"
#include "third_party/blink/renderer/platform/scheduler/public/event_loop.h"
namespace blink {
namespace {
void UpdateAnimationTiming(
Document& document,
HeapHashSet<WeakMember<AnimationTimeline>>& timelines,
TimingUpdateReason reason) { … }
bool CompareAnimations(const Member<Animation>& left,
const Member<Animation>& right) { … }
}
DocumentAnimations::DocumentAnimations(Document* document)
: … { … }
void DocumentAnimations::AddTimeline(AnimationTimeline& timeline) { … }
void DocumentAnimations::UpdateAnimationTimingForAnimationFrame() { … }
bool DocumentAnimations::NeedsAnimationTimingUpdate() { … }
void DocumentAnimations::UpdateAnimationTimingIfNeeded() { … }
void DocumentAnimations::UpdateAnimations(
DocumentLifecycle::LifecycleState required_lifecycle_state,
const PaintArtifactCompositor* paint_artifact_compositor,
bool compositor_properties_updated) { … }
void DocumentAnimations::MarkPendingIfCompositorPropertyAnimationChanges(
const PaintArtifactCompositor* paint_artifact_compositor) { … }
size_t DocumentAnimations::GetAnimationsCount() { … }
void DocumentAnimations::MarkAnimationsCompositorPending() { … }
HeapVector<Member<Animation>> DocumentAnimations::getAnimations(
const TreeScope& tree_scope) { … }
void DocumentAnimations::DetachCompositorTimelines() { … }
void DocumentAnimations::Trace(Visitor* visitor) const { … }
void DocumentAnimations::GetAnimationsTargetingTreeScope(
HeapVector<Member<Animation>>& animations,
const TreeScope& tree_scope) { … }
void DocumentAnimations::RemoveReplacedAnimations(
DocumentAnimations::ReplaceableAnimationsMap* replaceable_animations_map) { … }
}