blob: 40a40e6de31afe92b6d9f94dfdf9401d37cb7857 [file]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "cc/animation/timeline_trigger.h"
#include "cc/animation/animation_host.h"
#include "cc/animation/animation_timeline.h"
#include "cc/animation/scroll_timeline.h"
#include "cc/trees/property_tree.h"
namespace cc {
TimelineTrigger::TimelineTrigger(int id,
scoped_refptr<AnimationTimeline> timeline)
: AnimationTrigger(id), timeline_(timeline) {}
TimelineTrigger::~TimelineTrigger() = default;
scoped_refptr<TimelineTrigger> TimelineTrigger::Create(
int id,
scoped_refptr<AnimationTimeline> timeline) {
return base::WrapRefCounted(new TimelineTrigger(id, timeline));
}
scoped_refptr<AnimationTrigger> TimelineTrigger::CreateImplInstance(
AnimationHost& host_impl) const {
scoped_refptr<AnimationTimeline> timeline_impl =
host_impl.GetScopedRefTimelineById(timeline_.Read(*this)->id());
CHECK(timeline_impl);
scoped_refptr<TimelineTrigger> impl_instance =
TimelineTrigger::Create(id(), timeline_impl);
return impl_instance;
}
bool TimelineTrigger::IsTimelineTrigger() const {
return true;
}
} // namespace cc