1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
// Copyright 2025 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/animation/animation_trigger.h"
#include "third_party/blink/renderer/core/animation/animation.h"
#include "third_party/blink/renderer/core/animation/css/css_animation.h"
#include "third_party/blink/renderer/core/animation/deferred_timeline.h"
#include "third_party/blink/renderer/core/animation/document_animations.h"
#include "third_party/blink/renderer/core/animation/document_timeline.h"
#include "third_party/blink/renderer/core/animation/scroll_timeline.h"
#include "third_party/blink/renderer/core/animation/scroll_timeline_util.h"
#include "third_party/blink/renderer/core/animation/timeline_range.h"
#include "third_party/blink/renderer/core/animation/view_timeline.h"
#include "third_party/blink/renderer/core/css/properties/css_parsing_utils.h"
#include "third_party/blink/renderer/core/css/style_sheet_contents.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/layout/adjust_for_absolute_zoom.h"
#include "third_party/blink/renderer/core/layout/layout_view.h"
#include "third_party/blink/renderer/core/style/computed_style_constants.h"
namespace blink {
void AnimationTrigger::addAnimation(Animation* animation,
ExceptionState& exception_state) {
if (animations_.Contains(animation)) {
return;
}
animation->PauseInternal(exception_state);
if (exception_state.HadException()) {
return;
}
animations_.insert(animation);
animation->AddTrigger(this);
DidAddAnimation(animation, exception_state);
}
void AnimationTrigger::removeAnimation(Animation* animation) {
animations_.erase(animation);
animation->RemoveTrigger(this);
DidRemoveAnimation(animation);
}
void AnimationTrigger::RemoveAnimations() {
HeapHashSet<WeakMember<Animation>> animations;
animations_.swap(animations);
for (Animation* animation : animations) {
removeAnimation(animation);
}
}
bool AnimationTrigger::IsTimelineTrigger() const {
return false;
}
bool AnimationTrigger::IsEventTrigger() const {
return false;
}
void AnimationTrigger::DidAddAnimation(Animation* animation,
ExceptionState& exception_state) {}
void AnimationTrigger::DidRemoveAnimation(Animation* animation) {}
void AnimationTrigger::Trace(Visitor* visitor) const {
visitor->Trace(animations_);
ScriptWrappable::Trace(visitor);
}
} // namespace blink
|