#include "third_party/blink/renderer/core/animation/scroll_timeline.h"
#include <optional>
#include "third_party/blink/renderer/bindings/core/v8/v8_scroll_timeline_options.h"
#include "third_party/blink/renderer/core/animation/scroll_timeline_util.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/layout/layout_box.h"
#include "third_party/blink/renderer/core/paint/paint_layer.h"
#include "third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h"
namespace blink {
namespace {
ScrollOrientation ToPhysicalScrollOrientation(ScrollAxis axis,
const LayoutBox& source_box) { … }
Node* ResolveSource(Element* source) { … }
}
ScrollTimeline* ScrollTimeline::Create(Document& document,
ScrollTimelineOptions* options,
ExceptionState& exception_state) { … }
ScrollTimeline* ScrollTimeline::Create(Document* document,
Element* source,
ScrollAxis axis) { … }
ScrollTimeline::ScrollTimeline(Document* document,
ReferenceType reference_type,
Element* reference,
ScrollAxis axis)
: … { … }
Element* ScrollTimeline::RetainingElement() const { … }
ScrollTimeline::TimelineState ScrollTimeline::ComputeTimelineState() const { … }
void ScrollTimeline::CalculateOffsets(PaintLayerScrollableArea* scrollable_area,
ScrollOrientation physical_orientation,
TimelineState* state) const { … }
Element* ScrollTimeline::source() const { … }
Element* ScrollTimeline::ComputeSource() const { … }
Element* ScrollTimeline::ComputeSourceNoLayout() const { … }
void ScrollTimeline::AnimationAttached(Animation* animation) { … }
void ScrollTimeline::AnimationDetached(Animation* animation) { … }
Node* ScrollTimeline::ComputeResolvedSource() const { … }
void ScrollTimeline::Trace(Visitor* visitor) const { … }
bool ScrollTimeline::Matches(ReferenceType reference_type,
Element* reference_element,
ScrollAxis axis) const { … }
ScrollAxis ScrollTimeline::GetAxis() const { … }
std::optional<double> ScrollTimeline::GetMaximumScrollPosition() const { … }
}