Title: [278376] trunk
- Revision
- 278376
- Author
- grao...@webkit.org
- Date
- 2021-06-02 14:51:18 -0700 (Wed, 02 Jun 2021)
Log Message
REGRESSION (r275227): Check boxes on V-Safe site flicker when selected
https://bugs.webkit.org/show_bug.cgi?id=226549
<rdar://problem/77722651>
Reviewed by Simon Fraser.
Source/WebCore:
When checking equality for StyleCachedImage, check whether the backing CSSImageValue is equal even if the pointer is different.
Test: webanimations/background-image-css-variable-no-transition.html
* rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::operator== const):
LayoutTests:
Check that a background-image set to a CSS variable doesn't yield a transition when another style property changes.
* webanimations/background-image-css-variable-no-transition-expected.txt: Added.
* webanimations/background-image-css-variable-no-transition.html: Added.
* webanimations/empty-keyframes-crash.html: motify this existing test which relie on the buggy behavior to trigger
a transition.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (278375 => 278376)
--- trunk/LayoutTests/ChangeLog 2021-06-02 21:47:22 UTC (rev 278375)
+++ trunk/LayoutTests/ChangeLog 2021-06-02 21:51:18 UTC (rev 278376)
@@ -1,3 +1,18 @@
+2021-06-02 Antoine Quint <grao...@webkit.org>
+
+ REGRESSION (r275227): Check boxes on V-Safe site flicker when selected
+ https://bugs.webkit.org/show_bug.cgi?id=226549
+ <rdar://problem/77722651>
+
+ Reviewed by Simon Fraser.
+
+ Check that a background-image set to a CSS variable doesn't yield a transition when another style property changes.
+
+ * webanimations/background-image-css-variable-no-transition-expected.txt: Added.
+ * webanimations/background-image-css-variable-no-transition.html: Added.
+ * webanimations/empty-keyframes-crash.html: motify this existing test which relie on the buggy behavior to trigger
+ a transition.
+
2021-06-02 Sam Weinig <wei...@apple.com>
Add support for "relative color syntax" for color()
Added: trunk/LayoutTests/webanimations/background-image-css-variable-no-transition-expected.txt (0 => 278376)
--- trunk/LayoutTests/webanimations/background-image-css-variable-no-transition-expected.txt (rev 0)
+++ trunk/LayoutTests/webanimations/background-image-css-variable-no-transition-expected.txt 2021-06-02 21:51:18 UTC (rev 278376)
@@ -0,0 +1,6 @@
+PASS numberOfAnimationsBeforeStyleChange is 0
+PASS numberOfAnimationsAfterStyleChange is 0
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/webanimations/background-image-css-variable-no-transition.html (0 => 278376)
--- trunk/LayoutTests/webanimations/background-image-css-variable-no-transition.html (rev 0)
+++ trunk/LayoutTests/webanimations/background-image-css-variable-no-transition.html 2021-06-02 21:51:18 UTC (rev 278376)
@@ -0,0 +1,39 @@
+<html>
+<head>
+<style>
+
+ :root {
+ --checkbox-icon: url("data:image/svg+xml,%3Csvg width='29' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M27.707.293a.997.997 0 0 0-1.414 0L9 17.586l-7.293-7.293a1 1 0 0 0-1.414 1.414l8 8a.997.997 0 0 0 1.414 0l18-18a.997.997 0 0 0 0-1.414z' fill='black'/%3E%3C/svg%3E");
+ }
+
+ .box {
+ position: absolute;
+ height: 100px;
+ width: 100px;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 90%;
+ background-image: var(--checkbox-icon);
+ transition: 2s linear;
+ }
+
+ body.changed .box {
+ visibility: visible;
+ }
+
+</style>
+<script src=""
+</head>
+<body>
+ <div class="box"></div>
+ <script>
+ const numberOfAnimationsBeforeStyleChange = document.getAnimations().length;
+ shouldBe("numberOfAnimationsBeforeStyleChange", "0");
+
+ document.body.classList.add('changed');
+
+ const numberOfAnimationsAfterStyleChange = document.getAnimations().length;
+ shouldBe("numberOfAnimationsAfterStyleChange", "0");
+ </script>
+</body>
+</html>
Modified: trunk/LayoutTests/webanimations/empty-keyframes-crash.html (278375 => 278376)
--- trunk/LayoutTests/webanimations/empty-keyframes-crash.html 2021-06-02 21:47:22 UTC (rev 278375)
+++ trunk/LayoutTests/webanimations/empty-keyframes-crash.html 2021-06-02 21:51:18 UTC (rev 278376)
@@ -4,8 +4,13 @@
<style>
#hr1 {
transition: 1s;
- background: url(data:image/gif;base64,);
+ background: black;
}
+
+#hr1.changed {
+ background: blue;
+}
+
</style>
<script>
@@ -15,6 +20,7 @@
function crash() {
var hr1 = document.getElementById("hr1");
var hr2 = document.getElementById("hr2");
+ hr1.classList.add("changed");
document.all[2].appendChild(hr2);
var animation = document.createElement("hr3").animate({ }, 1);
var hr1_animation_effect = hr1.getAnimations()[0].effect;
Modified: trunk/Source/WebCore/ChangeLog (278375 => 278376)
--- trunk/Source/WebCore/ChangeLog 2021-06-02 21:47:22 UTC (rev 278375)
+++ trunk/Source/WebCore/ChangeLog 2021-06-02 21:51:18 UTC (rev 278376)
@@ -1,3 +1,18 @@
+2021-06-02 Antoine Quint <grao...@webkit.org>
+
+ REGRESSION (r275227): Check boxes on V-Safe site flicker when selected
+ https://bugs.webkit.org/show_bug.cgi?id=226549
+ <rdar://problem/77722651>
+
+ Reviewed by Simon Fraser.
+
+ When checking equality for StyleCachedImage, check whether the backing CSSImageValue is equal even if the pointer is different.
+
+ Test: webanimations/background-image-css-variable-no-transition.html
+
+ * rendering/style/StyleCachedImage.cpp:
+ (WebCore::StyleCachedImage::operator== const):
+
2021-06-02 Jer Noble <jer.no...@apple.com>
REGRESSION(r276993): 5 TestWebKitAPI.AudioRoutingArbitration (api-tests) are constant failures
Modified: trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp (278375 => 278376)
--- trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp 2021-06-02 21:47:22 UTC (rev 278375)
+++ trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp 2021-06-02 21:51:18 UTC (rev 278376)
@@ -57,7 +57,7 @@
return true;
if (m_scaleFactor != otherCached.m_scaleFactor)
return false;
- if (m_cssValue.ptr() == otherCached.m_cssValue.ptr())
+ if (m_cssValue.ptr() == otherCached.m_cssValue.ptr() || m_cssValue->equals(otherCached.m_cssValue.get()))
return true;
if (m_cachedImage && m_cachedImage == otherCached.m_cachedImage)
return true;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes