Changeset 230068 in webkit


Ignore:
Timestamp:
Mar 28, 2018 11:48:18 PM (6 years ago)
Author:
graouts@webkit.org
Message:

[Web Animations] Implement more CSSPropertyBlendingClient methods
https://bugs.webkit.org/show_bug.cgi?id=184077

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark progressions for WPT tests.

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:

Source/WebCore:

We only had stubs for several of the CSSPropertyBlendingClient methods and thus always implied that we
were animating non-matching transform, filter and backdrop-filter properties. We now implement those using
the same code used in KeyframeAnimation. This allows for 31 new tests to opt into the CSS Animations and
CSS Transitions as Web Animations feature.

We also ensure we only run a CSSAnimationController assertion in FrameView::didDestroyRenderTree() if
we're not using the CSS Animations and CSS Transitions as Web Animations feature.

  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::copyPropertiesFromSource):
(WebCore::KeyframeEffectReadOnly::updateBlendingKeyframes):
(WebCore::KeyframeEffectReadOnly::setBlendingKeyframes):
(WebCore::KeyframeEffectReadOnly::checkForMatchingTransformFunctionLists):
(WebCore::KeyframeEffectReadOnly::checkForMatchingFilterFunctionLists):
(WebCore::KeyframeEffectReadOnly::checkForMatchingBackdropFilterFunctionLists):
(WebCore::KeyframeEffectReadOnly::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffectReadOnly::computeCSSTransitionBlendingKeyframes):

  • animation/KeyframeEffectReadOnly.h:
  • page/FrameView.cpp:

(WebCore::FrameView::didDestroyRenderTree):

LayoutTests:

Make 31 tests opt into the CSS Animations and CSS Transitions as Web Animations feature.

  • animations/3d/replace-filling-transform.html:
  • animations/additive-transform-animations.html:
  • animations/animation-direction-reverse-fill-mode-hardware.html:
  • animations/combo-transform-rotate+scale.html:
  • animations/simultaneous-start-transform.html:
  • compositing/animation/layer-for-filling-animation.html:
  • compositing/reflections/animation-inside-reflection.html:
  • compositing/reflections/nested-reflection-animated.html:
  • css3/filters/backdrop/animation.html:
  • css3/filters/composited-during-animation.html:
  • css3/filters/filter-animation-from-none-hw.html:
  • css3/filters/filter-animation-from-none-multi-hw.html:
  • css3/filters/filter-animation-from-none-multi.html:
  • css3/filters/filter-animation-from-none.html:
  • css3/filters/filter-animation-hw.html:
  • css3/filters/filter-animation-multi-hw.html:
  • css3/filters/filter-animation-multi.html:
  • css3/filters/filter-animation.html:
  • css3/masking/clip-path-animation.html:
  • fast/filter-image/filter-image-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html:
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
  • transitions/clip-path-transitions.html:
  • transitions/color-transition-premultiplied.html:
  • transitions/cross-fade-border-image.html:
  • transitions/cubic-bezier-overflow-length.html:
  • transitions/cubic-bezier-overflow-svg-length.html:
  • transitions/delay.html:
  • transitions/longhand-vs-shorthand-initial.html:
  • transitions/multiple-background-transitions.html:
Location:
trunk
Files:
44 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r230066 r230068  
     12018-03-28  Antoine Quint  <graouts@apple.com>
     2
     3        [Web Animations] Implement more CSSPropertyBlendingClient methods
     4        https://bugs.webkit.org/show_bug.cgi?id=184077
     5
     6        Reviewed by Dean Jackson.
     7
     8        Make 31 tests opt into the CSS Animations and CSS Transitions as Web Animations feature.
     9
     10        * animations/3d/replace-filling-transform.html:
     11        * animations/additive-transform-animations.html:
     12        * animations/animation-direction-reverse-fill-mode-hardware.html:
     13        * animations/combo-transform-rotate+scale.html:
     14        * animations/simultaneous-start-transform.html:
     15        * compositing/animation/layer-for-filling-animation.html:
     16        * compositing/reflections/animation-inside-reflection.html:
     17        * compositing/reflections/nested-reflection-animated.html:
     18        * css3/filters/backdrop/animation.html:
     19        * css3/filters/composited-during-animation.html:
     20        * css3/filters/filter-animation-from-none-hw.html:
     21        * css3/filters/filter-animation-from-none-multi-hw.html:
     22        * css3/filters/filter-animation-from-none-multi.html:
     23        * css3/filters/filter-animation-from-none.html:
     24        * css3/filters/filter-animation-hw.html:
     25        * css3/filters/filter-animation-multi-hw.html:
     26        * css3/filters/filter-animation-multi.html:
     27        * css3/filters/filter-animation.html:
     28        * css3/masking/clip-path-animation.html:
     29        * fast/filter-image/filter-image-animation.html:
     30        * fast/shapes/shape-outside-floats/shape-outside-animation.html:
     31        * fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html:
     32        * fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html:
     33        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
     34        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
     35        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
     36        * transitions/clip-path-transitions.html:
     37        * transitions/color-transition-premultiplied.html:
     38        * transitions/cross-fade-border-image.html:
     39        * transitions/cubic-bezier-overflow-length.html:
     40        * transitions/cubic-bezier-overflow-svg-length.html:
     41        * transitions/delay.html:
     42        * transitions/longhand-vs-shorthand-initial.html:
     43        * transitions/multiple-background-transitions.html:
     44
    1452018-03-28  Chris Dumez  <cdumez@apple.com>
    246
  • trunk/LayoutTests/animations/3d/replace-filling-transform.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22<html>
    33<head>
  • trunk/LayoutTests/animations/additive-transform-animations.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/animations/animation-direction-reverse-fill-mode-hardware.html

    r230043 r230068  
    1 <!doctype html>
     1<!doctype html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22<html>
    33<head>
  • trunk/LayoutTests/animations/combo-transform-rotate+scale.html

    r230043 r230068  
    1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    2    "http://www.w3.org/TR/html4/loose.dtd">
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    32
    43<html lang="en">
  • trunk/LayoutTests/animations/simultaneous-start-transform.html

    r230043 r230068  
    1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    2    "http://www.w3.org/TR/html4/loose.dtd">
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    32
    43<html lang="en">
  • trunk/LayoutTests/compositing/animation/layer-for-filling-animation.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/compositing/reflections/animation-inside-reflection.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22<html>
    33<head>
  • trunk/LayoutTests/compositing/reflections/nested-reflection-animated.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22<html>
    33<head>
  • trunk/LayoutTests/css3/filters/backdrop/animation.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/css3/filters/composited-during-animation.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/css3/filters/filter-animation-from-none-hw.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/css3/filters/filter-animation-from-none-multi-hw.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/css3/filters/filter-animation-from-none-multi.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/css3/filters/filter-animation-from-none.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/css3/filters/filter-animation-hw.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/css3/filters/filter-animation-multi-hw.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/css3/filters/filter-animation-multi.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/css3/filters/filter-animation.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/css3/masking/clip-path-animation.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/fast/filter-image/filter-image-animation.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-outside-animation.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html

    r230043 r230068  
     1<!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    12<html>
    23<head>
  • trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r230066 r230068  
     12018-03-28  Antoine Quint  <graouts@apple.com>
     2
     3        [Web Animations] Implement more CSSPropertyBlendingClient methods
     4        https://bugs.webkit.org/show_bug.cgi?id=184077
     5
     6        Reviewed by Dean Jackson.
     7
     8        Mark progressions for WPT tests.
     9
     10        * web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
     11        * web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
     12        * web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
     13        * web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:
     14
    1152018-03-28  Chris Dumez  <cdumez@apple.com>
    216
  • trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt

    r230043 r230068  
    198198FAIL text-shadow: shadow assert_equals: The value should be rgb(240, 240, 240) 20px 20px 20px at 0ms expected "rgb(240, 240, 240) 20px 20px 20px" but got "rgb(120, 120, 120) 10px 10px 10px"
    199199PASS transform (type: transformList) has testAccumulation function
    200 FAIL transform: translate assert_approx_equals: expected matrix(1,0,0,1,-100,0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, -200, 0): The value should be matrix(1,0,0,1,-100,0) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, -200, 0) expected -100 +/- 0.0001 but got -200
     200FAIL transform: translate assert_approx_equals: expected matrix(1,0,0,1,-100,0) but got matrix(1, 0, 0, 1, -200, 0): The value should be matrix(1,0,0,1,-100,0) at 0ms but got matrix(1, 0, 0, 1, -200, 0) expected -100 +/- 0.0001 but got -200
    201201FAIL transform: rotate assert_approx_equals: expected matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 0, 0): The value should be matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) at 0ms but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 0, 0) expected 0.7071067811865476 +/- 0.0001 but got 6.123233995736766e-17
    202 FAIL transform: scale assert_approx_equals: expected matrix(-2,0,0,-2,0,0) but got matrix(-3, -0.00000000000000036739403974420594, 0.00000000000000036739403974420594, -3, 0, 0): The value should be matrix(-2,0,0,-2,0,0) at 0ms but got matrix(-3, -0.00000000000000036739403974420594, 0.00000000000000036739403974420594, -3, 0, 0) expected -2 +/- 0.0001 but got -3
    203 FAIL transform: skew assert_approx_equals: expected matrix(1,0.5773502691896256,-0.36397023426620234,1,0,0) but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1.0000000000000002, 0, 0): The value should be matrix(1,0.5773502691896256,-0.36397023426620234,1,0,0) at 0ms but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1.0000000000000002, 0, 0) expected 0.5773502691896256 +/- 0.0001 but got 0.36397023426620234
     202FAIL transform: scale assert_approx_equals: expected matrix(-2,0,0,-2,0,0) but got matrix(-3, 0, 0, -3, 0, 0): The value should be matrix(-2,0,0,-2,0,0) at 0ms but got matrix(-3, 0, 0, -3, 0, 0) expected -2 +/- 0.0001 but got -3
     203FAIL transform: skew assert_approx_equals: expected matrix(1,0.5773502691896256,-0.36397023426620234,1,0,0) but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1, 0, 0): The value should be matrix(1,0.5773502691896256,-0.36397023426620234,1,0,0) at 0ms but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1, 0, 0) expected 0.5773502691896256 +/- 0.0001 but got 0.36397023426620234
    204204FAIL transform: rotate on translate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, 0, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, 0, 0) expected 100 +/- 0.0001 but got 0
    205 FAIL transform: translate on rotate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0) expected 0 +/- 0.0001 but got 1
     205FAIL transform: translate on rotate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(1, 0, 0, 1, 100, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(1, 0, 0, 1, 100, 0) expected 0 +/- 0.0001 but got 1
    206206FAIL transform: matrix assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0) expected 0 +/- 0.0001 but got 1
    207 FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.4999999999999999, 0.4999999999999998, 0.7071067811865475, 0, 0.49999999999999967, 0.5, -0.7071067811865475, 0, -0.7071067811865475, 0.7071067811865474, 0.0000000000000002483427041595098, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.4999999999999999, 0.4999999999999998, 0.7071067811865475, 0, 0.49999999999999967, 0.5, -0.7071067811865475, 0, -0.7071067811865475, 0.7071067811865474, 0.0000000000000002483427041595098, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.4999999999999999
     207FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.4999999999999999, 0.49999999999999994, 0.7071067811865476, 0, 0.49999999999999994, 0.5000000000000001, -0.7071067811865475, 0, -0.7071067811865476, 0.7071067811865475, 0.00000000000000006123233995736766, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.4999999999999999, 0.49999999999999994, 0.7071067811865476, 0, 0.49999999999999994, 0.5000000000000001, -0.7071067811865475, 0, -0.7071067811865476, 0.7071067811865475, 0.00000000000000006123233995736766, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.4999999999999999
    208208FAIL transform: matrix3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.5000000000000001, 0.49999999999999983, 0.7071067811865474, 0, 0.4999999999999997, 0.5000000000000002, -0.7071067811865476, 0, -0.7071067811865476, 0.7071067811865474, 0.000000000000000404259158300213, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.5000000000000001, 0.49999999999999983, 0.7071067811865474, 0, 0.4999999999999997, 0.5000000000000002, -0.7071067811865476, 0, -0.7071067811865476, 0.7071067811865474, 0.000000000000000404259158300213, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.5000000000000001
    209209FAIL transform: none assert_equals: dimension of the matrix: The value should be matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1) at 0ms but got matrix(1, 0, 0, 1, 0, 0) expected 16 but got 6
    210210FAIL transform: non-invertible matrices (non-invertible onto invertible) assert_approx_equals: expected matrix(1,1,0,0,0,100) but got matrix(1, 1, 0, 0, 49.999999999999986, 49.999999999999986): The value should be matrix(1,1,0,0,0,100) at 0ms but got matrix(1, 1, 0, 0, 49.999999999999986, 49.999999999999986) expected 0 +/- 0.0001 but got 49.999999999999986
    211211PASS transform: non-invertible matrices (invertible onto non-invertible)
    212 PASS transform: non-invertible matrices in matched transform lists (non-invertible onto invertible)
     212FAIL transform: non-invertible matrices in matched transform lists (non-invertible onto invertible) assert_approx_equals: expected matrix(-1,-1,0,0,100,100) but got matrix(-1, -1, -0.00000000000000012246467991473532, -0.00000000000000012246467991473532, 150, 49.999999999999986): The value should be matrix(-1,-1,0,0,100,100) at 0ms but got matrix(-1, -1, -0.00000000000000012246467991473532, -0.00000000000000012246467991473532, 150, 49.999999999999986) expected 100 +/- 0.0001 but got 150
    213213PASS transform: non-invertible matrices in matched transform lists (invertible onto non-invertible)
    214 PASS transform: non-invertible matrices in mismatched transform lists (non-invertible onto invertible)
     214FAIL transform: non-invertible matrices in mismatched transform lists (non-invertible onto invertible) assert_approx_equals: expected matrix(1,1,1,1,100,100) but got matrix(1, 1, 0.9999999999999999, 0.9999999999999999, 150, 49.999999999999986): The value should be matrix(1,1,1,1,100,100) at 0ms but got matrix(1, 1, 0.9999999999999999, 0.9999999999999999, 150, 49.999999999999986) expected 100 +/- 0.0001 but got 150
    215215PASS transform: non-invertible matrices in mismatched transform lists (invertible onto non-invertible)
    216216PASS visibility (type: visibility) has testAccumulation function
  • trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt

    r230043 r230068  
    119119FAIL fill-opacity: [0, 1] number (clamped) assert_equals: The value should be 1 at 0ms expected "1" but got "0.30000001192092896"
    120120PASS filter (type: filterList) has testAddition function
    121 FAIL filter: blur on blur assert_equals: The value should be blur(10px) blur(20px) at 0ms expected "blur(10px) blur(20px)" but got "blur(50px)"
    122 FAIL filter: different filter functions assert_equals: The value should be blur(10px) brightness(0.8) at 0ms expected "blur(10px) brightness(0.8)" but got "brightness(0.4)"
     121FAIL filter: blur on blur assert_equals: The value should be blur(10px) blur(20px) at 0ms expected "blur(10px) blur(20px)" but got "blur(20px)"
     122FAIL filter: different filter functions assert_equals: The value should be blur(10px) brightness(0.8) at 0ms expected "blur(10px) brightness(0.8)" but got "brightness(0.8)"
    123123PASS flood-color (type: color) has testAddition function
    124124FAIL flood-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
     
    198198FAIL text-shadow: shadow assert_equals: The value should be rgb(0, 0, 0) 0px 0px 0px, rgb(120, 120, 120) 10px 10px 10px at 0ms expected "rgb(0, 0, 0) 0px 0px 0px, rgb(120, 120, 120) 10px 10px 10px" but got "rgb(120, 120, 120) 10px 10px 10px"
    199199PASS transform (type: transformList) has testAddition function
    200 FAIL transform: translate assert_approx_equals: expected matrix(1,0,0,1,-100,0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, -200, 0): The value should be matrix(1,0,0,1,-100,0) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, -200, 0) expected -100 +/- 0.0001 but got -200
     200FAIL transform: translate assert_approx_equals: expected matrix(1,0,0,1,-100,0) but got matrix(1, 0, 0, 1, -200, 0): The value should be matrix(1,0,0,1,-100,0) at 0ms but got matrix(1, 0, 0, 1, -200, 0) expected -100 +/- 0.0001 but got -200
    201201FAIL transform: rotate assert_approx_equals: expected matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 0, 0): The value should be matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) at 0ms but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 0, 0) expected 0.7071067811865476 +/- 0.0001 but got 6.123233995736766e-17
    202 FAIL transform: scale assert_approx_equals: expected matrix(-6,0,0,-6,0,0) but got matrix(-3, -0.00000000000000036739403974420594, 0.00000000000000036739403974420594, -3, 0, 0): The value should be matrix(-6,0,0,-6,0,0) at 0ms but got matrix(-3, -0.00000000000000036739403974420594, 0.00000000000000036739403974420594, -3, 0, 0) expected -6 +/- 0.0001 but got -3
    203 FAIL transform: skew assert_approx_equals: expected matrix(1.064177772475912,0.5402972149746673,-0.40102328848116064,0.8981975702225738,0,0) but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1.0000000000000002, 0, 0): The value should be matrix(1.064177772475912,0.5402972149746673,-0.40102328848116064,0.8981975702225738,0,0) at 0ms but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1.0000000000000002, 0, 0) expected 1.064177772475912 +/- 0.0001 but got 1
     202FAIL transform: scale assert_approx_equals: expected matrix(-6,0,0,-6,0,0) but got matrix(-3, 0, 0, -3, 0, 0): The value should be matrix(-6,0,0,-6,0,0) at 0ms but got matrix(-3, 0, 0, -3, 0, 0) expected -6 +/- 0.0001 but got -3
     203FAIL transform: skew assert_approx_equals: expected matrix(1.064177772475912,0.5402972149746673,-0.40102328848116064,0.8981975702225738,0,0) but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1, 0, 0): The value should be matrix(1.064177772475912,0.5402972149746673,-0.40102328848116064,0.8981975702225738,0,0) at 0ms but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1, 0, 0) expected 1.064177772475912 +/- 0.0001 but got 1
    204204FAIL transform: rotate on translate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, 0, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, 0, 0) expected 100 +/- 0.0001 but got 0
    205 FAIL transform: translate on rotate assert_approx_equals: expected matrix(0,1,-1,0,0,100) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0): The value should be matrix(0,1,-1,0,0,100) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0) expected 0 +/- 0.0001 but got 1
     205FAIL transform: translate on rotate assert_approx_equals: expected matrix(0,1,-1,0,0,100) but got matrix(1, 0, 0, 1, 100, 0): The value should be matrix(0,1,-1,0,0,100) at 0ms but got matrix(1, 0, 0, 1, 100, 0) expected 0 +/- 0.0001 but got 1
    206206FAIL transform: matrix assert_approx_equals: expected matrix(0,1,-1,0,0,100) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0): The value should be matrix(0,1,-1,0,0,100) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0) expected 0 +/- 0.0001 but got 1
    207 FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.4999999999999999, 0.4999999999999998, 0.7071067811865475, 0, 0.49999999999999967, 0.5, -0.7071067811865475, 0, -0.7071067811865475, 0.7071067811865474, 0.0000000000000002483427041595098, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.4999999999999999, 0.4999999999999998, 0.7071067811865475, 0, 0.49999999999999967, 0.5, -0.7071067811865475, 0, -0.7071067811865475, 0.7071067811865474, 0.0000000000000002483427041595098, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.4999999999999999
     207FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.4999999999999999, 0.49999999999999994, 0.7071067811865476, 0, 0.49999999999999994, 0.5000000000000001, -0.7071067811865475, 0, -0.7071067811865476, 0.7071067811865475, 0.00000000000000006123233995736766, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.4999999999999999, 0.49999999999999994, 0.7071067811865476, 0, 0.49999999999999994, 0.5000000000000001, -0.7071067811865475, 0, -0.7071067811865476, 0.7071067811865475, 0.00000000000000006123233995736766, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.4999999999999999
    208208FAIL transform: matrix3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.5000000000000001, 0.49999999999999983, 0.7071067811865474, 0, 0.4999999999999997, 0.5000000000000002, -0.7071067811865476, 0, -0.7071067811865476, 0.7071067811865474, 0.000000000000000404259158300213, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.5000000000000001, 0.49999999999999983, 0.7071067811865474, 0, 0.4999999999999997, 0.5000000000000002, -0.7071067811865476, 0, -0.7071067811865476, 0.7071067811865474, 0.000000000000000404259158300213, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.5000000000000001
    209209FAIL transform: non-invertible matrices assert_approx_equals: expected matrix(-1,0,0,-1,250,0) but got matrix(-1, 0.00000000000000012246467991473532, -0.00000000000000012246467991473532, -1, 200, 0): The value should be matrix(-1,0,0,-1,250,0) at 0ms but got matrix(-1, 0.00000000000000012246467991473532, -0.00000000000000012246467991473532, -1, 200, 0) expected 250 +/- 0.0001 but got 200
    210 FAIL transform: non-invertible matrices in matched transform lists assert_approx_equals: expected matrix(0,-1,1,0,250,0) but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 200, 0): The value should be matrix(0,-1,1,0,250,0) at 0ms but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 200, 0) expected 250 +/- 0.0001 but got 200
     210FAIL transform: non-invertible matrices in matched transform lists assert_approx_equals: expected matrix(0,-1,1,0,250,0) but got matrix(-0.00000000000000018369701987210297, -1, 1, -0.00000000000000018369701987210297, 200, 0): The value should be matrix(0,-1,1,0,250,0) at 0ms but got matrix(-0.00000000000000018369701987210297, -1, 1, -0.00000000000000018369701987210297, 200, 0) expected 250 +/- 0.0001 but got 200
    211211FAIL transform: non-invertible matrices in mismatched transform lists assert_approx_equals: expected matrix(-2,0,0,-2,250,0) but got matrix(-2, 0.00000000000000024492935982947064, -0.00000000000000024492935982947064, -2, 200, 0): The value should be matrix(-2,0,0,-2,250,0) at 0ms but got matrix(-2, 0.00000000000000024492935982947064, -0.00000000000000024492935982947064, -2, 200, 0) expected 250 +/- 0.0001 but got 200
    212212PASS visibility (type: visibility) has testAddition function
  • trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt

    r230043 r230068  
    134134FAIL fill-opacity supports animating as a [0, 1] number assert_equals: The value should be 0.55 at 500ms expected "0.55" but got "0.550000011920929"
    135135PASS filter (type: filterList) has testInterpolation function
    136 FAIL filter: blur function assert_equals: The value should be blur(30px) at 500ms expected "blur(30px)" but got "blur(50px)"
    137 FAIL filter: hue-rotate function with same unit(deg) assert_equals: The value should be hue-rotate(50deg) at 500ms expected "hue-rotate(50deg)" but got "hue-rotate(100deg)"
    138 FAIL filter: hue-rotate function with different unit(deg -> rad) assert_equals: The value should be hue-rotate(50.0873rad) at 500ms expected "hue-rotate(50.0873rad)" but got "hue-rotate(5729.5779513082325deg)"
    139 FAIL filter: drop-shadow function assert_equals: The value should be drop-shadow(rgba(85, 0, 170, 0.6) 30px 30px 30px) at 500ms expected "drop-shadow(rgba(85, 0, 170, 0.6) 30px 30px 30px)" but got "drop-shadow(rgba(0, 0, 255, 0.8) 50px 50px 50px)"
    140 FAIL filter: percentage or numeric-specifiable functions (number value) assert_equals: The value should be brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3) at 500ms expected "brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3)" but got "brightness(0.5) contrast(0.5) grayscale(0.5) invert(0.5) opacity(0.5) saturate(0.5) sepia(0.5)"
    141 FAIL filter: percentage or numeric-specifiable functions (percentage value) assert_equals: The value should be brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3) at 500ms expected "brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3)" but got "brightness(0.5) contrast(0.5) grayscale(0.5) invert(0.5) opacity(0.5) saturate(0.5) sepia(0.5)"
     136PASS filter: blur function
     137PASS filter: hue-rotate function with same unit(deg)
     138FAIL filter: hue-rotate function with different unit(deg -> rad) assert_equals: The value should be hue-rotate(50.0873rad) at 500ms expected "hue-rotate(50.0873rad)" but got "hue-rotate(2869.7889756541163deg)"
     139PASS filter: drop-shadow function
     140FAIL filter: percentage or numeric-specifiable functions (number value) assert_equals: The value should be brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3) at 500ms expected "brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3)" but got "brightness(0.30000000000000004) contrast(0.30000000000000004) grayscale(0.30000000000000004) invert(0.30000000000000004) opacity(0.30000000000000004) saturate(0.30000000000000004) sepia(0.30000000000000004)"
     141FAIL filter: percentage or numeric-specifiable functions (percentage value) assert_equals: The value should be brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3) at 500ms expected "brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3)" but got "brightness(0.30000000000000004) contrast(0.30000000000000004) grayscale(0.30000000000000004) invert(0.30000000000000004) opacity(0.30000000000000004) saturate(0.30000000000000004) sepia(0.30000000000000004)"
    142142FAIL filter: interpolate different length of filter-function-list with function which lacuna value is 1 assert_equals: The value should be grayscale(0.5) brightness(0.5) contrast(0.5) opacity(0.5) saturate(0.5) at 500ms expected "grayscale(0.5) brightness(0.5) contrast(0.5) opacity(0.5) saturate(0.5)" but got "grayscale(1) brightness(0) contrast(0) opacity(0) saturate(0)"
    143 FAIL filter: interpolate different length of filter-function-list with function which lacuna value is 0 assert_equals: The value should be opacity(0.5) grayscale(0.5) invert(0.5) sepia(0.5) blur(5px) at 500ms expected "opacity(0.5) grayscale(0.5) invert(0.5) sepia(0.5) blur(5px)" but got "opacity(0) grayscale(1) invert(1) sepia(1) blur(10px)"
     143PASS filter: interpolate different length of filter-function-list with function which lacuna value is 0
    144144FAIL filter: interpolate different length of filter-function-list with drop-shadow function assert_equals: The value should be blur(5px) drop-shadow(rgba(85, 0, 170, 0.6) 5px 5px 5px at 500ms expected "blur(5px) drop-shadow(rgba(85, 0, 170, 0.6) 5px 5px 5px" but got "blur(10px) drop-shadow(rgba(0, 0, 255, 0.8) 10px 10px 10px)"
    145 FAIL filter: interpolate from none assert_equals: The value should be blur(5px) at 500ms expected "blur(5px)" but got "blur(10px)"
    146 FAIL filter: url function (interpoalte as discrete) assert_equals: The value should be blur(0px) url("#f1") at 499ms expected "blur(0px) url(\"#f1\")" but got "blur(10px) url(#f2)"
     145PASS filter: interpolate from none
     146FAIL filter: url function (interpoalte as discrete) assert_equals: The value should be blur(0px) url("#f1") at 499ms expected "blur(0px) url(\"#f1\")" but got "blur(4.989999771118164px) url(#f1)"
    147147PASS flood-color (type: color) has testInterpolation function
    148148PASS flood-color supports animating as color of rgb()
     
    240240PASS transform: rotate
    241241PASS transform: scale
    242 FAIL transform: skew assert_approx_equals: expected matrix(1,0.9999999999999999,0.9999999999999999,1,0,0) but got matrix(1.1153550716504106, 0.9659258262890682, 0.9659258262890681, 1.1153550716504106, 0, 0): The value should be matrix(1,0.9999999999999999,0.9999999999999999,1,0,0) at 500ms but got matrix(1.1153550716504106, 0.9659258262890682, 0.9659258262890681, 1.1153550716504106, 0, 0) expected 1 +/- 0.0001 but got 1.1153550716504106
     242PASS transform: skew
    243243PASS transform: rotate and translate
    244 FAIL transform: translate and rotate assert_approx_equals: expected matrix(6.123233995736766e-17,1,-1,6.123233995736766e-17,9.184850993605149e-15,150) but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, -35.35533905932736, 106.06601717798213): The value should be matrix(6.123233995736766e-17,1,-1,6.123233995736766e-17,9.184850993605149e-15,150) at 500ms but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, -35.35533905932736, 106.06601717798213) expected 9.184850993605149e-15 +/- 0.0001 but got -35.35533905932736
     244PASS transform: translate and rotate
    245245PASS transform: mismatch order of translate and rotate
    246246PASS transform: matrix
    247 FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,-0.5,0,0.1464466094067262,0.8535533905932737,0.5,0,0.5,-0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.7499999999999999, 0.2499999999999999, -0.3535533905932737, 0, 0.24999999999999983, 0.75, 0.3535533905932737, 0, 0.35355339059327373, -0.3535533905932737, 0.5000000000000002, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,-0.5,0,0.1464466094067262,0.8535533905932737,0.5,0,0.5,-0.5,0.7071067811865476,0,0,0,0,1) at 500ms but got matrix3d(0.7499999999999999, 0.2499999999999999, -0.3535533905932737, 0, 0.24999999999999983, 0.75, 0.3535533905932737, 0, 0.35355339059327373, -0.3535533905932737, 0.5000000000000002, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.7499999999999999
     247FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,-0.5,0,0.1464466094067262,0.8535533905932737,0.5,0,0.5,-0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.8660254037844386, 0.28867513459481287, -0.40824829046386296, 0, 0, 0.816496580927726, 0.5773502691896256, 0, 0.49999999999999994, -0.4999999999999999, 0.7071067811865476, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,-0.5,0,0.1464466094067262,0.8535533905932737,0.5,0,0.5,-0.5,0.7071067811865476,0,0,0,0,1) at 500ms but got matrix3d(0.8660254037844386, 0.28867513459481287, -0.40824829046386296, 0, 0, 0.816496580927726, 0.5773502691896256, 0, 0.49999999999999994, -0.4999999999999999, 0.7071067811865476, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.8660254037844386
    248248PASS transform: matrix3d
    249249PASS transform: mismatched 3D transforms
    250 FAIL transform: rotateY assert_approx_equals: expected matrix3d(0.8660254037844387,0,-0.49999999999999994,0,0,1,0,0,0.49999999999999994,0,0.8660254037844387,0,0,0,0,1) but got matrix3d(0.75, 0, -0.4330127018922192, 0, 0, 1, 0, 0, 0.4330127018922192, 0, 0.75, 0, 0, 0, 0, 1): The value should be matrix3d(0.8660254037844387,0,-0.49999999999999994,0,0,1,0,0,0.49999999999999994,0,0.8660254037844387,0,0,0,0,1) at 500ms but got matrix3d(0.75, 0, -0.4330127018922192, 0, 0, 1, 0, 0, 0.4330127018922192, 0, 0.75, 0, 0, 0, 0, 1) expected 0.8660254037844387 +/- 0.0001 but got 0.75
     250PASS transform: rotateY
    251251FAIL transform: non-invertible matrices assert_approx_equals: expected matrix(-1,0,0,-1,200,0) but got matrix(-0.0706572801427673, 0.719997959550522, -0.39514637992795165, -0.26007870466007205, 87.65015, 62.44984999999999): The value should be matrix(-1,0,0,-1,200,0) at 499ms but got matrix(-0.0706572801427673, 0.719997959550522, -0.39514637992795165, -0.26007870466007205, 87.65015, 62.44984999999999) expected -1 +/- 0.0001 but got -0.0706572801427673
    252 FAIL transform: non-invertible matrices in matched transform lists assert_approx_equals: expected matrix(0,-1,1,0,250,0) but got matrix(-0.7873989159254222, -1.115200903528419, 0.1364810122627057, -0.19136080826235746, 112.65025, 49.89999999999999): The value should be matrix(0,-1,1,0,250,0) at 499ms but got matrix(-0.7873989159254222, -1.115200903528419, 0.1364810122627057, -0.19136080826235746, 112.65025, 49.89999999999999) expected 0 +/- 0.0001 but got -0.7873989159254222
     252FAIL transform: non-invertible matrices in matched transform lists assert_approx_equals: expected matrix(0,-1,1,0,250,0) but got matrix(-0.22996553737931208, -0.6925071587258891, 0.3290121037669934, -0.3263002137418429, 162.60014694824218, 62.44984999999999): The value should be matrix(0,-1,1,0,250,0) at 499ms but got matrix(-0.22996553737931208, -0.6925071587258891, 0.3290121037669934, -0.3263002137418429, 162.60014694824218, 62.44984999999999) expected 0 +/- 0.0001 but got -0.22996553737931208
    253253FAIL transform: non-invertible matrices in mismatched transform lists assert_approx_equals: expected matrix(-2,0,0,-2,250,0) but got matrix(0.457235039557905, 1.5761580466297944, -1.1176085646538838, -0.6572212090027189, 112.65025, 49.89999999999999): The value should be matrix(-2,0,0,-2,250,0) at 499ms but got matrix(0.457235039557905, 1.5761580466297944, -1.1176085646538838, -0.6572212090027189, 112.65025, 49.89999999999999) expected -2 +/- 0.0001 but got 0.457235039557905
    254254PASS visibility (type: visibility) has testInterpolation function
  • trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt

    r230043 r230068  
    1111FAIL iteration composition of opacity animation assert_equals: Animated opacity style at 50s of the first iteration expected "0.2" but got "0.20000000298023224"
    1212FAIL iteration composition of box-shadow animation assert_equals: Animated box-shadow style at 0s of the third iteration expected "rgb(240, 240, 240) 20px 20px 20px 0px" but got "rgb(0, 0, 0) 0px 0px 0px 0px"
    13 FAIL iteration composition of filter blur animation assert_equals: Animated filter blur style at 50s of the first iteration expected "blur(5px)" but got "blur(10px)"
    14 FAIL iteration composition of filter brightness for different unit animation assert_equals: Animated filter brightness style at 50s of the first iteration expected "brightness(1.4)" but got "brightness(1.8)"
    15 FAIL iteration composition of filter brightness animation assert_equals: Animated filter brightness style at 50s of the first iteration expected "brightness(0.5)" but got "brightness(1)"
    16 FAIL iteration composition of filter drop-shadow animation assert_equals: Animated filter drop-shadow style at 50s of the first iteration expected "drop-shadow(rgb(60, 60, 60) 5px 5px 5px)" but got "drop-shadow(rgb(120, 120, 120) 10px 10px 10px)"
    17 FAIL iteration composition of same filter list animation assert_equals: Animated filter list at 50s of the first iteration expected "brightness(1.5) contrast(1.5)" but got "brightness(2) contrast(2)"
     13FAIL iteration composition of filter blur animation assert_equals: Animated filter blur style at 0s of the third iteration expected "blur(20px)" but got "blur(0px)"
     14FAIL iteration composition of filter brightness for different unit animation assert_equals: Animated filter brightness style at 0s of the third iteration expected "brightness(2.6)" but got "brightness(1)"
     15PASS iteration composition of filter brightness animation
     16FAIL iteration composition of filter drop-shadow animation assert_equals: Animated filter drop-shadow style at 0s of the third iteration expected "drop-shadow(rgb(240, 240, 240) 20px 20px 20px)" but got "drop-shadow(rgb(0, 0, 0) 0px 0px 0px)"
     17FAIL iteration composition of same filter list animation assert_equals: Animated filter list at 0s of the third iteration expected "brightness(3) contrast(3)" but got "brightness(1) contrast(1)"
    1818FAIL iteration composition of discrete filter list because of mismatch of the order assert_equals: Animated filter list at 0s of the third iteration expected "brightness(1) contrast(1)" but got "contrast(2) brightness(2)"
    1919FAIL iteration composition of different length filter list animation assert_equals: Animated filter list at 50s of the first iteration expected "sepia(0.5) contrast(1.5)" but got "sepia(1) contrast(2)"
    20 FAIL iteration composition of transform(rotate) animation assert_approx_equals: expected matrix(0, 1, -1, 0, 0, 0) but got matrix(-0.00000000000000018369701987210297, -1, 1, -0.00000000000000018369701987210297, 0, 0): Animated transform(rotate) style at 50s of the first iteration expected 1 +/- 0.0001 but got -1
    21 FAIL iteration composition of transform: [ scale(0), scale(1) ] animation assert_approx_equals: expected matrix(0.5, 0, 0, 0.5, 0, 0) but got matrix(0.25, -0.00000000000000006123233995736766, 0.00000000000000006123233995736766, 0.25, 0, 0): Animated transform(scale) style at 50s of the first iteration expected 0.5 +/- 0.0001 but got 0.25
    22 FAIL iteration composition of transform: [ scale(1), scale(2) ] animation assert_approx_equals: expected matrix(3, 0, 0, 3, 0, 0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 0, 0): Animated transform(scale) style at 0s of the third iteration expected 3 +/- 0.0001 but got 1
    23 FAIL iteration composition of transform: scale(2) animation assert_approx_equals: expected matrix(1, 0, 0, 1, 0, 0) but got matrix(0.5, -0.00000000000000012246467991473532, 0.00000000000000012246467991473532, 0.5, 0, 0): Animated transform(scale) style at 50s of the first iteration expected 1 +/- 0.0001 but got 0.5
    24 FAIL iteration composition of transform list animation assert_approx_equals: expected matrix(0, 1, -1, 0, 0, 5) but got matrix(-0.00000000000000018369701987210297, -1, 1, -0.00000000000000018369701987210297, -5, 0.0000000000000006123233995736766): Animated transform list at 50s of the first iteration expected 1 +/- 0.0001 but got -1
     20PASS iteration composition of transform(rotate) animation
     21PASS iteration composition of transform: [ scale(0), scale(1) ] animation
     22FAIL iteration composition of transform: [ scale(1), scale(2) ] animation assert_approx_equals: expected matrix(3, 0, 0, 3, 0, 0) but got matrix(1, 0, 0, 1, 0, 0): Animated transform(scale) style at 0s of the third iteration expected 3 +/- 0.0001 but got 1
     23FAIL iteration composition of transform: scale(2) animation assert_approx_equals: expected matrix(2, 0, 0, 2, 0, 0) but got matrix(0, 0, 0, 0, 0, 0): Animated transform(scale) style at 0s of the third iteration expected 2 +/- 0.0001 but got 0
     24FAIL iteration composition of transform list animation assert_approx_equals: expected matrix(1, 0, 0, 1, 20, 0) but got matrix(1, 0, 0, 1, 0, 0): Animated transform list at 0s of the third iteration expected 20 +/- 0.0001 but got 0
    2525FAIL iteration composition of transform of matrix function assert_approx_equals: expected matrix(6, 0, 0, 6, 60, 0) but got matrix(2, -0.0000000000000004898587196589413, 0.0000000000000004898587196589413, 2, 0, 0): Animated transform of matrix function at 0s of the third iteration expected 6 +/- 0.0001 but got 2
    2626FAIL iteration composition of transform list animation whose order is mismatched assert_approx_equals: expected matrix(6, 0, 0, 6, 60, 0) but got matrix(2, -0.0000000000000004898587196589413, 0.0000000000000004898587196589413, 2, 0, 0): Animated transform list at 0s of the third iteration expected 6 +/- 0.0001 but got 2
    2727FAIL iteration composition of transform list animation whose order is mismatched because of missing functions assert_approx_equals: expected matrix(3, 0, 0, 3, 40, 0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 0, 0): Animated transform list at 0s of the third iteration expected 3 +/- 0.0001 but got 1
    28 FAIL iteration composition of transform from none to translate assert_approx_equals: expected matrix(1, 0, 0, 1, 20, 0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 0, 0): Animated transform list at 0s of the third iteration expected 20 +/- 0.0001 but got 0
     28FAIL iteration composition of transform from none to translate assert_approx_equals: expected matrix(1, 0, 0, 1, 20, 0) but got matrix(1, 0, 0, 1, 0, 0): Animated transform list at 0s of the third iteration expected 20 +/- 0.0001 but got 0
    2929FAIL iteration composition of transform of matrix3d function assert_approx_equals: expected matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 130, 1) but got matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 30, 1): Animated transform of matrix3d function at 0s of the third iteration expected 130 +/- 0.0001 but got 30
    3030FAIL iteration composition of transform of rotate3d function assert_equals: dimension of the matrix: Animated transform of rotate3d function at 0s of the third iteration expected 16 but got 6
  • trunk/LayoutTests/platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt

    r230043 r230068  
    191191FAIL text-shadow: shadow assert_equals: The value should be rgb(240, 240, 240) 20px 20px 20px at 0ms expected "rgb(240, 240, 240) 20px 20px 20px" but got "rgb(120, 120, 120) 10px 10px 10px"
    192192PASS transform (type: transformList) has testAccumulation function
    193 FAIL transform: translate assert_approx_equals: expected matrix(1,0,0,1,-100,0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, -200, 0): The value should be matrix(1,0,0,1,-100,0) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, -200, 0) expected -100 +/- 0.0001 but got -200
     193FAIL transform: translate assert_approx_equals: expected matrix(1,0,0,1,-100,0) but got matrix(1, 0, 0, 1, -200, 0): The value should be matrix(1,0,0,1,-100,0) at 0ms but got matrix(1, 0, 0, 1, -200, 0) expected -100 +/- 0.0001 but got -200
    194194FAIL transform: rotate assert_approx_equals: expected matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 0, 0): The value should be matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) at 0ms but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 0, 0) expected 0.7071067811865476 +/- 0.0001 but got 6.123233995736766e-17
    195 FAIL transform: scale assert_approx_equals: expected matrix(-2,0,0,-2,0,0) but got matrix(-3, -0.00000000000000036739403974420594, 0.00000000000000036739403974420594, -3, 0, 0): The value should be matrix(-2,0,0,-2,0,0) at 0ms but got matrix(-3, -0.00000000000000036739403974420594, 0.00000000000000036739403974420594, -3, 0, 0) expected -2 +/- 0.0001 but got -3
    196 FAIL transform: skew assert_approx_equals: expected matrix(1,0.5773502691896256,-0.36397023426620234,1,0,0) but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1.0000000000000002, 0, 0): The value should be matrix(1,0.5773502691896256,-0.36397023426620234,1,0,0) at 0ms but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1.0000000000000002, 0, 0) expected 0.5773502691896256 +/- 0.0001 but got 0.36397023426620234
     195FAIL transform: scale assert_approx_equals: expected matrix(-2,0,0,-2,0,0) but got matrix(-3, 0, 0, -3, 0, 0): The value should be matrix(-2,0,0,-2,0,0) at 0ms but got matrix(-3, 0, 0, -3, 0, 0) expected -2 +/- 0.0001 but got -3
     196FAIL transform: skew assert_approx_equals: expected matrix(1,0.5773502691896256,-0.36397023426620234,1,0,0) but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1, 0, 0): The value should be matrix(1,0.5773502691896256,-0.36397023426620234,1,0,0) at 0ms but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1, 0, 0) expected 0.5773502691896256 +/- 0.0001 but got 0.36397023426620234
    197197FAIL transform: rotate on translate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, 0, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, 0, 0) expected 100 +/- 0.0001 but got 0
    198 FAIL transform: translate on rotate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0) expected 0 +/- 0.0001 but got 1
     198FAIL transform: translate on rotate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(1, 0, 0, 1, 100, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(1, 0, 0, 1, 100, 0) expected 0 +/- 0.0001 but got 1
    199199FAIL transform: matrix assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0) expected 0 +/- 0.0001 but got 1
    200 FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.4999999999999999, 0.4999999999999998, 0.7071067811865475, 0, 0.49999999999999967, 0.5, -0.7071067811865475, 0, -0.7071067811865475, 0.7071067811865474, 0.0000000000000002483427041595098, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.4999999999999999, 0.4999999999999998, 0.7071067811865475, 0, 0.49999999999999967, 0.5, -0.7071067811865475, 0, -0.7071067811865475, 0.7071067811865474, 0.0000000000000002483427041595098, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.4999999999999999
     200FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.4999999999999999, 0.49999999999999994, 0.7071067811865476, 0, 0.49999999999999994, 0.5000000000000001, -0.7071067811865475, 0, -0.7071067811865476, 0.7071067811865475, 0.00000000000000006123233995736766, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.4999999999999999, 0.49999999999999994, 0.7071067811865476, 0, 0.49999999999999994, 0.5000000000000001, -0.7071067811865475, 0, -0.7071067811865476, 0.7071067811865475, 0.00000000000000006123233995736766, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.4999999999999999
    201201FAIL transform: matrix3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.5000000000000001, 0.49999999999999983, 0.7071067811865474, 0, 0.4999999999999997, 0.5000000000000002, -0.7071067811865476, 0, -0.7071067811865476, 0.7071067811865474, 0.000000000000000404259158300213, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.5000000000000001, 0.49999999999999983, 0.7071067811865474, 0, 0.4999999999999997, 0.5000000000000002, -0.7071067811865476, 0, -0.7071067811865476, 0.7071067811865474, 0.000000000000000404259158300213, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.5000000000000001
    202202FAIL transform: none assert_equals: dimension of the matrix: The value should be matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1) at 0ms but got matrix(1, 0, 0, 1, 0, 0) expected 16 but got 6
    203203FAIL transform: non-invertible matrices (non-invertible onto invertible) assert_approx_equals: expected matrix(1,1,0,0,0,100) but got matrix(1, 1, 0, 0, 49.999999999999986, 49.999999999999986): The value should be matrix(1,1,0,0,0,100) at 0ms but got matrix(1, 1, 0, 0, 49.999999999999986, 49.999999999999986) expected 0 +/- 0.0001 but got 49.999999999999986
    204204PASS transform: non-invertible matrices (invertible onto non-invertible)
    205 PASS transform: non-invertible matrices in matched transform lists (non-invertible onto invertible)
     205FAIL transform: non-invertible matrices in matched transform lists (non-invertible onto invertible) assert_approx_equals: expected matrix(-1,-1,0,0,100,100) but got matrix(-1, -1, -0.00000000000000012246467991473532, -0.00000000000000012246467991473532, 150, 49.999999999999986): The value should be matrix(-1,-1,0,0,100,100) at 0ms but got matrix(-1, -1, -0.00000000000000012246467991473532, -0.00000000000000012246467991473532, 150, 49.999999999999986) expected 100 +/- 0.0001 but got 150
    206206PASS transform: non-invertible matrices in matched transform lists (invertible onto non-invertible)
    207 PASS transform: non-invertible matrices in mismatched transform lists (non-invertible onto invertible)
     207FAIL transform: non-invertible matrices in mismatched transform lists (non-invertible onto invertible) assert_approx_equals: expected matrix(1,1,1,1,100,100) but got matrix(1, 1, 0.9999999999999999, 0.9999999999999999, 150, 49.999999999999986): The value should be matrix(1,1,1,1,100,100) at 0ms but got matrix(1, 1, 0.9999999999999999, 0.9999999999999999, 150, 49.999999999999986) expected 100 +/- 0.0001 but got 150
    208208PASS transform: non-invertible matrices in mismatched transform lists (invertible onto non-invertible)
    209209PASS visibility (type: visibility) has testAccumulation function
  • trunk/LayoutTests/platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt

    r230043 r230068  
    119119FAIL fill-opacity: [0, 1] number (clamped) assert_equals: The value should be 1 at 0ms expected "1" but got "0.30000001192092896"
    120120PASS filter (type: filterList) has testAddition function
    121 FAIL filter: blur on blur assert_equals: The value should be blur(10px) blur(20px) at 0ms expected "blur(10px) blur(20px)" but got "blur(50px)"
    122 FAIL filter: different filter functions assert_equals: The value should be blur(10px) brightness(0.8) at 0ms expected "blur(10px) brightness(0.8)" but got "brightness(0.4)"
     121FAIL filter: blur on blur assert_equals: The value should be blur(10px) blur(20px) at 0ms expected "blur(10px) blur(20px)" but got "blur(20px)"
     122FAIL filter: different filter functions assert_equals: The value should be blur(10px) brightness(0.8) at 0ms expected "blur(10px) brightness(0.8)" but got "brightness(0.8)"
    123123PASS flood-color (type: color) has testAddition function
    124124FAIL flood-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
     
    191191FAIL text-shadow: shadow assert_equals: The value should be rgb(0, 0, 0) 0px 0px 0px, rgb(120, 120, 120) 10px 10px 10px at 0ms expected "rgb(0, 0, 0) 0px 0px 0px, rgb(120, 120, 120) 10px 10px 10px" but got "rgb(120, 120, 120) 10px 10px 10px"
    192192PASS transform (type: transformList) has testAddition function
    193 FAIL transform: translate assert_approx_equals: expected matrix(1,0,0,1,-100,0) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, -200, 0): The value should be matrix(1,0,0,1,-100,0) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, -200, 0) expected -100 +/- 0.0001 but got -200
     193FAIL transform: translate assert_approx_equals: expected matrix(1,0,0,1,-100,0) but got matrix(1, 0, 0, 1, -200, 0): The value should be matrix(1,0,0,1,-100,0) at 0ms but got matrix(1, 0, 0, 1, -200, 0) expected -100 +/- 0.0001 but got -200
    194194FAIL transform: rotate assert_approx_equals: expected matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 0, 0): The value should be matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) at 0ms but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 0, 0) expected 0.7071067811865476 +/- 0.0001 but got 6.123233995736766e-17
    195 FAIL transform: scale assert_approx_equals: expected matrix(-6,0,0,-6,0,0) but got matrix(-3, -0.00000000000000036739403974420594, 0.00000000000000036739403974420594, -3, 0, 0): The value should be matrix(-6,0,0,-6,0,0) at 0ms but got matrix(-3, -0.00000000000000036739403974420594, 0.00000000000000036739403974420594, -3, 0, 0) expected -6 +/- 0.0001 but got -3
    196 FAIL transform: skew assert_approx_equals: expected matrix(1.064177772475912,0.5402972149746673,-0.40102328848116064,0.8981975702225738,0,0) but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1.0000000000000002, 0, 0): The value should be matrix(1.064177772475912,0.5402972149746673,-0.40102328848116064,0.8981975702225738,0,0) at 0ms but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1.0000000000000002, 0, 0) expected 1.064177772475912 +/- 0.0001 but got 1
     195FAIL transform: scale assert_approx_equals: expected matrix(-6,0,0,-6,0,0) but got matrix(-3, 0, 0, -3, 0, 0): The value should be matrix(-6,0,0,-6,0,0) at 0ms but got matrix(-3, 0, 0, -3, 0, 0) expected -6 +/- 0.0001 but got -3
     196FAIL transform: skew assert_approx_equals: expected matrix(1.064177772475912,0.5402972149746673,-0.40102328848116064,0.8981975702225738,0,0) but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1, 0, 0): The value should be matrix(1.064177772475912,0.5402972149746673,-0.40102328848116064,0.8981975702225738,0,0) at 0ms but got matrix(1, 0.36397023426620234, -0.5773502691896256, 1, 0, 0) expected 1.064177772475912 +/- 0.0001 but got 1
    197197FAIL transform: rotate on translate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, 0, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, 0, 0) expected 100 +/- 0.0001 but got 0
    198 FAIL transform: translate on rotate assert_approx_equals: expected matrix(0,1,-1,0,0,100) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0): The value should be matrix(0,1,-1,0,0,100) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0) expected 0 +/- 0.0001 but got 1
     198FAIL transform: translate on rotate assert_approx_equals: expected matrix(0,1,-1,0,0,100) but got matrix(1, 0, 0, 1, 100, 0): The value should be matrix(0,1,-1,0,0,100) at 0ms but got matrix(1, 0, 0, 1, 100, 0) expected 0 +/- 0.0001 but got 1
    199199FAIL transform: matrix assert_approx_equals: expected matrix(0,1,-1,0,0,100) but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0): The value should be matrix(0,1,-1,0,0,100) at 0ms but got matrix(1, -0.00000000000000024492935982947064, 0.00000000000000024492935982947064, 1, 100, 0) expected 0 +/- 0.0001 but got 1
    200 FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.4999999999999999, 0.4999999999999998, 0.7071067811865475, 0, 0.49999999999999967, 0.5, -0.7071067811865475, 0, -0.7071067811865475, 0.7071067811865474, 0.0000000000000002483427041595098, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.4999999999999999, 0.4999999999999998, 0.7071067811865475, 0, 0.49999999999999967, 0.5, -0.7071067811865475, 0, -0.7071067811865475, 0.7071067811865474, 0.0000000000000002483427041595098, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.4999999999999999
     200FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.4999999999999999, 0.49999999999999994, 0.7071067811865476, 0, 0.49999999999999994, 0.5000000000000001, -0.7071067811865475, 0, -0.7071067811865476, 0.7071067811865475, 0.00000000000000006123233995736766, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.4999999999999999, 0.49999999999999994, 0.7071067811865476, 0, 0.49999999999999994, 0.5000000000000001, -0.7071067811865475, 0, -0.7071067811865476, 0.7071067811865475, 0.00000000000000006123233995736766, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.4999999999999999
    201201FAIL transform: matrix3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.5000000000000001, 0.49999999999999983, 0.7071067811865474, 0, 0.4999999999999997, 0.5000000000000002, -0.7071067811865476, 0, -0.7071067811865476, 0.7071067811865474, 0.000000000000000404259158300213, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.5000000000000001, 0.49999999999999983, 0.7071067811865474, 0, 0.4999999999999997, 0.5000000000000002, -0.7071067811865476, 0, -0.7071067811865476, 0.7071067811865474, 0.000000000000000404259158300213, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.5000000000000001
    202202FAIL transform: non-invertible matrices assert_approx_equals: expected matrix(-1,0,0,-1,250,0) but got matrix(-1, 0.00000000000000012246467991473532, -0.00000000000000012246467991473532, -1, 200, 0): The value should be matrix(-1,0,0,-1,250,0) at 0ms but got matrix(-1, 0.00000000000000012246467991473532, -0.00000000000000012246467991473532, -1, 200, 0) expected 250 +/- 0.0001 but got 200
    203 FAIL transform: non-invertible matrices in matched transform lists assert_approx_equals: expected matrix(0,-1,1,0,250,0) but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 200, 0): The value should be matrix(0,-1,1,0,250,0) at 0ms but got matrix(0.00000000000000006123233995736766, -1, 1, 0.00000000000000006123233995736766, 200, 0) expected 250 +/- 0.0001 but got 200
     203FAIL transform: non-invertible matrices in matched transform lists assert_approx_equals: expected matrix(0,-1,1,0,250,0) but got matrix(-0.00000000000000018369701987210297, -1, 1, -0.00000000000000018369701987210297, 200, 0): The value should be matrix(0,-1,1,0,250,0) at 0ms but got matrix(-0.00000000000000018369701987210297, -1, 1, -0.00000000000000018369701987210297, 200, 0) expected 250 +/- 0.0001 but got 200
    204204FAIL transform: non-invertible matrices in mismatched transform lists assert_approx_equals: expected matrix(-2,0,0,-2,250,0) but got matrix(-2, 0.00000000000000024492935982947064, -0.00000000000000024492935982947064, -2, 200, 0): The value should be matrix(-2,0,0,-2,250,0) at 0ms but got matrix(-2, 0.00000000000000024492935982947064, -0.00000000000000024492935982947064, -2, 200, 0) expected 250 +/- 0.0001 but got 200
    205205PASS visibility (type: visibility) has testAddition function
  • trunk/LayoutTests/platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt

    r230043 r230068  
    134134FAIL fill-opacity supports animating as a [0, 1] number assert_equals: The value should be 0.55 at 500ms expected "0.55" but got "0.550000011920929"
    135135PASS filter (type: filterList) has testInterpolation function
    136 FAIL filter: blur function assert_equals: The value should be blur(30px) at 500ms expected "blur(30px)" but got "blur(50px)"
    137 FAIL filter: hue-rotate function with same unit(deg) assert_equals: The value should be hue-rotate(50deg) at 500ms expected "hue-rotate(50deg)" but got "hue-rotate(100deg)"
    138 FAIL filter: hue-rotate function with different unit(deg -> rad) assert_equals: The value should be hue-rotate(50.0873rad) at 500ms expected "hue-rotate(50.0873rad)" but got "hue-rotate(5729.5779513082325deg)"
    139 FAIL filter: drop-shadow function assert_equals: The value should be drop-shadow(rgba(85, 0, 170, 0.6) 30px 30px 30px) at 500ms expected "drop-shadow(rgba(85, 0, 170, 0.6) 30px 30px 30px)" but got "drop-shadow(rgba(0, 0, 255, 0.8) 50px 50px 50px)"
    140 FAIL filter: percentage or numeric-specifiable functions (number value) assert_equals: The value should be brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3) at 500ms expected "brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3)" but got "brightness(0.5) contrast(0.5) grayscale(0.5) invert(0.5) opacity(0.5) saturate(0.5) sepia(0.5)"
    141 FAIL filter: percentage or numeric-specifiable functions (percentage value) assert_equals: The value should be brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3) at 500ms expected "brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3)" but got "brightness(0.5) contrast(0.5) grayscale(0.5) invert(0.5) opacity(0.5) saturate(0.5) sepia(0.5)"
     136PASS filter: blur function
     137PASS filter: hue-rotate function with same unit(deg)
     138FAIL filter: hue-rotate function with different unit(deg -> rad) assert_equals: The value should be hue-rotate(50.0873rad) at 500ms expected "hue-rotate(50.0873rad)" but got "hue-rotate(2869.7889756541163deg)"
     139PASS filter: drop-shadow function
     140FAIL filter: percentage or numeric-specifiable functions (number value) assert_equals: The value should be brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3) at 500ms expected "brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3)" but got "brightness(0.30000000000000004) contrast(0.30000000000000004) grayscale(0.30000000000000004) invert(0.30000000000000004) opacity(0.30000000000000004) saturate(0.30000000000000004) sepia(0.30000000000000004)"
     141FAIL filter: percentage or numeric-specifiable functions (percentage value) assert_equals: The value should be brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3) at 500ms expected "brightness(0.3) contrast(0.3) grayscale(0.3) invert(0.3) opacity(0.3) saturate(0.3) sepia(0.3)" but got "brightness(0.30000000000000004) contrast(0.30000000000000004) grayscale(0.30000000000000004) invert(0.30000000000000004) opacity(0.30000000000000004) saturate(0.30000000000000004) sepia(0.30000000000000004)"
    142142FAIL filter: interpolate different length of filter-function-list with function which lacuna value is 1 assert_equals: The value should be grayscale(0.5) brightness(0.5) contrast(0.5) opacity(0.5) saturate(0.5) at 500ms expected "grayscale(0.5) brightness(0.5) contrast(0.5) opacity(0.5) saturate(0.5)" but got "grayscale(1) brightness(0) contrast(0) opacity(0) saturate(0)"
    143 FAIL filter: interpolate different length of filter-function-list with function which lacuna value is 0 assert_equals: The value should be opacity(0.5) grayscale(0.5) invert(0.5) sepia(0.5) blur(5px) at 500ms expected "opacity(0.5) grayscale(0.5) invert(0.5) sepia(0.5) blur(5px)" but got "opacity(0) grayscale(1) invert(1) sepia(1) blur(10px)"
     143PASS filter: interpolate different length of filter-function-list with function which lacuna value is 0
    144144FAIL filter: interpolate different length of filter-function-list with drop-shadow function assert_equals: The value should be blur(5px) drop-shadow(rgba(85, 0, 170, 0.6) 5px 5px 5px at 500ms expected "blur(5px) drop-shadow(rgba(85, 0, 170, 0.6) 5px 5px 5px" but got "blur(10px) drop-shadow(rgba(0, 0, 255, 0.8) 10px 10px 10px)"
    145 FAIL filter: interpolate from none assert_equals: The value should be blur(5px) at 500ms expected "blur(5px)" but got "blur(10px)"
    146 FAIL filter: url function (interpoalte as discrete) assert_equals: The value should be blur(0px) url("#f1") at 499ms expected "blur(0px) url(\"#f1\")" but got "blur(10px) url(#f2)"
     145PASS filter: interpolate from none
     146FAIL filter: url function (interpoalte as discrete) assert_equals: The value should be blur(0px) url("#f1") at 499ms expected "blur(0px) url(\"#f1\")" but got "blur(4.989999771118164px) url(#f1)"
    147147PASS flood-color (type: color) has testInterpolation function
    148148PASS flood-color supports animating as color of rgb()
     
    229229PASS transform: rotate
    230230PASS transform: scale
    231 FAIL transform: skew assert_approx_equals: expected matrix(1,0.9999999999999999,0.9999999999999999,1,0,0) but got matrix(1.1153550716504106, 0.9659258262890682, 0.9659258262890681, 1.1153550716504106, 0, 0): The value should be matrix(1,0.9999999999999999,0.9999999999999999,1,0,0) at 500ms but got matrix(1.1153550716504106, 0.9659258262890682, 0.9659258262890681, 1.1153550716504106, 0, 0) expected 1 +/- 0.0001 but got 1.1153550716504106
     231PASS transform: skew
    232232PASS transform: rotate and translate
    233 FAIL transform: translate and rotate assert_approx_equals: expected matrix(6.123233995736766e-17,1,-1,6.123233995736766e-17,9.184850993605149e-15,150) but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, -35.35533905932736, 106.06601717798213): The value should be matrix(6.123233995736766e-17,1,-1,6.123233995736766e-17,9.184850993605149e-15,150) at 500ms but got matrix(0.00000000000000006123233995736766, 1, -1, 0.00000000000000006123233995736766, -35.35533905932736, 106.06601717798213) expected 9.184850993605149e-15 +/- 0.0001 but got -35.35533905932736
     233PASS transform: translate and rotate
    234234PASS transform: mismatch order of translate and rotate
    235235PASS transform: matrix
    236 FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,-0.5,0,0.1464466094067262,0.8535533905932737,0.5,0,0.5,-0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.7499999999999999, 0.2499999999999999, -0.3535533905932737, 0, 0.24999999999999983, 0.75, 0.3535533905932737, 0, 0.35355339059327373, -0.3535533905932737, 0.5000000000000002, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,-0.5,0,0.1464466094067262,0.8535533905932737,0.5,0,0.5,-0.5,0.7071067811865476,0,0,0,0,1) at 500ms but got matrix3d(0.7499999999999999, 0.2499999999999999, -0.3535533905932737, 0, 0.24999999999999983, 0.75, 0.3535533905932737, 0, 0.35355339059327373, -0.3535533905932737, 0.5000000000000002, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.7499999999999999
     236FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,-0.5,0,0.1464466094067262,0.8535533905932737,0.5,0,0.5,-0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.8660254037844386, 0.28867513459481287, -0.40824829046386296, 0, 0, 0.816496580927726, 0.5773502691896256, 0, 0.49999999999999994, -0.4999999999999999, 0.7071067811865476, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,-0.5,0,0.1464466094067262,0.8535533905932737,0.5,0,0.5,-0.5,0.7071067811865476,0,0,0,0,1) at 500ms but got matrix3d(0.8660254037844386, 0.28867513459481287, -0.40824829046386296, 0, 0, 0.816496580927726, 0.5773502691896256, 0, 0.49999999999999994, -0.4999999999999999, 0.7071067811865476, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.8660254037844386
    237237PASS transform: matrix3d
    238238PASS transform: mismatched 3D transforms
    239 FAIL transform: rotateY assert_approx_equals: expected matrix3d(0.8660254037844387,0,-0.49999999999999994,0,0,1,0,0,0.49999999999999994,0,0.8660254037844387,0,0,0,0,1) but got matrix3d(0.75, 0, -0.4330127018922192, 0, 0, 1, 0, 0, 0.4330127018922192, 0, 0.75, 0, 0, 0, 0, 1): The value should be matrix3d(0.8660254037844387,0,-0.49999999999999994,0,0,1,0,0,0.49999999999999994,0,0.8660254037844387,0,0,0,0,1) at 500ms but got matrix3d(0.75, 0, -0.4330127018922192, 0, 0, 1, 0, 0, 0.4330127018922192, 0, 0.75, 0, 0, 0, 0, 1) expected 0.8660254037844387 +/- 0.0001 but got 0.75
     239PASS transform: rotateY
    240240FAIL transform: non-invertible matrices assert_approx_equals: expected matrix(-1,0,0,-1,200,0) but got matrix(-0.0706572801427673, 0.719997959550522, -0.39514637992795165, -0.26007870466007205, 87.65015, 62.44984999999999): The value should be matrix(-1,0,0,-1,200,0) at 499ms but got matrix(-0.0706572801427673, 0.719997959550522, -0.39514637992795165, -0.26007870466007205, 87.65015, 62.44984999999999) expected -1 +/- 0.0001 but got -0.0706572801427673
    241 FAIL transform: non-invertible matrices in matched transform lists assert_approx_equals: expected matrix(0,-1,1,0,250,0) but got matrix(-0.7873989159254222, -1.115200903528419, 0.1364810122627057, -0.19136080826235746, 112.65025, 49.89999999999999): The value should be matrix(0,-1,1,0,250,0) at 499ms but got matrix(-0.7873989159254222, -1.115200903528419, 0.1364810122627057, -0.19136080826235746, 112.65025, 49.89999999999999) expected 0 +/- 0.0001 but got -0.7873989159254222
     241FAIL transform: non-invertible matrices in matched transform lists assert_approx_equals: expected matrix(0,-1,1,0,250,0) but got matrix(-0.22996553737931208, -0.6925071587258891, 0.3290121037669934, -0.3263002137418429, 162.60014694824218, 62.44984999999999): The value should be matrix(0,-1,1,0,250,0) at 499ms but got matrix(-0.22996553737931208, -0.6925071587258891, 0.3290121037669934, -0.3263002137418429, 162.60014694824218, 62.44984999999999) expected 0 +/- 0.0001 but got -0.22996553737931208
    242242FAIL transform: non-invertible matrices in mismatched transform lists assert_approx_equals: expected matrix(-2,0,0,-2,250,0) but got matrix(0.457235039557905, 1.5761580466297944, -1.1176085646538838, -0.6572212090027189, 112.65025, 49.89999999999999): The value should be matrix(-2,0,0,-2,250,0) at 499ms but got matrix(0.457235039557905, 1.5761580466297944, -1.1176085646538838, -0.6572212090027189, 112.65025, 49.89999999999999) expected -2 +/- 0.0001 but got 0.457235039557905
    243243PASS visibility (type: visibility) has testInterpolation function
  • trunk/LayoutTests/transitions/clip-path-transitions.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/transitions/color-transition-premultiplied.html

    r230043 r230068  
    1 <!DOCTYPE html>
     1<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/transitions/cross-fade-border-image.html

    r230043 r230068  
    1 <!DOCTYPE>
     1<!DOCTYPE><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/transitions/cubic-bezier-overflow-length.html

    r230043 r230068  
    1 <!doctype html>
     1<!doctype html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22<html>
    33  <head>
  • trunk/LayoutTests/transitions/cubic-bezier-overflow-svg-length.html

    r230043 r230068  
    1 <!doctype html>
     1<!doctype html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22<html>
    33  <head>
  • trunk/LayoutTests/transitions/delay.html

    r230043 r230068  
    1 <html>
     1<html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22<head>
    33  <style>
  • trunk/LayoutTests/transitions/longhand-vs-shorthand-initial.html

    r230043 r230068  
    1 <!DOCTYPE>
     1<!DOCTYPE><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/LayoutTests/transitions/multiple-background-transitions.html

    r230043 r230068  
    1 <!DOCTYPE>
     1<!DOCTYPE><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->
    22
    33<html>
  • trunk/Source/WebCore/ChangeLog

    r230066 r230068  
     12018-03-28  Antoine Quint  <graouts@apple.com>
     2
     3        [Web Animations] Implement more CSSPropertyBlendingClient methods
     4        https://bugs.webkit.org/show_bug.cgi?id=184077
     5
     6        Reviewed by Dean Jackson.
     7
     8        We only had stubs for several of the CSSPropertyBlendingClient methods and thus always implied that we
     9        were animating non-matching transform, filter and backdrop-filter properties. We now implement those using
     10        the same code used in KeyframeAnimation. This allows for 31 new tests to opt into the CSS Animations and
     11        CSS Transitions as Web Animations feature.
     12
     13        We also ensure we only run a CSSAnimationController assertion in FrameView::didDestroyRenderTree() if
     14        we're not using the CSS Animations and CSS Transitions as Web Animations feature.
     15
     16        * animation/KeyframeEffectReadOnly.cpp:
     17        (WebCore::KeyframeEffectReadOnly::copyPropertiesFromSource):
     18        (WebCore::KeyframeEffectReadOnly::updateBlendingKeyframes):
     19        (WebCore::KeyframeEffectReadOnly::setBlendingKeyframes):
     20        (WebCore::KeyframeEffectReadOnly::checkForMatchingTransformFunctionLists):
     21        (WebCore::KeyframeEffectReadOnly::checkForMatchingFilterFunctionLists):
     22        (WebCore::KeyframeEffectReadOnly::checkForMatchingBackdropFilterFunctionLists):
     23        (WebCore::KeyframeEffectReadOnly::computeCSSAnimationBlendingKeyframes):
     24        (WebCore::KeyframeEffectReadOnly::computeCSSTransitionBlendingKeyframes):
     25        * animation/KeyframeEffectReadOnly.h:
     26        * page/FrameView.cpp:
     27        (WebCore::FrameView::didDestroyRenderTree):
     28
    1292018-03-28  Chris Dumez  <cdumez@apple.com>
    230
  • trunk/Source/WebCore/animation/KeyframeEffectReadOnly.cpp

    r230043 r230068  
    488488        keyframeList.insert(WTFMove(keyframeValue));
    489489    }
    490     m_blendingKeyframes = WTFMove(keyframeList);
     490    setBlendingKeyframes(keyframeList);
    491491}
    492492
     
    688688    }
    689689
    690     m_blendingKeyframes = WTFMove(keyframeList);
     690    setBlendingKeyframes(keyframeList);
     691}
     692
     693void KeyframeEffectReadOnly::setBlendingKeyframes(KeyframeList& blendingKeyframes)
     694{
     695    m_blendingKeyframes = WTFMove(blendingKeyframes);
    691696
    692697    computeStackingContextImpact();
    693 }
     698
     699    checkForMatchingTransformFunctionLists();
     700    checkForMatchingFilterFunctionLists();
     701#if ENABLE(FILTERS_LEVEL_2)
     702    checkForMatchingBackdropFilterFunctionLists();
     703#endif
     704}
     705
     706void KeyframeEffectReadOnly::checkForMatchingTransformFunctionLists()
     707{
     708    m_transformFunctionListsMatch = false;
     709
     710    if (m_blendingKeyframes.size() < 2 || !m_blendingKeyframes.containsProperty(CSSPropertyTransform))
     711        return;
     712
     713    // Empty transforms match anything, so find the first non-empty entry as the reference.
     714    size_t numKeyframes = m_blendingKeyframes.size();
     715    size_t firstNonEmptyTransformKeyframeIndex = numKeyframes;
     716
     717    for (size_t i = 0; i < numKeyframes; ++i) {
     718        const KeyframeValue& currentKeyframe = m_blendingKeyframes[i];
     719        if (currentKeyframe.style()->transform().operations().size()) {
     720            firstNonEmptyTransformKeyframeIndex = i;
     721            break;
     722        }
     723    }
     724
     725    if (firstNonEmptyTransformKeyframeIndex == numKeyframes)
     726        return;
     727
     728    const TransformOperations* firstVal = &m_blendingKeyframes[firstNonEmptyTransformKeyframeIndex].style()->transform();
     729    for (size_t i = firstNonEmptyTransformKeyframeIndex + 1; i < numKeyframes; ++i) {
     730        const KeyframeValue& currentKeyframe = m_blendingKeyframes[i];
     731        const TransformOperations* val = &currentKeyframe.style()->transform();
     732
     733        // An empty transform list matches anything.
     734        if (val->operations().isEmpty())
     735            continue;
     736
     737        if (!firstVal->operationsMatch(*val))
     738            return;
     739    }
     740
     741    m_transformFunctionListsMatch = true;
     742}
     743
     744void KeyframeEffectReadOnly::checkForMatchingFilterFunctionLists()
     745{
     746    m_filterFunctionListsMatch = false;
     747
     748    if (m_blendingKeyframes.size() < 2 || !m_blendingKeyframes.containsProperty(CSSPropertyFilter))
     749        return;
     750
     751    // Empty filters match anything, so find the first non-empty entry as the reference.
     752    size_t numKeyframes = m_blendingKeyframes.size();
     753    size_t firstNonEmptyFilterKeyframeIndex = numKeyframes;
     754
     755    for (size_t i = 0; i < numKeyframes; ++i) {
     756        if (m_blendingKeyframes[i].style()->filter().operations().size()) {
     757            firstNonEmptyFilterKeyframeIndex = i;
     758            break;
     759        }
     760    }
     761
     762    if (firstNonEmptyFilterKeyframeIndex == numKeyframes)
     763        return;
     764
     765    auto& firstVal = m_blendingKeyframes[firstNonEmptyFilterKeyframeIndex].style()->filter();
     766    for (size_t i = firstNonEmptyFilterKeyframeIndex + 1; i < numKeyframes; ++i) {
     767        auto& value = m_blendingKeyframes[i].style()->filter();
     768
     769        // An empty filter list matches anything.
     770        if (value.operations().isEmpty())
     771            continue;
     772
     773        if (!firstVal.operationsMatch(value))
     774            return;
     775    }
     776
     777    m_filterFunctionListsMatch = true;
     778}
     779
     780#if ENABLE(FILTERS_LEVEL_2)
     781void KeyframeEffectReadOnly::checkForMatchingBackdropFilterFunctionLists()
     782{
     783    m_backdropFilterFunctionListsMatch = false;
     784
     785    if (m_blendingKeyframes.size() < 2 || !m_blendingKeyframes.containsProperty(CSSPropertyWebkitBackdropFilter))
     786        return;
     787
     788    // Empty filters match anything, so find the first non-empty entry as the reference.
     789    size_t numKeyframes = m_blendingKeyframes.size();
     790    size_t firstNonEmptyFilterKeyframeIndex = numKeyframes;
     791
     792    for (size_t i = 0; i < numKeyframes; ++i) {
     793        if (m_blendingKeyframes[i].style()->backdropFilter().operations().size()) {
     794            firstNonEmptyFilterKeyframeIndex = i;
     795            break;
     796        }
     797    }
     798
     799    if (firstNonEmptyFilterKeyframeIndex == numKeyframes)
     800        return;
     801
     802    auto& firstVal = m_blendingKeyframes[firstNonEmptyFilterKeyframeIndex].style()->backdropFilter();
     803    for (size_t i = firstNonEmptyFilterKeyframeIndex + 1; i < numKeyframes; ++i) {
     804        auto& value = m_blendingKeyframes[i].style()->backdropFilter();
     805
     806        // An empty filter list matches anything.
     807        if (value.operations().isEmpty())
     808            continue;
     809
     810        if (!firstVal.operationsMatch(value))
     811            return;
     812    }
     813
     814    m_backdropFilterFunctionListsMatch = true;
     815}
     816#endif
    694817
    695818void KeyframeEffectReadOnly::computeCSSAnimationBlendingKeyframes()
     
    715838    }
    716839
    717     m_blendingKeyframes = WTFMove(keyframeList);
    718 
    719     computeStackingContextImpact();
     840    setBlendingKeyframes(keyframeList);
    720841}
    721842
     
    744865    keyframeList.insert(WTFMove(toKeyframeValue));
    745866
    746     m_blendingKeyframes = WTFMove(keyframeList);
    747 
    748     computeStackingContextImpact();
     867    setBlendingKeyframes(keyframeList);
    749868}
    750869
  • trunk/Source/WebCore/animation/KeyframeEffectReadOnly.h

    r230043 r230068  
    105105    const RenderStyle& currentStyle() const override;
    106106    bool isAccelerated() const override { return false; }
    107     bool filterFunctionListsMatch() const override { return false; }
    108     bool transformFunctionListsMatch() const override { return false; }
     107    bool filterFunctionListsMatch() const override { return m_filterFunctionListsMatch; }
     108    bool transformFunctionListsMatch() const override { return m_transformFunctionListsMatch; }
    109109#if ENABLE(FILTERS_LEVEL_2)
    110     bool backdropFilterFunctionListsMatch() const override { return false; }
     110    bool backdropFilterFunctionListsMatch() const override { return m_backdropFilterFunctionListsMatch; }
    111111#endif
    112112
     
    131131    void updateBlendingKeyframes();
    132132    bool shouldRunAccelerated();
     133    void setBlendingKeyframes(KeyframeList&);
     134    void checkForMatchingTransformFunctionLists();
     135    void checkForMatchingFilterFunctionLists();
     136#if ENABLE(FILTERS_LEVEL_2)
     137    void checkForMatchingBackdropFilterFunctionLists();
     138#endif
    133139
    134140    bool m_triggersStackingContext { false };
    135141    bool m_started { false };
    136142    bool m_startedAccelerated { false };
     143    bool m_transformFunctionListsMatch { false };
     144    bool m_filterFunctionListsMatch { false };
     145#if ENABLE(FILTERS_LEVEL_2)
     146    bool m_backdropFilterFunctionListsMatch { false };
     147#endif
    137148
    138149    RefPtr<Element> m_target;
  • trunk/Source/WebCore/page/FrameView.cpp

    r229209 r230068  
    8585#include "RenderView.h"
    8686#include "RenderWidget.h"
     87#include "RuntimeEnabledFeatures.h"
    8788#include "SVGDocument.h"
    8889#include "SVGSVGElement.h"
     
    591592    ASSERT(!m_slowRepaintObjects || m_slowRepaintObjects->isEmpty());
    592593
    593     ASSERT(!frame().animation().hasAnimations());
     594    if (!RuntimeEnabledFeatures::sharedFeatures().cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled())
     595        ASSERT(!frame().animation().hasAnimations());
    594596}
    595597
Note: See TracChangeset for help on using the changeset viewer.