diff --git a/third_party/blink/renderer/core/animation/animatable.idl b/third_party/blink/renderer/core/animation/animatable.idl index ac01a8534aa464..3e816b75b9033c 100644 --- a/third_party/blink/renderer/core/animation/animatable.idl +++ b/third_party/blink/renderer/core/animation/animatable.idl @@ -31,7 +31,7 @@ // https://w3.org/TR/web-animations-1/#the-animatable-interface-mixin interface mixin Animatable { [CallWith=ScriptState, Measure, RaisesException] Animation animate(object? keyframes, optional (unrestricted double or KeyframeAnimationOptions) options); - [RuntimeEnabled=WebAnimationsAPI] sequence getAnimations(optional GetAnimationsOptions options = {}); + sequence getAnimations(optional GetAnimationsOptions options = {}); }; // https://drafts.csswg.org/web-animations-1/#extensions-to-the-element-interface diff --git a/third_party/blink/renderer/core/animation/animation.idl b/third_party/blink/renderer/core/animation/animation.idl index fabc5e86b9efd7..bd549dfe825d79 100644 --- a/third_party/blink/renderer/core/animation/animation.idl +++ b/third_party/blink/renderer/core/animation/animation.idl @@ -40,27 +40,27 @@ enum ReplaceState { "active", "removed", "persisted" }; ] interface Animation : EventTarget { [CallWith=ExecutionContext, RaisesException] constructor(optional AnimationEffect? effect = null, optional AnimationTimeline? timeline); [Measure] attribute AnimationEffect? effect; - [RuntimeEnabled=WebAnimationsAPI] attribute AnimationTimeline? timeline; + attribute AnimationTimeline? timeline; [Measure, RaisesException=Setter] attribute CSSNumberish? startTime; [Measure, RaisesException=Setter] attribute CSSNumberish? currentTime; [Measure, RaisesException=Setter] attribute double playbackRate; [RuntimeEnabled=ScrollTimeline, Measure, RaisesException=Setter] attribute (TimelineRangeOffset or DOMString) rangeStart; [RuntimeEnabled=ScrollTimeline, Measure, RaisesException=Setter] attribute (TimelineRangeOffset or DOMString) rangeEnd; [Measure] readonly attribute AnimationPlayState playState; - [RuntimeEnabled=WebAnimationsAPI, Measure] readonly attribute ReplaceState replaceState; + [Measure] readonly attribute ReplaceState replaceState; [Measure] readonly attribute boolean pending; - [RuntimeEnabled=WebAnimationsAPI, Measure, RaisesException, CEReactions] void commitStyles(); + [Measure, RaisesException, CEReactions] void commitStyles(); [Measure, RaisesException] void finish(); [Measure, RaisesException] void play(); [Measure, RaisesException] void pause(); [Measure, RaisesException] void reverse(); [Measure, RaisesException] void updatePlaybackRate(double playback_rate); - [RuntimeEnabled=WebAnimationsAPI, Measure] void persist(); + [Measure] void persist(); [Measure] attribute DOMString id; [Measure] void cancel(); [Measure] attribute EventHandler onfinish; [Measure] attribute EventHandler oncancel; - [RuntimeEnabled=WebAnimationsAPI, Measure] attribute EventHandler onremove; - [RuntimeEnabled=WebAnimationsAPI, CallWith=ScriptState] readonly attribute Promise finished; - [RuntimeEnabled=WebAnimationsAPI, CallWith=ScriptState] readonly attribute Promise ready; + [Measure] attribute EventHandler onremove; + [CallWith=ScriptState] readonly attribute Promise finished; + [CallWith=ScriptState] readonly attribute Promise ready; }; diff --git a/third_party/blink/renderer/core/animation/animation_effect_timing.idl b/third_party/blink/renderer/core/animation/animation_effect_timing.idl deleted file mode 100644 index f8ab9da2577b73..00000000000000 --- a/third_party/blink/renderer/core/animation/animation_effect_timing.idl +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2014 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// https://drafts.csswg.org/web-animations/#the-animationeffecttiming-interface - -[ - RuntimeEnabled=WebAnimationsAPI -] interface AnimationEffectTiming : AnimationEffectTimingReadOnly { - attribute double delay; - attribute double endDelay; - attribute DOMString fill; - [RaisesException=Setter] attribute double iterationStart; - [RaisesException=Setter] attribute unrestricted double iterations; - [RaisesException=Setter] attribute (unrestricted double or DOMString) duration; - attribute PlaybackDirection direction; - [RaisesException=Setter] attribute DOMString easing; -}; diff --git a/third_party/blink/renderer/core/animation/animation_sim_test.cc b/third_party/blink/renderer/core/animation/animation_sim_test.cc index bf41dd6658c116..5c3718995e3276 100644 --- a/third_party/blink/renderer/core/animation/animation_sim_test.cc +++ b/third_party/blink/renderer/core/animation/animation_sim_test.cc @@ -35,8 +35,6 @@ TEST_F(AnimationSimTest, CustomPropertyBaseComputedStyle) { // around and not be valid in the exit frame of the next custom property // animation. - ScopedWebAnimationsAPIForTest web_animations(true); - SimRequest main_resource("https://example.com/", "text/html"); LoadURL("https://example.com/"); main_resource.Complete("
"); diff --git a/third_party/blink/renderer/core/animation/animation_timeline.idl b/third_party/blink/renderer/core/animation/animation_timeline.idl index 6f78fb14db2832..c4ca4f44279303 100644 --- a/third_party/blink/renderer/core/animation/animation_timeline.idl +++ b/third_party/blink/renderer/core/animation/animation_timeline.idl @@ -6,7 +6,6 @@ enum TimelinePhase { "inactive", "before", "active", "after" }; [ - RuntimeEnabled=WebAnimationsAPI, Exposed=Window ] interface AnimationTimeline { readonly attribute CSSNumberish? currentTime; diff --git a/third_party/blink/renderer/core/animation/css/css_animation.idl b/third_party/blink/renderer/core/animation/css/css_animation.idl index b587d4a3b38500..cfbfa6d74d8393 100644 --- a/third_party/blink/renderer/core/animation/css/css_animation.idl +++ b/third_party/blink/renderer/core/animation/css/css_animation.idl @@ -4,7 +4,7 @@ // https://drafts.csswg.org/css-animations-2/#the-CSSAnimation-interface -[Exposed=Window, RuntimeEnabled=WebAnimationsAPI] +[Exposed=Window] interface CSSAnimation : Animation { readonly attribute CSSOMString animationName; }; diff --git a/third_party/blink/renderer/core/animation/css/css_transition.idl b/third_party/blink/renderer/core/animation/css/css_transition.idl index a855fdd6fe118c..a5dc5eaa47786e 100644 --- a/third_party/blink/renderer/core/animation/css/css_transition.idl +++ b/third_party/blink/renderer/core/animation/css/css_transition.idl @@ -4,7 +4,7 @@ // https://drafts.csswg.org/css-transitions-2/#the-CSSTransition-interface -[Exposed=Window, RuntimeEnabled=WebAnimationsAPI] +[Exposed=Window] interface CSSTransition : Animation { readonly attribute CSSOMString transitionProperty; }; diff --git a/third_party/blink/renderer/core/animation/document_animation.idl b/third_party/blink/renderer/core/animation/document_animation.idl index f19e27f4557f6e..b0c52901d41baa 100644 --- a/third_party/blink/renderer/core/animation/document_animation.idl +++ b/third_party/blink/renderer/core/animation/document_animation.idl @@ -5,8 +5,7 @@ // https://w3.org/TR/web-animations-1/#extensions-to-the-document-interface [ - ImplementedAs=DocumentAnimation, - RuntimeEnabled=WebAnimationsAPI + ImplementedAs=DocumentAnimation ] partial interface Document { readonly attribute DocumentTimeline timeline; }; diff --git a/third_party/blink/renderer/core/animation/document_timeline.idl b/third_party/blink/renderer/core/animation/document_timeline.idl index b7f3125cfa23ca..06686627b1930e 100644 --- a/third_party/blink/renderer/core/animation/document_timeline.idl +++ b/third_party/blink/renderer/core/animation/document_timeline.idl @@ -5,7 +5,6 @@ // https://w3.org/TR/web-animations-1/#the-documenttimeline-interface [ - RuntimeEnabled=WebAnimationsAPI, Exposed=Window ] interface DocumentTimeline : AnimationTimeline { [CallWith=ExecutionContext] constructor(optional DocumentTimelineOptions options = {}); diff --git a/third_party/blink/renderer/core/animation/effect_input.cc b/third_party/blink/renderer/core/animation/effect_input.cc index cd0ea2d0a2113d..97c5cdd17bb3dd 100644 --- a/third_party/blink/renderer/core/animation/effect_input.cc +++ b/third_party/blink/renderer/core/animation/effect_input.cc @@ -315,70 +315,6 @@ void SetKeyframeValue(Element* element, keyframe.SetSVGAttributeValue(*svg_attribute, value); } -bool ValidatePartialKeyframes(const StringKeyframeVector& keyframes) { - // WebAnimationsAPIEnabled guards both additive animations and allowing - // partial (implicit) keyframes. - if (RuntimeEnabledFeatures::WebAnimationsAPIEnabled()) - return true; - - // An implicit keyframe is inserted in the below cases. Note that the 'first' - // keyframe is actually all keyframes with offset 0.0, and the 'last' keyframe - // is actually all keyframes with offset 1.0. - // - // 1. A given property is present somewhere in the full set of keyframes, - // but is either not present in the first keyframe (requiring an implicit - // start value for that property) or last keyframe (requiring an implicit - // end value for that property). - // - // 2. There is no first keyframe (requiring an implicit start keyframe), or - // no last keyframe (requiring an implicit end keyframe). - // - // We only care about CSS properties here; animating SVG elements is protected - // by a different runtime flag. - - Vector computed_offsets = - KeyframeEffectModelBase::GetComputedOffsets(keyframes); - - PropertyHandleSet properties_with_offset_0; - PropertyHandleSet properties_with_offset_1; - for (wtf_size_t i = 0; i < keyframes.size(); i++) { - for (const PropertyHandle& property : keyframes[i]->Properties()) { - if (!property.IsCSSProperty()) - continue; - - if (computed_offsets[i] == 0.0) { - properties_with_offset_0.insert(property); - } else { - if (!properties_with_offset_0.Contains(property)) - return false; - if (computed_offsets[i] == 1.0) { - properties_with_offset_1.insert(property); - } - } - } - } - - // At this point we have compared all keyframes with offset > 0 against the - // properties contained in the first keyframe, and found that they match. Now - // we just need to make sure that there aren't any properties in the first - // keyframe that aren't in the last keyframe. - return properties_with_offset_0.size() == properties_with_offset_1.size(); -} - -// Ensures that a CompositeOperation is of an allowed value for a given -// StringKeyframe and the current runtime flags. -EffectModel::CompositeOperation ResolveCompositeOperationForKeyframe( - EffectModel::CompositeOperation composite, - StringKeyframe* keyframe) { - bool additive_composite = composite == EffectModel::kCompositeAdd || - composite == EffectModel::kCompositeAccumulate; - if (!RuntimeEnabledFeatures::WebAnimationsAPIEnabled() && - keyframe->HasCssProperty() && additive_composite) { - return EffectModel::kCompositeReplace; - } - return composite; -} - bool IsAnimatableKeyframeAttribute(const String& property, Element* element, const Document& document) { @@ -570,8 +506,7 @@ StringKeyframeVector ConvertArrayForm(Element* element, absl::optional composite = EffectModel::StringToCompositeOperation(base_keyframe->composite()); if (composite) { - keyframe->SetComposite( - ResolveCompositeOperationForKeyframe(composite.value(), keyframe)); + keyframe->SetComposite(composite.value()); } // 8.2. Let the timing function of frame be the result of parsing the @@ -822,8 +757,7 @@ StringKeyframeVector ConvertObjectForm(Element* element, absl::optional composite = composite_operations[i % composite_operations.size()]; if (composite) { - keyframe->SetComposite( - ResolveCompositeOperationForKeyframe(composite.value(), keyframe)); + keyframe->SetComposite(composite.value()); } } @@ -851,22 +785,6 @@ StringKeyframeVector ConvertObjectForm(Element* element, return results; } -bool HasAdditiveCompositeCSSKeyframe( - const KeyframeEffectModelBase::KeyframeGroupMap& keyframe_groups) { - for (const auto& keyframe_group : keyframe_groups) { - PropertyHandle property = keyframe_group.key; - if (!property.IsCSSProperty()) - continue; - for (const auto& keyframe : keyframe_group.value->Keyframes()) { - if (keyframe->Composite() == EffectModel::kCompositeAdd || - keyframe->Composite() == EffectModel::kCompositeAccumulate) { - return true; - } - } - } - return false; -} - } // namespace KeyframeEffectModelBase* EffectInput::Convert( @@ -880,19 +798,8 @@ KeyframeEffectModelBase* EffectInput::Convert( if (exception_state.HadException()) return nullptr; - composite = ResolveCompositeOperation(composite, parsed_keyframes); - - auto* keyframe_effect_model = MakeGarbageCollected( + return MakeGarbageCollected( parsed_keyframes, composite, LinearTimingFunction::Shared()); - - if (!RuntimeEnabledFeatures::WebAnimationsAPIEnabled()) { - // This should be enforced by the parsing code. - DCHECK(!HasAdditiveCompositeCSSKeyframe( - keyframe_effect_model->GetPropertySpecificKeyframeGroups())); - } - - DCHECK(!exception_state.HadException()); - return keyframe_effect_model; } StringKeyframeVector EffectInput::ParseKeyframesArgument( @@ -940,26 +847,7 @@ StringKeyframeVector EffectInput::ParseKeyframesArgument( keyframe->SetLogicalPropertyResolutionContext(text_direction, writing_mode); } - if (!ValidatePartialKeyframes(parsed_keyframes)) { - exception_state.ThrowDOMException(DOMExceptionCode::kNotSupportedError, - "Partial keyframes are not supported."); - return {}; - } return parsed_keyframes; } -EffectModel::CompositeOperation EffectInput::ResolveCompositeOperation( - EffectModel::CompositeOperation composite, - const StringKeyframeVector& keyframes) { - EffectModel::CompositeOperation result = composite; - for (const Member& keyframe : keyframes) { - // Replace is always supported, so we can early-exit if and when we have - // that as our composite value. - if (result == EffectModel::kCompositeReplace) - break; - result = ResolveCompositeOperationForKeyframe(result, keyframe); - } - return result; -} - } // namespace blink diff --git a/third_party/blink/renderer/core/animation/effect_input.h b/third_party/blink/renderer/core/animation/effect_input.h index c38f8271ba05df..97b1d4956046b9 100644 --- a/third_party/blink/renderer/core/animation/effect_input.h +++ b/third_party/blink/renderer/core/animation/effect_input.h @@ -35,15 +35,6 @@ class CORE_EXPORT EffectInput { const ScriptValue& keyframes, ScriptState*, ExceptionState&); - - // Ensures that a CompositeOperation is of an allowed value for a set of - // StringKeyframes and the current runtime flags. - // - // Under certain runtime flags, additive composite operations are not allowed - // for CSS properties. - static EffectModel::CompositeOperation ResolveCompositeOperation( - EffectModel::CompositeOperation, - const StringKeyframeVector&); }; } // namespace blink diff --git a/third_party/blink/renderer/core/animation/effect_stack.cc b/third_party/blink/renderer/core/animation/effect_stack.cc index b5aa4c956781ee..9d08daa9a30d4b 100644 --- a/third_party/blink/renderer/core/animation/effect_stack.cc +++ b/third_party/blink/renderer/core/animation/effect_stack.cc @@ -53,20 +53,17 @@ void CopyToActiveInterpolationsMap( target.insert(property, MakeGarbageCollected()); ActiveInterpolations* active_interpolations = entry.stored_value->value; - // Assuming stacked effects are enabled, interpolations that depend on - // underlying values (e.g. have a non-replace composite mode) should be - // added onto the 'stack' of active interpolations. However any 'replace' - // effect erases everything that came before it, so we must clear the stack - // when that happens. - const bool allow_stacked_effects = - RuntimeEnabledFeatures::WebAnimationsAPIEnabled() || - !property.IsCSSProperty() || property.IsPresentationAttribute(); + // Interpolations that depend on underlying values (e.g. have a non-replace + // composite mode) should be added onto the 'stack' of active + // interpolations. However any 'replace' effect erases everything that came + // before it, so we must clear the stack when that happens. const bool effect_depends_on_underlying_value = interpolation->IsInvalidatableInterpolation() && To(*interpolation.Get()) .DependsOnUnderlyingValue(); - if (!allow_stacked_effects || !effect_depends_on_underlying_value) + if (!effect_depends_on_underlying_value) { active_interpolations->clear(); + } active_interpolations->push_back(interpolation); } } diff --git a/third_party/blink/renderer/core/animation/keyframe_effect.cc b/third_party/blink/renderer/core/animation/keyframe_effect.cc index fc72aa31bdc6fe..1acaf2c6438bfe 100644 --- a/third_party/blink/renderer/core/animation/keyframe_effect.cc +++ b/third_party/blink/renderer/core/animation/keyframe_effect.cc @@ -148,8 +148,7 @@ KeyframeEffect* KeyframeEffect::Create( composite = EffectModel::StringToCompositeOperation(effect_options->composite()) .value(); - if (RuntimeEnabledFeatures::WebAnimationsAPIEnabled() && - !effect_options->pseudoElement().empty()) { + if (!effect_options->pseudoElement().empty()) { pseudo = effect_options->pseudoElement(); if (!ValidateAndCanonicalizePseudo(pseudo)) { // TODO(gtsteel): update when @@ -355,9 +354,6 @@ void KeyframeEffect::setKeyframes(ScriptState* script_state, } void KeyframeEffect::SetKeyframes(StringKeyframeVector keyframes) { - Model()->SetComposite( - EffectInput::ResolveCompositeOperation(Model()->Composite(), keyframes)); - To(Model())->SetFrames(keyframes); // Changing the keyframes will invalidate any sampled effect, as well as diff --git a/third_party/blink/renderer/core/animation/keyframe_effect.idl b/third_party/blink/renderer/core/animation/keyframe_effect.idl index 085979bd8cb39c..5077101b9d0931 100644 --- a/third_party/blink/renderer/core/animation/keyframe_effect.idl +++ b/third_party/blink/renderer/core/animation/keyframe_effect.idl @@ -38,8 +38,8 @@ enum CompositeOperation { "replace", "add", "accumulate" }; [CallWith=ScriptState, RaisesException, Measure] constructor(Element? target, object? keyframes, optional (unrestricted double or KeyframeEffectOptions) options); [CallWith=ScriptState, RaisesException, Measure] constructor(KeyframeEffect source); attribute Element? target; - [RuntimeEnabled=WebAnimationsAPI, RaisesException=Setter] attribute CSSOMString? pseudoElement; - [RuntimeEnabled=WebAnimationsAPI] attribute CompositeOperation composite; - [CallWith=ScriptState, RuntimeEnabled=WebAnimationsAPI] sequence getKeyframes(); - [CallWith=ScriptState, RaisesException, RuntimeEnabled=WebAnimationsAPI] void setKeyframes(object? keyframes); + [RaisesException=Setter] attribute CSSOMString? pseudoElement; + attribute CompositeOperation composite; + [CallWith=ScriptState] sequence getKeyframes(); + [CallWith=ScriptState, RaisesException] void setKeyframes(object? keyframes); }; diff --git a/third_party/blink/renderer/core/animation/keyframe_effect_test.cc b/third_party/blink/renderer/core/animation/keyframe_effect_test.cc index c0cd0cd261dea1..6e16ec149072eb 100644 --- a/third_party/blink/renderer/core/animation/keyframe_effect_test.cc +++ b/third_party/blink/renderer/core/animation/keyframe_effect_test.cc @@ -333,42 +333,6 @@ TEST_F(AnimationKeyframeEffectV8Test, SpecifiedDurationGetter) { EXPECT_EQ("auto", duration2->GetAsString()); } -TEST_F(AnimationKeyframeEffectV8Test, SetKeyframesAdditiveCompositeOperation) { - // AnimationWorklet also needs to be disabled since it depends on - // WebAnimationsAPI and prevents us from turning it off if enabled. - ScopedAnimationWorkletForTest no_animation_worklet(false); - ScopedWebAnimationsAPIForTest no_web_animations(false); - V8TestingScope scope; - ScriptState* script_state = scope.GetScriptState(); - ScriptValue js_keyframes = ScriptValue::CreateNull(scope.GetIsolate()); - v8::Local timing_input = v8::Object::New(scope.GetIsolate()); - DummyExceptionStateForTesting exception_state; - KeyframeEffectOptions* timing_input_dictionary = - NativeValueTraits::NativeValue( - scope.GetIsolate(), timing_input, exception_state); - ASSERT_FALSE(exception_state.HadException()); - - // Since there are no CSS-targeting keyframes, we can create a KeyframeEffect - // with composite = 'add'. - timing_input_dictionary->setComposite("add"); - KeyframeEffect* effect = CreateAnimationFromOption( - script_state, element.Get(), js_keyframes, timing_input_dictionary); - EXPECT_EQ(effect->Model()->Composite(), EffectModel::kCompositeAdd); - - // But if we then setKeyframes with CSS-targeting keyframes, the composite - // should fallback to 'replace'. - HeapVector blink_keyframes = { - V8ObjectBuilder(script_state).AddString("width", "10px").GetScriptValue(), - V8ObjectBuilder(script_state).AddString("width", "0px").GetScriptValue()}; - ScriptValue new_js_keyframes( - scope.GetIsolate(), - ToV8Traits>::ToV8(script_state, blink_keyframes) - .ToLocalChecked()); - effect->setKeyframes(script_state, new_js_keyframes, exception_state); - ASSERT_FALSE(exception_state.HadException()); - EXPECT_EQ(effect->Model()->Composite(), EffectModel::kCompositeReplace); -} - TEST_F(KeyframeEffectTest, TimeToEffectChange) { Timing timing; timing.iteration_duration = ANIMATION_TIME_DELTA_FROM_SECONDS(100); diff --git a/third_party/blink/renderer/core/dom/document_or_shadow_root.idl b/third_party/blink/renderer/core/dom/document_or_shadow_root.idl index b4cba6d45d1557..68a6e21ede495a 100644 --- a/third_party/blink/renderer/core/dom/document_or_shadow_root.idl +++ b/third_party/blink/renderer/core/dom/document_or_shadow_root.idl @@ -9,7 +9,7 @@ interface mixin DocumentOrShadowRoot { [Affects=Nothing] Selection? getSelection(); // Web-Animation-API //https://drafts.csswg.org/web-animations/#extensions-to-the-documentorshadowroot-interface-mixin - [RuntimeEnabled=WebAnimationsAPI, Measure] sequence getAnimations(); + [Measure] sequence getAnimations(); // CSSOM View Module // https://drafts.csswg.org/cssom-view/#extensions-to-the-document-interface [Measure] Element? elementFromPoint(double x, double y); diff --git a/third_party/blink/renderer/core/events/animation_playback_event.idl b/third_party/blink/renderer/core/events/animation_playback_event.idl index 432e36f1454ac2..627c2ec767c397 100644 --- a/third_party/blink/renderer/core/events/animation_playback_event.idl +++ b/third_party/blink/renderer/core/events/animation_playback_event.idl @@ -5,7 +5,6 @@ // https://drafts.csswg.org/web-animations/#the-animationplaybackevent-interface [ - RuntimeEnabled=WebAnimationsAPI, Exposed=Window ] interface AnimationPlaybackEvent : Event { constructor(DOMString type, optional AnimationPlaybackEventInit eventInitDict = {}); diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index be21714238f204..d6e776ae79d04b 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 @@ -3952,12 +3952,6 @@ status: "stable", copied_from_base_feature_if: "overridden", }, - { - name: "WebAnimationsAPI", - status: "stable", - implied_by: ["AnimationWorklet"], - base_feature: "none", - }, { name: "WebAnimationsSVG", status: "experimental", diff --git a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animation/style-change-events-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animation/style-change-events-expected.txt index 030d9b7ed806c3..3e77da476e9852 100644 --- a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animation/style-change-events-expected.txt +++ b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animation/style-change-events-expected.txt @@ -1,30 +1,30 @@ This is a testharness.js-based test. [PASS] All property keys are recognized [PASS] Animation.effect produces expected style change events +[PASS] Animation.timeline produces expected style change events [PASS] Animation.startTime produces expected style change events [PASS] Animation.currentTime produces expected style change events [PASS] Animation.playbackRate produces expected style change events [PASS] Animation.playState produces expected style change events +[PASS] Animation.replaceState produces expected style change events [PASS] Animation.pending produces expected style change events [PASS] Animation.id produces expected style change events [PASS] Animation.onfinish produces expected style change events [PASS] Animation.oncancel produces expected style change events +[PASS] Animation.onremove produces expected style change events +[PASS] Animation.finished produces expected style change events +[PASS] Animation.ready produces expected style change events [PASS] Animation.cancel produces expected style change events +[FAIL] Animation.commitStyles produces expected style change events + assert_true: A transition should have been triggered expected true got false [PASS] Animation.finish produces expected style change events [PASS] Animation.pause produces expected style change events +[PASS] Animation.persist produces expected style change events [PASS] Animation.play produces expected style change events [PASS] Animation.reverse produces expected style change events [PASS] Animation.updatePlaybackRate produces expected style change events -[PASS] Animation.timeline produces expected style change events -[PASS] Animation.replaceState produces expected style change events -[PASS] Animation.onremove produces expected style change events -[PASS] Animation.finished produces expected style change events -[PASS] Animation.ready produces expected style change events [PASS] Animation.rangeStart produces expected style change events [PASS] Animation.rangeEnd produces expected style change events -[FAIL] Animation.commitStyles produces expected style change events - assert_true: A transition should have been triggered expected true got false -[PASS] Animation.persist produces expected style change events [PASS] Animation.Animation constructor produces expected style change events Harness: the test ran to completion.