Title: [191578] releases/WebKitGTK/webkit-2.10
- Revision
- 191578
- Author
- [email protected]
- Date
- 2015-10-26 02:26:41 -0700 (Mon, 26 Oct 2015)
Log Message
Merge r191540 - REGRESSION (r187121): Delayed instantaneous animations not honouring ' forwards' fill-mode
https://bugs.webkit.org/show_bug.cgi?id=150326
Reviewed by Darin Adler.
Source/WebCore:
With a zero-duration, delayed fill-forwards animation, we'd end up trying
to interpolate between the last and first keyframes, and picking the first
because AnimationBase::progress() had a special case for zero duration. Removing
this check fixes the bug.
Test: animations/fill-mode-forwards-zero-duration.html
* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::progress):
LayoutTests:
Test with a zero-duration, delayed fill-forwards animation.
* animations/fill-mode-forwards-zero-duration-expected.txt: Added.
* animations/fill-mode-forwards-zero-duration.html: Added.
Modified Paths
Added Paths
Diff
Modified: releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog (191577 => 191578)
--- releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog 2015-10-26 09:25:18 UTC (rev 191577)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog 2015-10-26 09:26:41 UTC (rev 191578)
@@ -1,3 +1,15 @@
+2015-10-24 Simon Fraser <[email protected]>
+
+ REGRESSION (r187121): Delayed instantaneous animations not honouring ' forwards' fill-mode
+ https://bugs.webkit.org/show_bug.cgi?id=150326
+
+ Reviewed by Darin Adler.
+
+ Test with a zero-duration, delayed fill-forwards animation.
+
+ * animations/fill-mode-forwards-zero-duration-expected.txt: Added.
+ * animations/fill-mode-forwards-zero-duration.html: Added.
+
2015-10-23 Michael Saboff <[email protected]>
REGRESSION (r179357-r179359): WebContent Crash using AOL Mail @ com.apple._javascript_Core JSC::linkPolymorphicCall(JSC::ExecState*, JSC::CallLinkInfo&, JSC::CallVariant, JSC::RegisterPreservationMode) + 1584
Added: releases/WebKitGTK/webkit-2.10/LayoutTests/animations/fill-mode-forwards-zero-duration-expected.txt (0 => 191578)
--- releases/WebKitGTK/webkit-2.10/LayoutTests/animations/fill-mode-forwards-zero-duration-expected.txt (rev 0)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/animations/fill-mode-forwards-zero-duration-expected.txt 2015-10-26 09:26:41 UTC (rev 191578)
@@ -0,0 +1,4 @@
+Fill-forwards state should be the last keyframe state, even with a zero-duration animation.
+
+PASS - "left" property for "box1" element at 1s saw something close to: 100
+
Added: releases/WebKitGTK/webkit-2.10/LayoutTests/animations/fill-mode-forwards-zero-duration.html (0 => 191578)
--- releases/WebKitGTK/webkit-2.10/LayoutTests/animations/fill-mode-forwards-zero-duration.html (rev 0)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/animations/fill-mode-forwards-zero-duration.html 2015-10-26 09:26:41 UTC (rev 191578)
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #box1 {
+ position: relative;
+ left: 10px;
+ top: 10px;
+ height: 100px;
+ width: 100px;
+ background-color: blue;
+ animation-fill-mode: forwards;
+ animation: anim1 0 2s linear;
+ }
+ @keyframes anim1 {
+ from { left: 400px; }
+ 25% { left: 0px; }
+ 51% { left: 250px; }
+ to { left: 100px; }
+ }
+ </style>
+ <script src=""
+ <script>
+
+ const expectedValues = [
+ // [animation-name, time, element-id, property, expected-value, tolerance]
+ ["anim1", 1, "box1", "left", 100, 2],
+ ];
+
+ runAnimationTest(expectedValues);
+ </script>
+</head>
+<body>
+<p>Fill-forwards state should be the last keyframe state, even with a zero-duration animation.</p>
+<div id="box1"></div>
+<div id="result"></div>
+</body>
+</html>
Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog (191577 => 191578)
--- releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog 2015-10-26 09:25:18 UTC (rev 191577)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog 2015-10-26 09:26:41 UTC (rev 191578)
@@ -1,3 +1,20 @@
+2015-10-24 Simon Fraser <[email protected]>
+
+ REGRESSION (r187121): Delayed instantaneous animations not honouring ' forwards' fill-mode
+ https://bugs.webkit.org/show_bug.cgi?id=150326
+
+ Reviewed by Darin Adler.
+
+ With a zero-duration, delayed fill-forwards animation, we'd end up trying
+ to interpolate between the last and first keyframes, and picking the first
+ because AnimationBase::progress() had a special case for zero duration. Removing
+ this check fixes the bug.
+
+ Test: animations/fill-mode-forwards-zero-duration.html
+
+ * page/animation/AnimationBase.cpp:
+ (WebCore::AnimationBase::progress):
+
2015-10-23 Simon Fraser <[email protected]>
Avoid SVG-induced layouts inside Element::absoluteEventBounds()
Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/page/animation/AnimationBase.cpp (191577 => 191578)
--- releases/WebKitGTK/webkit-2.10/Source/WebCore/page/animation/AnimationBase.cpp 2015-10-26 09:25:18 UTC (rev 191577)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/page/animation/AnimationBase.cpp 2015-10-26 09:26:41 UTC (rev 191578)
@@ -459,7 +459,7 @@
break;
}
}
-
+
void AnimationBase::fireAnimationEventsIfNeeded()
{
if (!m_compositeAnimation)
@@ -621,8 +621,8 @@
if (preActive())
return 0;
- if (postActive() || !m_animation->duration())
- return 1.0;
+ if (postActive())
+ return 1;
double elapsedTime = getElapsedTime();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes