Title: [207723] trunk
- Revision
- 207723
- Author
- m...@apple.com
- Date
- 2016-10-22 19:49:41 -0700 (Sat, 22 Oct 2016)
Log Message
Dynamically-added backdrop filter to clip-path'd element with 3D transform renders incorrectly (without clip)
https://bugs.webkit.org/show_bug.cgi?id=163497
Reviewed by Simon Fraser.
Source/WebCore:
Test: css3/filters/backdrop/dynamic-with-clip-path.html
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::ensureStructuralLayer): Added MaskLayerChanged to
structuralLayerChangeFlags to ensure that the mask layer is updated.
LayoutTests:
Based on the test case from Tim Horton.
* css3/filters/backdrop/dynamic-with-clip-path-expected.html: Added.
* css3/filters/backdrop/dynamic-with-clip-path.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (207722 => 207723)
--- trunk/LayoutTests/ChangeLog 2016-10-23 02:43:48 UTC (rev 207722)
+++ trunk/LayoutTests/ChangeLog 2016-10-23 02:49:41 UTC (rev 207723)
@@ -1,3 +1,15 @@
+2016-10-22 Dan Bernstein <m...@apple.com>
+
+ Dynamically-added backdrop filter to clip-path'd element with 3D transform renders incorrectly (without clip)
+ https://bugs.webkit.org/show_bug.cgi?id=163497
+
+ Reviewed by Simon Fraser.
+
+ Based on the test case from Tim Horton.
+
+ * css3/filters/backdrop/dynamic-with-clip-path-expected.html: Added.
+ * css3/filters/backdrop/dynamic-with-clip-path.html: Added.
+
2016-10-22 Simon Fraser <simon.fra...@apple.com>
Backdrop filter doesn't show if removed then re-added
Added: trunk/LayoutTests/css3/filters/backdrop/dynamic-with-clip-path-expected.html (0 => 207723)
--- trunk/LayoutTests/css3/filters/backdrop/dynamic-with-clip-path-expected.html (rev 0)
+++ trunk/LayoutTests/css3/filters/backdrop/dynamic-with-clip-path-expected.html 2016-10-23 02:49:41 UTC (rev 207723)
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<style>
+ #box {
+ position: absolute;
+ width: 200px;
+ height: 200px;
+ background-color: green;
+ }
+ #filter {
+ position: absolute;
+ width: 200px;
+ height: 200px;
+ transform: translatez(0);
+ -webkit-clip-path: circle(25px at 225px);
+ -webkit-backdrop-filter: invert();
+ }
+</style>
+<div id="box"></div>
+<div id="filter"></div>
Added: trunk/LayoutTests/css3/filters/backdrop/dynamic-with-clip-path.html (0 => 207723)
--- trunk/LayoutTests/css3/filters/backdrop/dynamic-with-clip-path.html (rev 0)
+++ trunk/LayoutTests/css3/filters/backdrop/dynamic-with-clip-path.html 2016-10-23 02:49:41 UTC (rev 207723)
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<style>
+ #box {
+ position: absolute;
+ width: 200px;
+ height: 200px;
+ background-color: green;
+ }
+ #filter {
+ position: absolute;
+ width: 200px;
+ height: 200px;
+ transform: translatez(0);
+ -webkit-clip-path: circle(25px at 225px);
+ }
+ .backdrop {
+ -webkit-backdrop-filter: invert();
+ }
+</style>
+<div id="box"></div>
+<div id="filter"></div>
+<script>
+ if (window.testRunner)
+ testRunner.waitUntilDone();
+ setTimeout(function() {
+ document.getElementById("filter").classList.add("backdrop");
+ if (window.testRunner)
+ testRunner.notifyDone();
+ }, 0);
+</script>
Modified: trunk/Source/WebCore/ChangeLog (207722 => 207723)
--- trunk/Source/WebCore/ChangeLog 2016-10-23 02:43:48 UTC (rev 207722)
+++ trunk/Source/WebCore/ChangeLog 2016-10-23 02:49:41 UTC (rev 207723)
@@ -1,3 +1,16 @@
+2016-10-22 Dan Bernstein <m...@apple.com>
+
+ Dynamically-added backdrop filter to clip-path'd element with 3D transform renders incorrectly (without clip)
+ https://bugs.webkit.org/show_bug.cgi?id=163497
+
+ Reviewed by Simon Fraser.
+
+ Test: css3/filters/backdrop/dynamic-with-clip-path.html
+
+ * platform/graphics/ca/GraphicsLayerCA.cpp:
+ (WebCore::GraphicsLayerCA::ensureStructuralLayer): Added MaskLayerChanged to
+ structuralLayerChangeFlags to ensure that the mask layer is updated.
+
2016-10-22 Simon Fraser <simon.fra...@apple.com>
Backdrop filter doesn't show if removed then re-added
Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (207722 => 207723)
--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp 2016-10-23 02:43:48 UTC (rev 207722)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp 2016-10-23 02:49:41 UTC (rev 207723)
@@ -2071,6 +2071,7 @@
| BackfaceVisibilityChanged
| FiltersChanged
| BackdropFiltersChanged
+ | MaskLayerChanged
| OpacityChanged;
if (purpose == NoStructuralLayer) {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes