Skip to content
Permalink
Browse files
[Web Animations] Refactor AnimationEffect and KeyframeEffect into Ani…
…mationEffectReadOnly, KeyframeEffectReadOnly and KeyframeEffect

https://bugs.webkit.org/show_bug.cgi?id=182608

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Update WPT expectations with progressions and updated failure points for all tests that involved
either AnimationEffectReadOnly or KeyframeEffectReadOnly.

* web-platform-tests/web-animations/interfaces/Animation/constructor-expected.txt:
* web-platform-tests/web-animations/interfaces/Animation/effect-expected.txt:
* web-platform-tests/web-animations/interfaces/AnimationEffectTiming/idlharness-expected.txt:
* web-platform-tests/web-animations/interfaces/Document/getAnimations-expected.txt:
* web-platform-tests/web-animations/interfaces/KeyframeEffect/constructor-expected.txt:
* web-platform-tests/web-animations/interfaces/KeyframeEffect/copy-constructor-expected.txt:
* web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt:

Source/WebCore:

Currently, we have an AnimationEffect class with read-write members and a KeyframeEffect subclass with read-write
members. The spec has an AnimationEffectReadOnly class, with read-only members, a KeyframeEffectReadOnly subclass,
with read-only members, and then the KeyframeEffect subclass (of KeyframeEffectReadOnly) with read-write members.

Likewise, currently we have an AnimationEffectTiming class with read-write members. While the spec has this class
as well, it also specifies a read-only AnimationEffectTimingReadOnly superclass.

In this patch we refactor the code to match the spec, which gives us a big boost in our WPT pass rate. The vast
majority of the code is just copied from one class to another verbatim. The limited actual code changes, all related
to the new subclassing, are:

- AnimationEffectTimingReadOnly is not actually read-only as far as WebCore is concerned, it actually exposes setters
for all of its properties, but the IDL for this class specifies all properties as read-only, so we match the spec. The
reason for this is that it is necessary to be able to set members of an AnimationEffectTimingReadOnly object based on
a Variant<double, KeyframeEffectOptions> provided to Element.animate() or the KeyframeEffectReadOnly and KeyframeEffect
constructors, and the logic to handle properties in such dictionaries is the same as the logic required to set individual
members in AnimationEffectTiming. So in essence, the sole role of AnimationTimingEffect is to provide an IDL interface
with read-write members, but the parent class is itself read-write as far as WebCore is concerned.

- AnimationEffectTimingReadOnly exposes a new setProperties() method which takes in a nullable Variant<double, KeyframeEffectOptions>
so that code that was previously specific to KeyframeEffect can be factored into this method and both the constructors of
KeyframeEffectReadOnly and KeyframeEffect can make use of it without code duplication.

- The AnimationEffectReadOnly constructor now takes an AnimationEffectTimingReadOnly as input since that class and
KeyframeEffectReadOnly expose an AnimationEffectTimingReadOnly object, while KeyframeEffect exposes an
AnimationEffectTiming read-write object. This allows the KeyframeEffect constructor to provide the right object type.

* CMakeLists.txt:
* DerivedSources.make:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* animation/AnimationEffectReadOnly.cpp: Renamed from Source/WebCore/animation/AnimationEffect.cpp.
(WebCore::AnimationEffectReadOnly::AnimationEffectReadOnly):
(WebCore::AnimationEffectReadOnly::localTime const):
(WebCore::AnimationEffectReadOnly::phase const):
(WebCore::AnimationEffectReadOnly::activeTime const):
(WebCore::AnimationEffectReadOnly::overallProgress const):
(WebCore::AnimationEffectReadOnly::simpleIterationProgress const):
(WebCore::AnimationEffectReadOnly::currentIteration const):
(WebCore::AnimationEffectReadOnly::currentDirection const):
(WebCore::AnimationEffectReadOnly::directedProgress const):
(WebCore::AnimationEffectReadOnly::transformedProgress const):
(WebCore::AnimationEffectReadOnly::iterationProgress const):
(WebCore::AnimationEffectReadOnly::getComputedTiming):
* animation/AnimationEffectReadOnly.h: Renamed from Source/WebCore/animation/AnimationEffect.h.
(WebCore::AnimationEffectReadOnly::isKeyframeEffectReadOnly const):
(WebCore::AnimationEffectReadOnly::timing const):
* animation/AnimationEffectReadOnly.idl: Copied from Source/WebCore/animation/AnimationEffect.idl.
* animation/AnimationEffectTiming.cpp:
(WebCore::AnimationEffectTiming::AnimationEffectTiming):
(WebCore::AnimationEffectTiming::setIterationStart): Deleted.
(WebCore::AnimationEffectTiming::setIterations): Deleted.
(WebCore::AnimationEffectTiming::bindingsDuration const): Deleted.
(WebCore::AnimationEffectTiming::setBindingsDuration): Deleted.
(WebCore::AnimationEffectTiming::endTime const): Deleted.
(WebCore::AnimationEffectTiming::activeDuration const): Deleted.
(WebCore::AnimationEffectTiming::setEasing): Deleted.
* animation/AnimationEffectTiming.h:
(): Deleted.
* animation/AnimationEffectTiming.idl:
* animation/AnimationEffectTimingReadOnly.cpp: Copied from Source/WebCore/animation/AnimationEffectTiming.cpp.
(WebCore::AnimationEffectTimingReadOnly::create):
(WebCore::AnimationEffectTimingReadOnly::AnimationEffectTimingReadOnly):
(WebCore::AnimationEffectTimingReadOnly::~AnimationEffectTimingReadOnly):
(WebCore::AnimationEffectTimingReadOnly::setProperties):
(WebCore::AnimationEffectTimingReadOnly::setIterationStart):
(WebCore::AnimationEffectTimingReadOnly::setIterations):
(WebCore::AnimationEffectTimingReadOnly::bindingsDuration const):
(WebCore::AnimationEffectTimingReadOnly::setBindingsDuration):
(WebCore::AnimationEffectTimingReadOnly::setEasing):
(WebCore::AnimationEffectTimingReadOnly::endTime const):
(WebCore::AnimationEffectTimingReadOnly::activeDuration const):
* animation/AnimationEffectTimingReadOnly.h: Copied from Source/WebCore/animation/AnimationEffectTiming.h.
(WebCore::AnimationEffectTimingReadOnly::isAnimationEffectTiming const):
(WebCore::AnimationEffectTimingReadOnly::bindingsDelay const):
(WebCore::AnimationEffectTimingReadOnly::setBindingsDelay):
(WebCore::AnimationEffectTimingReadOnly::bindingsEndDelay const):
(WebCore::AnimationEffectTimingReadOnly::setBindingsEndDelay):
(WebCore::AnimationEffectTimingReadOnly::delay const):
(WebCore::AnimationEffectTimingReadOnly::setDelay):
(WebCore::AnimationEffectTimingReadOnly::endDelay const):
(WebCore::AnimationEffectTimingReadOnly::setEndDelay):
(WebCore::AnimationEffectTimingReadOnly::fill const):
(WebCore::AnimationEffectTimingReadOnly::setFill):
(WebCore::AnimationEffectTimingReadOnly::iterationStart const):
(WebCore::AnimationEffectTimingReadOnly::iterations const):
(WebCore::AnimationEffectTimingReadOnly::iterationDuration const):
(WebCore::AnimationEffectTimingReadOnly::setIterationDuration):
(WebCore::AnimationEffectTimingReadOnly::direction const):
(WebCore::AnimationEffectTimingReadOnly::setDirection):
(WebCore::AnimationEffectTimingReadOnly::easing const):
(WebCore::AnimationEffectTimingReadOnly::timingFunction const):
(WebCore::AnimationEffectTimingReadOnly::classType const):
* animation/AnimationEffectTimingReadOnly.idl: Renamed from Source/WebCore/animation/AnimationEffect.idl.
* animation/AnimationTimeline.h:
* animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::create):
(WebCore::KeyframeEffect::KeyframeEffect):
(WebCore::IDLAttributeNameToAnimationPropertyName): Deleted.
(WebCore::CSSPropertyIDToIDLAttributeName): Deleted.
(WebCore::computeMissingKeyframeOffsets): Deleted.
(WebCore::processIterableKeyframes): Deleted.
(WebCore::processKeyframeLikeObject): Deleted.
(WebCore::processPropertyIndexedKeyframes): Deleted.
(WebCore::KeyframeEffect::getKeyframes): Deleted.
(WebCore::KeyframeEffect::processKeyframes): Deleted.
(WebCore::KeyframeEffect::computeStackingContextImpact): Deleted.
(WebCore::KeyframeEffect::apply): Deleted.
(WebCore::KeyframeEffect::shouldRunAccelerated): Deleted.
(WebCore::KeyframeEffect::getAnimatedStyle): Deleted.
(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle): Deleted.
(WebCore::KeyframeEffect::startOrStopAccelerated): Deleted.
(WebCore::KeyframeEffect::renderer const): Deleted.
(WebCore::KeyframeEffect::currentStyle const): Deleted.
* animation/KeyframeEffect.h:
* animation/KeyframeEffect.idl:
* animation/KeyframeEffectReadOnly.cpp: Copied from Source/WebCore/animation/KeyframeEffect.cpp.
(WebCore::IDLAttributeNameToAnimationPropertyName):
(WebCore::CSSPropertyIDToIDLAttributeName):
(WebCore::computeMissingKeyframeOffsets):
(WebCore::processIterableKeyframes):
(WebCore::processKeyframeLikeObject):
(WebCore::processPropertyIndexedKeyframes):
(WebCore::KeyframeEffectReadOnly::create):
(WebCore::KeyframeEffectReadOnly::KeyframeEffectReadOnly):
(WebCore::KeyframeEffectReadOnly::getKeyframes):
(WebCore::KeyframeEffectReadOnly::processKeyframes):
(WebCore::KeyframeEffectReadOnly::computeStackingContextImpact):
(WebCore::KeyframeEffectReadOnly::apply):
(WebCore::KeyframeEffectReadOnly::shouldRunAccelerated):
(WebCore::KeyframeEffectReadOnly::getAnimatedStyle):
(WebCore::KeyframeEffectReadOnly::setAnimatedPropertiesInStyle):
(WebCore::KeyframeEffectReadOnly::startOrStopAccelerated):
(WebCore::KeyframeEffectReadOnly::renderer const):
(WebCore::KeyframeEffectReadOnly::currentStyle const):
* animation/KeyframeEffectReadOnly.h: Copied from Source/WebCore/animation/KeyframeEffect.h.
(WebCore::KeyframeEffectReadOnly::~KeyframeEffectReadOnly):
(WebCore::KeyframeEffectReadOnly::target const):
(WebCore::KeyframeEffectReadOnly::iterationComposite const):
(WebCore::KeyframeEffectReadOnly::composite const):
(WebCore::KeyframeEffectReadOnly::isRunningAccelerated const):
* animation/KeyframeEffectReadOnly.idl: Copied from Source/WebCore/animation/KeyframeEffect.idl.
* animation/WebAnimation.cpp:
(WebCore::WebAnimation::create):
(WebCore::WebAnimation::setEffect):
* animation/WebAnimation.h:
* animation/WebAnimation.idl:
* bindings/js/JSAnimationEffectReadOnlyCustom.cpp: Copied from Source/WebCore/bindings/js/JSAnimationEffectCustom.cpp.
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
* bindings/js/JSAnimationEffectTimingReadOnlyCustom.cpp: Renamed from Source/WebCore/bindings/js/JSAnimationEffectCustom.cpp.
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
* bindings/js/JSCustomEventCustom.cpp:
(WebCore::JSCustomEvent::detail const): Fix an error introduced in webkit.org/b/179591.
* bindings/js/JSWebAnimationCustom.cpp:
(WebCore::constructJSWebAnimation):
* bindings/js/WebCoreBuiltinNames.h:

Canonical link: https://commits.webkit.org/198463@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@228333 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
graouts committed Feb 9, 2018
1 parent 788b50a commit 1b51b3b691850d9d194341b190d43f64dbf11ea5
Showing with 1,952 additions and 1,448 deletions.
  1. +18 −0 LayoutTests/imported/w3c/ChangeLog
  2. +5 −5 ...ests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/constructor-expected.txt
  3. +1 −1 LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/effect-expected.txt
  4. +25 −25 ...ed/w3c/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/idlharness-expected.txt
  5. +1 −1 ...sts/imported/w3c/web-platform-tests/web-animations/interfaces/Document/getAnimations-expected.txt
  6. +166 −262 ...imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/constructor-expected.txt
  7. +5 −5 ...ted/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/copy-constructor-expected.txt
  8. +27 −27 .../imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt
  9. +3 −1 Source/WebCore/CMakeLists.txt
  10. +166 −0 Source/WebCore/ChangeLog
  11. +3 −1 Source/WebCore/DerivedSources.make
  12. +8 −3 Source/WebCore/Sources.txt
  13. +46 −16 Source/WebCore/WebCore.xcodeproj/project.pbxproj
  14. +22 −22 Source/WebCore/animation/{AnimationEffect.cpp → AnimationEffectReadOnly.cpp}
  15. +13 −10 Source/WebCore/animation/{AnimationEffect.h → AnimationEffectReadOnly.h}
  16. +4 −3 Source/WebCore/animation/{AnimationEffect.idl → AnimationEffectReadOnly.idl}
  17. +2 −90 Source/WebCore/animation/AnimationEffectTiming.cpp
  18. +5 −44 Source/WebCore/animation/AnimationEffectTiming.h
  19. +11 −10 Source/WebCore/animation/AnimationEffectTiming.idl
  20. +171 −0 Source/WebCore/animation/AnimationEffectTimingReadOnly.cpp
  21. +118 −0 Source/WebCore/animation/AnimationEffectTimingReadOnly.h
  22. +39 −0 Source/WebCore/animation/AnimationEffectTimingReadOnly.idl
  23. +0 −1 Source/WebCore/animation/AnimationTimeline.h
  24. +8 −803 Source/WebCore/animation/KeyframeEffect.cpp
  25. +5 −76 Source/WebCore/animation/KeyframeEffect.h
  26. +5 −21 Source/WebCore/animation/KeyframeEffect.idl
  27. +823 −0 Source/WebCore/animation/KeyframeEffectReadOnly.cpp
  28. +125 −0 Source/WebCore/animation/KeyframeEffectReadOnly.h
  29. +52 −0 Source/WebCore/animation/KeyframeEffectReadOnly.idl
  30. +5 −4 Source/WebCore/animation/WebAnimation.cpp
  31. +6 −6 Source/WebCore/animation/WebAnimation.h
  32. +1 −1 Source/WebCore/animation/WebAnimation.idl
  33. +7 −5 Source/WebCore/bindings/js/{JSAnimationEffectCustom.cpp → JSAnimationEffectReadOnlyCustom.cpp}
  34. +49 −0 Source/WebCore/bindings/js/JSAnimationEffectTimingReadOnlyCustom.cpp
  35. +1 −1 Source/WebCore/bindings/js/JSCustomEventCustom.cpp
  36. +3 −3 Source/WebCore/bindings/js/JSWebAnimationCustom.cpp
  37. +3 −1 Source/WebCore/bindings/js/WebCoreBuiltinNames.h
@@ -1,3 +1,21 @@
2018-02-08 Antoine Quint <graouts@apple.com>

[Web Animations] Refactor AnimationEffect and KeyframeEffect into AnimationEffectReadOnly, KeyframeEffectReadOnly and KeyframeEffect
https://bugs.webkit.org/show_bug.cgi?id=182608

Reviewed by Dean Jackson.

Update WPT expectations with progressions and updated failure points for all tests that involved
either AnimationEffectReadOnly or KeyframeEffectReadOnly.

* web-platform-tests/web-animations/interfaces/Animation/constructor-expected.txt:
* web-platform-tests/web-animations/interfaces/Animation/effect-expected.txt:
* web-platform-tests/web-animations/interfaces/AnimationEffectTiming/idlharness-expected.txt:
* web-platform-tests/web-animations/interfaces/Document/getAnimations-expected.txt:
* web-platform-tests/web-animations/interfaces/KeyframeEffect/constructor-expected.txt:
* web-platform-tests/web-animations/interfaces/KeyframeEffect/copy-constructor-expected.txt:
* web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt:

2018-02-09 Youenn Fablet <youenn@apple.com>

Add support for cache storage of blob response
@@ -2,9 +2,9 @@
PASS Animation can be constructed with null effect and null timeline
PASS Animation can be constructed with null effect and non-null timeline
PASS Animation can be constructed with null effect and no timeline parameter
FAIL Animation can be constructed with non-null effect and null timeline Can't find variable: KeyframeEffectReadOnly
FAIL Animation can be constructed with non-null effect and non-null timeline Can't find variable: KeyframeEffectReadOnly
FAIL Animation can be constructed with non-null effect and no timeline parameter Can't find variable: KeyframeEffectReadOnly
FAIL Animation constructed by an effect with null target runs normally Can't find variable: KeyframeEffectReadOnly
FAIL Animation constructed with a keyframe that target element is in iframe Can't find variable: KeyframeEffectReadOnly
PASS Animation can be constructed with non-null effect and null timeline
PASS Animation can be constructed with non-null effect and non-null timeline
PASS Animation can be constructed with non-null effect and no timeline parameter
PASS Animation constructed by an effect with null target runs normally
PASS Animation constructed with a keyframe that target element is in iframe

@@ -1,4 +1,4 @@

FAIL effect is set correctly. Can't find variable: KeyframeEffectReadOnly
PASS effect is set correctly.
FAIL Clearing and setting Animation.effect should update the computed style of the target element assert_equals: animation no longer has an effect expected "auto" but got "100px"

@@ -1,31 +1,31 @@

FAIL AnimationEffectTimingReadOnly interface: existence and properties of interface object assert_own_property: self does not have own property "AnimationEffectTimingReadOnly" expected property "AnimationEffectTimingReadOnly" missing
FAIL AnimationEffectTimingReadOnly interface object length assert_own_property: self does not have own property "AnimationEffectTimingReadOnly" expected property "AnimationEffectTimingReadOnly" missing
FAIL AnimationEffectTimingReadOnly interface object name assert_own_property: self does not have own property "AnimationEffectTimingReadOnly" expected property "AnimationEffectTimingReadOnly" missing
FAIL AnimationEffectTimingReadOnly interface: existence and properties of interface prototype object assert_own_property: self does not have own property "AnimationEffectTimingReadOnly" expected property "AnimationEffectTimingReadOnly" missing
FAIL AnimationEffectTimingReadOnly interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "AnimationEffectTimingReadOnly" expected property "AnimationEffectTimingReadOnly" missing
FAIL AnimationEffectTimingReadOnly interface: attribute delay assert_own_property: self does not have own property "AnimationEffectTimingReadOnly" expected property "AnimationEffectTimingReadOnly" missing
FAIL AnimationEffectTimingReadOnly interface: attribute endDelay assert_own_property: self does not have own property "AnimationEffectTimingReadOnly" expected property "AnimationEffectTimingReadOnly" missing
FAIL AnimationEffectTimingReadOnly interface: attribute fill assert_own_property: self does not have own property "AnimationEffectTimingReadOnly" expected property "AnimationEffectTimingReadOnly" missing
FAIL AnimationEffectTimingReadOnly interface: attribute iterationStart assert_own_property: self does not have own property "AnimationEffectTimingReadOnly" expected property "AnimationEffectTimingReadOnly" missing
FAIL AnimationEffectTimingReadOnly interface: attribute iterations assert_own_property: self does not have own property "AnimationEffectTimingReadOnly" expected property "AnimationEffectTimingReadOnly" missing
FAIL AnimationEffectTimingReadOnly interface: attribute duration assert_own_property: self does not have own property "AnimationEffectTimingReadOnly" expected property "AnimationEffectTimingReadOnly" missing
FAIL AnimationEffectTimingReadOnly interface: attribute direction assert_own_property: self does not have own property "AnimationEffectTimingReadOnly" expected property "AnimationEffectTimingReadOnly" missing
FAIL AnimationEffectTimingReadOnly interface: attribute easing assert_own_property: self does not have own property "AnimationEffectTimingReadOnly" expected property "AnimationEffectTimingReadOnly" missing
FAIL AnimationEffectTimingReadOnly must be primary interface of (new KeyframeEffectReadOnly(null, null)).timing assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: KeyframeEffectReadOnly"
FAIL Stringification of (new KeyframeEffectReadOnly(null, null)).timing assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: KeyframeEffectReadOnly"
FAIL AnimationEffectTimingReadOnly interface: (new KeyframeEffectReadOnly(null, null)).timing must inherit property "delay" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: KeyframeEffectReadOnly"
FAIL AnimationEffectTimingReadOnly interface: (new KeyframeEffectReadOnly(null, null)).timing must inherit property "endDelay" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: KeyframeEffectReadOnly"
FAIL AnimationEffectTimingReadOnly interface: (new KeyframeEffectReadOnly(null, null)).timing must inherit property "fill" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: KeyframeEffectReadOnly"
FAIL AnimationEffectTimingReadOnly interface: (new KeyframeEffectReadOnly(null, null)).timing must inherit property "iterationStart" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: KeyframeEffectReadOnly"
FAIL AnimationEffectTimingReadOnly interface: (new KeyframeEffectReadOnly(null, null)).timing must inherit property "iterations" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: KeyframeEffectReadOnly"
FAIL AnimationEffectTimingReadOnly interface: (new KeyframeEffectReadOnly(null, null)).timing must inherit property "duration" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: KeyframeEffectReadOnly"
FAIL AnimationEffectTimingReadOnly interface: (new KeyframeEffectReadOnly(null, null)).timing must inherit property "direction" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: KeyframeEffectReadOnly"
FAIL AnimationEffectTimingReadOnly interface: (new KeyframeEffectReadOnly(null, null)).timing must inherit property "easing" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: KeyframeEffectReadOnly"
FAIL AnimationEffectTiming interface: existence and properties of interface object assert_own_property: should inherit from AnimationEffectTimingReadOnly, but self has no such property expected property "AnimationEffectTimingReadOnly" missing
PASS AnimationEffectTimingReadOnly interface: existence and properties of interface object
PASS AnimationEffectTimingReadOnly interface object length
PASS AnimationEffectTimingReadOnly interface object name
PASS AnimationEffectTimingReadOnly interface: existence and properties of interface prototype object
PASS AnimationEffectTimingReadOnly interface: existence and properties of interface prototype object's "constructor" property
PASS AnimationEffectTimingReadOnly interface: attribute delay
PASS AnimationEffectTimingReadOnly interface: attribute endDelay
PASS AnimationEffectTimingReadOnly interface: attribute fill
PASS AnimationEffectTimingReadOnly interface: attribute iterationStart
PASS AnimationEffectTimingReadOnly interface: attribute iterations
PASS AnimationEffectTimingReadOnly interface: attribute duration
PASS AnimationEffectTimingReadOnly interface: attribute direction
PASS AnimationEffectTimingReadOnly interface: attribute easing
PASS AnimationEffectTimingReadOnly must be primary interface of (new KeyframeEffectReadOnly(null, null)).timing
PASS Stringification of (new KeyframeEffectReadOnly(null, null)).timing
PASS AnimationEffectTimingReadOnly interface: (new KeyframeEffectReadOnly(null, null)).timing must inherit property "delay" with the proper type
PASS AnimationEffectTimingReadOnly interface: (new KeyframeEffectReadOnly(null, null)).timing must inherit property "endDelay" with the proper type
PASS AnimationEffectTimingReadOnly interface: (new KeyframeEffectReadOnly(null, null)).timing must inherit property "fill" with the proper type
PASS AnimationEffectTimingReadOnly interface: (new KeyframeEffectReadOnly(null, null)).timing must inherit property "iterationStart" with the proper type
PASS AnimationEffectTimingReadOnly interface: (new KeyframeEffectReadOnly(null, null)).timing must inherit property "iterations" with the proper type
PASS AnimationEffectTimingReadOnly interface: (new KeyframeEffectReadOnly(null, null)).timing must inherit property "duration" with the proper type
PASS AnimationEffectTimingReadOnly interface: (new KeyframeEffectReadOnly(null, null)).timing must inherit property "direction" with the proper type
PASS AnimationEffectTimingReadOnly interface: (new KeyframeEffectReadOnly(null, null)).timing must inherit property "easing" with the proper type
PASS AnimationEffectTiming interface: existence and properties of interface object
PASS AnimationEffectTiming interface object length
PASS AnimationEffectTiming interface object name
FAIL AnimationEffectTiming interface: existence and properties of interface prototype object assert_own_property: should inherit from AnimationEffectTimingReadOnly, but self has no such property expected property "AnimationEffectTimingReadOnly" missing
PASS AnimationEffectTiming interface: existence and properties of interface prototype object
PASS AnimationEffectTiming interface: existence and properties of interface prototype object's "constructor" property
PASS AnimationEffectTiming interface: attribute delay
PASS AnimationEffectTiming interface: attribute endDelay
@@ -2,5 +2,5 @@
PASS Test document.getAnimations for non-animated content
FAIL Test document.getAnimations for script-generated animations assert_equals: getAnimation only returns running animations expected 0 but got 2
FAIL Test the order of document.getAnimations with script generated animations assert_array_equals: getAnimations() returns running animations lengths differ, expected 2 got 4
FAIL Test document.getAnimations with null target Can't find variable: KeyframeEffectReadOnly
FAIL Test document.getAnimations with null target assert_equals: document.getAnimations() only returns animations targeting elements in this document expected 0 but got 5

0 comments on commit 1b51b3b

Please sign in to comment.