Title: [267274] branches/safari-610-branch
Revision
267274
Author
[email protected]
Date
2020-09-18 12:36:34 -0700 (Fri, 18 Sep 2020)

Log Message

Cherry-pick r266834. rdar://problem/69101124

    REGRESSION (r260360): Ionic modal dialog doesn't animate correctly when dragged and released
    https://bugs.webkit.org/show_bug.cgi?id=216308
    <rdar://problem/68567444>

    Reviewed by Simon Fraser.

    Source/WebCore:

    We fixed seeking for animations with a reversed playback rate in r261637, the fix for bug 204717,
    but only looked at the animation's playback rate. However, an animation can also play in reverse
    using the "direction" property of the timing object passed to updateTiming(), so we should also
    check that it's playing forwards in order to be seeked.

    Test: webanimations/accelerated-animation-easing-and-direction-update.html

    * platform/graphics/ca/GraphicsLayerCA.cpp:
    (WebCore::GraphicsLayerCA::animationCanBeAccelerated const):

    LayoutTests:

    Add a new test that updates the "easing" and "direction" timing properties of a playing animation
    and checks that it matches the display of another animation with similar timing properties from
    the start.

    * platform/win/TestExpectations:
    * webanimations/accelerated-animation-easing-and-direction-update-expected.html: Added.
    * webanimations/accelerated-animation-easing-and-direction-update.html: Added.

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266834 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Added Paths

Diff

Modified: branches/safari-610-branch/LayoutTests/ChangeLog (267273 => 267274)


--- branches/safari-610-branch/LayoutTests/ChangeLog	2020-09-18 19:36:31 UTC (rev 267273)
+++ branches/safari-610-branch/LayoutTests/ChangeLog	2020-09-18 19:36:34 UTC (rev 267274)
@@ -1,5 +1,55 @@
 2020-09-17  Alan Coon  <[email protected]>
 
+        Cherry-pick r266834. rdar://problem/69101124
+
+    REGRESSION (r260360): Ionic modal dialog doesn't animate correctly when dragged and released
+    https://bugs.webkit.org/show_bug.cgi?id=216308
+    <rdar://problem/68567444>
+    
+    Reviewed by Simon Fraser.
+    
+    Source/WebCore:
+    
+    We fixed seeking for animations with a reversed playback rate in r261637, the fix for bug 204717,
+    but only looked at the animation's playback rate. However, an animation can also play in reverse
+    using the "direction" property of the timing object passed to updateTiming(), so we should also
+    check that it's playing forwards in order to be seeked.
+    
+    Test: webanimations/accelerated-animation-easing-and-direction-update.html
+    
+    * platform/graphics/ca/GraphicsLayerCA.cpp:
+    (WebCore::GraphicsLayerCA::animationCanBeAccelerated const):
+    
+    LayoutTests:
+    
+    Add a new test that updates the "easing" and "direction" timing properties of a playing animation
+    and checks that it matches the display of another animation with similar timing properties from
+    the start.
+    
+    * platform/win/TestExpectations:
+    * webanimations/accelerated-animation-easing-and-direction-update-expected.html: Added.
+    * webanimations/accelerated-animation-easing-and-direction-update.html: Added.
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266834 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2020-09-10  Antoine Quint  <[email protected]>
+
+            REGRESSION (r260360): Ionic modal dialog doesn't animate correctly when dragged and released
+            https://bugs.webkit.org/show_bug.cgi?id=216308
+            <rdar://problem/68567444>
+
+            Reviewed by Simon Fraser.
+
+            Add a new test that updates the "easing" and "direction" timing properties of a playing animation
+            and checks that it matches the display of another animation with similar timing properties from
+            the start.
+
+            * platform/win/TestExpectations:
+            * webanimations/accelerated-animation-easing-and-direction-update-expected.html: Added.
+            * webanimations/accelerated-animation-easing-and-direction-update.html: Added.
+
+2020-09-17  Alan Coon  <[email protected]>
+
         Cherry-pick r266789. rdar://problem/69101080
 
     REGRESSION (r264856): updating easing on accelerated animation results in incorrect playback

Modified: branches/safari-610-branch/LayoutTests/platform/win/TestExpectations (267273 => 267274)


--- branches/safari-610-branch/LayoutTests/platform/win/TestExpectations	2020-09-18 19:36:31 UTC (rev 267273)
+++ branches/safari-610-branch/LayoutTests/platform/win/TestExpectations	2020-09-18 19:36:34 UTC (rev 267274)
@@ -4555,3 +4555,4 @@
 webkit.org/b/215930 webanimations/accelerated-css-transition-with-easing-y-axis-above-1.html [ Skip ]
 webkit.org/b/216313 webanimations/accelerated-animation-easing-update-after-pause.html [ Skip ]
 webkit.org/b/216313 webanimations/accelerated-animation-easing-update-steps-after-pause.html [ Skip ]
+webkit.org/b/216367 webanimations/accelerated-animation-easing-and-direction-update.html [ Skip ]

Added: branches/safari-610-branch/LayoutTests/webanimations/accelerated-animation-easing-and-direction-update-expected.html (0 => 267274)


--- branches/safari-610-branch/LayoutTests/webanimations/accelerated-animation-easing-and-direction-update-expected.html	                        (rev 0)
+++ branches/safari-610-branch/LayoutTests/webanimations/accelerated-animation-easing-and-direction-update-expected.html	2020-09-18 19:36:34 UTC (rev 267274)
@@ -0,0 +1 @@
+<body style="background-color: green"></body>
\ No newline at end of file

Added: branches/safari-610-branch/LayoutTests/webanimations/accelerated-animation-easing-and-direction-update.html (0 => 267274)


--- branches/safari-610-branch/LayoutTests/webanimations/accelerated-animation-easing-and-direction-update.html	                        (rev 0)
+++ branches/safari-610-branch/LayoutTests/webanimations/accelerated-animation-easing-and-direction-update.html	2020-09-18 19:36:34 UTC (rev 267274)
@@ -0,0 +1,59 @@
+<style>
+
+body {
+    background-color: green;
+}
+
+div {
+    position: absolute;
+    top: 0;
+    height: 100px;
+}
+
+#test {
+    left: 0;
+    width: 100px;
+    background-color: red;
+}
+
+#reference {
+    left: -1px;
+    width: 102px;
+    background-color: green;
+}
+
+</style>
+
+<div id="test"></div>
+<div id="reference"></div>
+
+<script src=""
+<script>
+
+(async () => {
+    if (window.testRunner)
+        testRunner.waitUntilDone();
+
+    const keyframes = { "transform": "translateX(600px)" };
+    const easing = "cubic-bezier(1,0,1,0)";
+    const duration = 10000;
+
+    // Create two animations, a test which will change easing and direction during playback and a reference
+    // which will use the test animation's changed playback throughout its entire duration. The two animations
+    // should be in sync and the animated elements overlap, ensuring no red is visible after the update.
+    const test = document.getElementById("test").animate(keyframes, { easing: "linear", duration });
+    document.getElementById("reference").animate(keyframes, { easing, duration }).reverse();
+
+    // Wait for the animations to be ready and to have updated once before the easing and the direction on the
+    // test animation to match the reference animation.
+    await Promise.all(document.getAnimations().map(animation => animation.ready));
+    await UIHelper.renderingUpdate();
+    test.effect.updateTiming({ easing, direction: "reverse" });
+
+    // Wait another frame and compare the rendering.
+    await UIHelper.renderingUpdate();
+    if (window.testRunner)
+        testRunner.notifyDone();
+})();
+
+</script>

Modified: branches/safari-610-branch/Source/WebCore/ChangeLog (267273 => 267274)


--- branches/safari-610-branch/Source/WebCore/ChangeLog	2020-09-18 19:36:31 UTC (rev 267273)
+++ branches/safari-610-branch/Source/WebCore/ChangeLog	2020-09-18 19:36:34 UTC (rev 267274)
@@ -1,5 +1,57 @@
 2020-09-17  Alan Coon  <[email protected]>
 
+        Cherry-pick r266834. rdar://problem/69101124
+
+    REGRESSION (r260360): Ionic modal dialog doesn't animate correctly when dragged and released
+    https://bugs.webkit.org/show_bug.cgi?id=216308
+    <rdar://problem/68567444>
+    
+    Reviewed by Simon Fraser.
+    
+    Source/WebCore:
+    
+    We fixed seeking for animations with a reversed playback rate in r261637, the fix for bug 204717,
+    but only looked at the animation's playback rate. However, an animation can also play in reverse
+    using the "direction" property of the timing object passed to updateTiming(), so we should also
+    check that it's playing forwards in order to be seeked.
+    
+    Test: webanimations/accelerated-animation-easing-and-direction-update.html
+    
+    * platform/graphics/ca/GraphicsLayerCA.cpp:
+    (WebCore::GraphicsLayerCA::animationCanBeAccelerated const):
+    
+    LayoutTests:
+    
+    Add a new test that updates the "easing" and "direction" timing properties of a playing animation
+    and checks that it matches the display of another animation with similar timing properties from
+    the start.
+    
+    * platform/win/TestExpectations:
+    * webanimations/accelerated-animation-easing-and-direction-update-expected.html: Added.
+    * webanimations/accelerated-animation-easing-and-direction-update.html: Added.
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266834 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2020-09-10  Antoine Quint  <[email protected]>
+
+            REGRESSION (r260360): Ionic modal dialog doesn't animate correctly when dragged and released
+            https://bugs.webkit.org/show_bug.cgi?id=216308
+            <rdar://problem/68567444>
+
+            Reviewed by Simon Fraser.
+
+            We fixed seeking for animations with a reversed playback rate in r261637, the fix for bug 204717,
+            but only looked at the animation's playback rate. However, an animation can also play in reverse
+            using the "direction" property of the timing object passed to updateTiming(), so we should also
+            check that it's playing forwards in order to be seeked.
+
+            Test: webanimations/accelerated-animation-easing-and-direction-update.html
+
+            * platform/graphics/ca/GraphicsLayerCA.cpp:
+            (WebCore::GraphicsLayerCA::animationCanBeAccelerated const):
+
+2020-09-17  Alan Coon  <[email protected]>
+
         Cherry-pick r266789. rdar://problem/69101080
 
     REGRESSION (r264856): updating easing on accelerated animation results in incorrect playback

Modified: branches/safari-610-branch/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (267273 => 267274)


--- branches/safari-610-branch/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp	2020-09-18 19:36:31 UTC (rev 267273)
+++ branches/safari-610-branch/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp	2020-09-18 19:36:34 UTC (rev 267274)
@@ -1033,7 +1033,7 @@
 
 bool GraphicsLayerCA::animationCanBeAccelerated(const KeyframeValueList& valueList, const Animation* anim) const
 {
-    if (anim->playbackRate() != 1)
+    if (anim->playbackRate() != 1 || !anim->directionIsForwards())
         return false;
 
     if (!anim || anim->isEmptyOrZeroDuration() || valueList.size() < 2)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to