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