Title: [239174] trunk
Revision
239174
Author
bfulg...@apple.com
Date
2018-12-13 12:30:01 -0800 (Thu, 13 Dec 2018)

Log Message

Don't attempt to animate invalid CSS properties
https://bugs.webkit.org/show_bug.cgi?id=192630
<rdar://problem/46664433>

Reviewed by Antoine Quint.

Source/WebCore:

Inherited animation properties can cause child elements to think they need to animate CSS properties
that they do not support, leading to nullptr crashes.

Recognize that CSSPropertyInvalid is a potential requested animation property, and handle it
cleanly.

Tests: animations/invalid-property-animation.html

* page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::updateTransitions):
* svg/SVGAnimateElementBase.cpp:
(WebCore::SVGAnimateElementBase::calculateAnimatedValue):

LayoutTests:

* animations/invalid-property-animation-expected.txt: Added.
* animations/invalid-property-animation.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (239173 => 239174)


--- trunk/LayoutTests/ChangeLog	2018-12-13 19:56:44 UTC (rev 239173)
+++ trunk/LayoutTests/ChangeLog	2018-12-13 20:30:01 UTC (rev 239174)
@@ -1,3 +1,14 @@
+2018-12-13  Brent Fulgham  <bfulg...@apple.com>
+
+        Don't attempt to animate invalid CSS properties
+        https://bugs.webkit.org/show_bug.cgi?id=192630
+        <rdar://problem/46664433>
+
+        Reviewed by Antoine Quint.
+
+        * animations/invalid-property-animation-expected.txt: Added.
+        * animations/invalid-property-animation.html: Added.
+
 2018-12-13  Eric Carlson  <eric.carl...@apple.com>
 
         [MediaStream] Calculate width or height when constraints contain only the other

Added: trunk/LayoutTests/animations/invalid-property-animation-expected.txt (0 => 239174)


--- trunk/LayoutTests/animations/invalid-property-animation-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/animations/invalid-property-animation-expected.txt	2018-12-13 20:30:01 UTC (rev 239174)
@@ -0,0 +1,3 @@
+The test passes if it does not crash.
+
+

Added: trunk/LayoutTests/animations/invalid-property-animation.html (0 => 239174)


--- trunk/LayoutTests/animations/invalid-property-animation.html	                        (rev 0)
+++ trunk/LayoutTests/animations/invalid-property-animation.html	2018-12-13 20:30:01 UTC (rev 239174)
@@ -0,0 +1,19 @@
+<!DOCTYPE html> 
+<html>
+<head>
+<script>
+function runTest() {
+    if (window.testRunner) {
+        testRunner.dumpAsText(true);
+        internals.updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks();
+    }
+}
+</script>
+</head>
+<body _onload_="runTest()">
+    <p>The test passes if it does not crash.</p>
+    <button style="transition: width">
+        <embed style="transition-delay: inherit" src=""
+    </button>
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (239173 => 239174)


--- trunk/Source/WebCore/ChangeLog	2018-12-13 19:56:44 UTC (rev 239173)
+++ trunk/Source/WebCore/ChangeLog	2018-12-13 20:30:01 UTC (rev 239174)
@@ -1,3 +1,24 @@
+2018-12-13  Brent Fulgham  <bfulg...@apple.com>
+
+        Don't attempt to animate invalid CSS properties
+        https://bugs.webkit.org/show_bug.cgi?id=192630
+        <rdar://problem/46664433>
+
+        Reviewed by Antoine Quint.
+
+        Inherited animation properties can cause child elements to think they need to animate CSS properties
+        that they do not support, leading to nullptr crashes.
+
+        Recognize that CSSPropertyInvalid is a potential requested animation property, and handle it
+        cleanly.
+
+        Tests: animations/invalid-property-animation.html
+
+        * page/animation/CompositeAnimation.cpp:
+        (WebCore::CompositeAnimation::updateTransitions):
+        * svg/SVGAnimateElementBase.cpp:
+        (WebCore::SVGAnimateElementBase::calculateAnimatedValue):
+
 2018-12-13  Timothy Hatcher  <timo...@apple.com>
 
         REGRESSION (r230064): Focus rings on webpages are fainter than in native UI.

Modified: trunk/Source/WebCore/page/animation/CompositeAnimation.cpp (239173 => 239174)


--- trunk/Source/WebCore/page/animation/CompositeAnimation.cpp	2018-12-13 19:56:44 UTC (rev 239173)
+++ trunk/Source/WebCore/page/animation/CompositeAnimation.cpp	2018-12-13 20:30:01 UTC (rev 239174)
@@ -115,6 +115,12 @@
                         continue;
                 }
 
+                if (prop == CSSPropertyInvalid) {
+                    if (!all)
+                        break;
+                    continue;
+                }
+                
                 // ImplicitAnimations are always hashed by actual properties, never animateAll.
                 ASSERT(prop >= firstCSSProperty && prop < (firstCSSProperty + numCSSProperties));
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to