WebKit Bugzilla
Attachment 343496 Details for
Bug 186981
: REGRESSION: hardware-accelerated animation fails on inline element
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-186981-20180625145348.patch (text/plain), 12.27 KB, created by
Antoine Quint
on 2018-06-25 05:53:50 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Antoine Quint
Created:
2018-06-25 05:53:50 PDT
Size:
12.27 KB
patch
obsolete
>Subversion Revision: 233141 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 1060d74744f1f48da3e2756f7262e74b7dacb7eb..f174361b806d479e02e4d4478ddae72bd43c2ca7 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,19 @@ >+2018-06-25 Antoine Quint <graouts@apple.com> >+ >+ REGRESSION: hardware-accelerated animation fails on inline element >+ https://bugs.webkit.org/show_bug.cgi?id=186981 >+ <rdar://problem/41418697> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Ensure we only queue accelerated actions when we have a renderer so we don't attempt >+ to start an accelerated animation too soon. >+ >+ Test: webanimations/opacity-animation-yields-compositing-span.html >+ >+ * animation/KeyframeEffectReadOnly.cpp: >+ (WebCore::KeyframeEffectReadOnly::updateAcceleratedAnimationState): >+ > 2018-06-25 Antoine Quint <graouts@apple.com> > > [Web Animations] Make imported/mozilla/css-animations/test_animation-pausing.html pass reliably >diff --git a/Source/WebCore/animation/KeyframeEffectReadOnly.cpp b/Source/WebCore/animation/KeyframeEffectReadOnly.cpp >index 96396956a9d007549bcb721c870720991eda31ad..caf57bcd20287941068f0e2e59bc2037889bb7ed 100644 >--- a/Source/WebCore/animation/KeyframeEffectReadOnly.cpp >+++ b/Source/WebCore/animation/KeyframeEffectReadOnly.cpp >@@ -1164,6 +1164,9 @@ void KeyframeEffectReadOnly::updateAcceleratedAnimationState() > if (!m_shouldRunAccelerated) > return; > >+ if (!renderer()) >+ return; >+ > auto localTime = animation()->currentTime(); > > // If we don't have a localTime or localTime < 0, we either don't have a start time or we're before the startTime >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 9d67f5c3f7366efc2084b74d4f421086966c220a..3cf2ccca88a2c73e924b67cfba90f028767dca11 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,18 @@ >+2018-06-25 Antoine Quint <graouts@apple.com> >+ >+ REGRESSION: hardware-accelerated animation fails on inline element >+ https://bugs.webkit.org/show_bug.cgi?id=186981 >+ <rdar://problem/41418697> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: >+ * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: >+ * webanimations/opacity-animation-yields-compositing-expected.txt: >+ * webanimations/opacity-animation-yields-compositing-span-expected.txt: >+ * webanimations/opacity-animation-yields-compositing-span.html: Added. >+ * webanimations/opacity-animation-yields-compositing.html: >+ > 2018-06-25 Antoine Quint <graouts@apple.com> > > [Web Animations] Make imported/mozilla/css-animations/test_animation-pausing.html pass reliably >diff --git a/LayoutTests/platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt b/LayoutTests/platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt >index 0239cb6947840d0bc1ac5608ae406fec7a1a3601..6b3ff754cae3ff6169edd448c4cc2b38876a1173 100644 >--- a/LayoutTests/platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt >+++ b/LayoutTests/platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt >@@ -140,7 +140,7 @@ PASS filter: drop-shadow function > 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.30000000000000004) contrast(0.30000000000000004) grayscale(0.30000000000000004) invert(0.30000000000000004) opacity(0.30000000000000004) saturate(0.30000000000000004) sepia(0.30000000000000004)" > 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.30000000000000004) contrast(0.30000000000000004) grayscale(0.30000000000000004) invert(0.30000000000000004) opacity(0.30000000000000004) saturate(0.30000000000000004) sepia(0.30000000000000004)" > FAIL 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)" >-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.25) grayscale(0.75) invert(0.75) sepia(0.75) blur(7.5px)" >+PASS filter: interpolate different length of filter-function-list with function which lacuna value is 0 > FAIL 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)" > PASS filter: interpolate from none > 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(4.989999771118164px) url(\"#f1\")" >diff --git a/LayoutTests/platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt b/LayoutTests/platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt >index 90af75fac59266365bcd7080524a794b437a509f..ebc8a581418167e54659c7dc16b2c5891ebd964d 100644 >--- a/LayoutTests/platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt >+++ b/LayoutTests/platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt >@@ -140,7 +140,7 @@ PASS filter: drop-shadow function > 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.30000000000000004) contrast(0.30000000000000004) grayscale(0.30000000000000004) invert(0.30000000000000004) opacity(0.30000000000000004) saturate(0.30000000000000004) sepia(0.30000000000000004)" > 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.30000000000000004) contrast(0.30000000000000004) grayscale(0.30000000000000004) invert(0.30000000000000004) opacity(0.30000000000000004) saturate(0.30000000000000004) sepia(0.30000000000000004)" > FAIL 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)" >-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.25) grayscale(0.75) invert(0.75) sepia(0.75) blur(7.5px)" >+PASS filter: interpolate different length of filter-function-list with function which lacuna value is 0 > FAIL 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)" > PASS filter: interpolate from none > 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(4.989999771118164px) url(\"#f1\")" >diff --git a/LayoutTests/webanimations/opacity-animation-yields-compositing-expected.txt b/LayoutTests/webanimations/opacity-animation-yields-compositing-expected.txt >index 2fc6d004725ce8204386fd90fb9beaadeb26b522..7d3397950dd4bf8d30891746f707ddd50c1017cf 100644 >--- a/LayoutTests/webanimations/opacity-animation-yields-compositing-expected.txt >+++ b/LayoutTests/webanimations/opacity-animation-yields-compositing-expected.txt >@@ -9,6 +9,7 @@ > (GraphicsLayer > (position 8.00 8.00) > (bounds 100.00 100.00) >+ (opacity 0.50) > (contentsOpaque 1) > ) > ) >diff --git a/LayoutTests/webanimations/opacity-animation-yields-compositing-span-expected.txt b/LayoutTests/webanimations/opacity-animation-yields-compositing-span-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..356027dab63288153ce55fe8a547054582467576 >--- /dev/null >+++ b/LayoutTests/webanimations/opacity-animation-yields-compositing-span-expected.txt >@@ -0,0 +1,19 @@ >+(GraphicsLayer >+ (anchor 0.00 0.00) >+ (bounds 800.00 600.00) >+ (children 1 >+ (GraphicsLayer >+ (bounds 800.00 600.00) >+ (contentsOpaque 1) >+ (children 1 >+ (GraphicsLayer >+ (position 8.00 8.00) >+ (bounds 25.00 18.00) >+ (opacity 0.50) >+ (drawsContent 1) >+ ) >+ ) >+ ) >+ ) >+) >+Foo >diff --git a/LayoutTests/webanimations/opacity-animation-yields-compositing-span.html b/LayoutTests/webanimations/opacity-animation-yields-compositing-span.html >new file mode 100644 >index 0000000000000000000000000000000000000000..cdd8f9e88ca9f24e1d75c78cd559d1ade157233f >--- /dev/null >+++ b/LayoutTests/webanimations/opacity-animation-yields-compositing-span.html >@@ -0,0 +1,16 @@ >+<pre id="results"></pre> >+<span id="target">Foo</span> >+<script> >+ >+testRunner.waitUntilDone(); >+testRunner.dumpAsText(); >+ >+document.getElementById("target").animate([ >+ { opacity: 0.5 }, >+ { opacity: 0 } >+], 1000 * 60).ready.then(() => { >+ document.getElementById("results").innerText = internals.layerTreeAsText(document); >+ testRunner.notifyDone(); >+}); >+ >+</script> >diff --git a/LayoutTests/webanimations/opacity-animation-yields-compositing.html b/LayoutTests/webanimations/opacity-animation-yields-compositing.html >index a0782ae2dc922e84c86a7a21e8bdfcfb4857ff82..0278af739d94bb3e0e65c84a0bc6294cbfdac87c 100644 >--- a/LayoutTests/webanimations/opacity-animation-yields-compositing.html >+++ b/LayoutTests/webanimations/opacity-animation-yields-compositing.html >@@ -2,12 +2,15 @@ > <div id="target" style="width: 100px; height: 100px; background-color: black;"></div> > <script> > >+testRunner.waitUntilDone(); >+testRunner.dumpAsText(); >+ > document.getElementById("target").animate([ >- { opacity: 1 }, >+ { opacity: 0.5 }, > { opacity: 0 } >-], 1000); >- >-testRunner.dumpAsText(); >-document.getElementById("results").innerText = internals.layerTreeAsText(document); >+], 1000 * 60).ready.then(() => { >+ document.getElementById("results").innerText = internals.layerTreeAsText(document); >+ testRunner.notifyDone(); >+}); > > </script>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
dino
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 186981
:
343469
| 343496