Title: [260858] trunk
- Revision
- 260858
- Author
- [email protected]
- Date
- 2020-04-28 17:12:28 -0700 (Tue, 28 Apr 2020)
Log Message
REGRESSION (r260808): Backdrops on music.apple.com are offset
https://bugs.webkit.org/show_bug.cgi?id=211153
Source/WebCore:
<rdar://problem/62543158>
Reviewed by Zalan Bujtas.
The border-radius code path failed to offset the rounded rect by contentOffsetInCompositingLayer().
Test: compositing/filters/backdrop-filter-rect-border-radius.html
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateBackdropFiltersGeometry):
LayoutTests:
Reviewed by Zalan Bujtas.
* compositing/filters/backdrop-filter-rect-border-radius-expected.html: Added.
* compositing/filters/backdrop-filter-rect-border-radius.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (260857 => 260858)
--- trunk/LayoutTests/ChangeLog 2020-04-29 00:05:58 UTC (rev 260857)
+++ trunk/LayoutTests/ChangeLog 2020-04-29 00:12:28 UTC (rev 260858)
@@ -1,3 +1,13 @@
+2020-04-28 Simon Fraser <[email protected]>
+
+ REGRESSION (r260808): Backdrops on music.apple.com are offset
+ https://bugs.webkit.org/show_bug.cgi?id=211153
+
+ Reviewed by Zalan Bujtas.
+
+ * compositing/filters/backdrop-filter-rect-border-radius-expected.html: Added.
+ * compositing/filters/backdrop-filter-rect-border-radius.html: Added.
+
2020-04-28 Noam Rosenthal <[email protected]>
Implement FCP (first contentful paint)
Added: trunk/LayoutTests/compositing/filters/backdrop-filter-rect-border-radius-expected.html (0 => 260858)
--- trunk/LayoutTests/compositing/filters/backdrop-filter-rect-border-radius-expected.html (rev 0)
+++ trunk/LayoutTests/compositing/filters/backdrop-filter-rect-border-radius-expected.html 2020-04-29 00:12:28 UTC (rev 260858)
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+ img {
+ background-color: green;
+ height: 500px;
+ width: 500px;
+ }
+
+ .backdrop {
+ position: absolute;
+ height: 200px;
+ width: 200px;
+ left: 140px;
+ top: 140px;
+ border-radius: 5px;
+ background-color: rgba(0, 0, 0, 0.2);
+ -webkit-backdrop-filter: saturate(0);
+ }
+
+ .extender {
+ position: absolute;
+ height: 20px;
+ width: 20px;
+ top: 40px;
+ left: 40px;
+ background-color: blue;
+ }
+}
+</style>
+</head>
+<body>
+ <img>
+ <div class="extender"></div>
+ <div class="backdrop"></div>
+</body>
+</html>
Added: trunk/LayoutTests/compositing/filters/backdrop-filter-rect-border-radius.html (0 => 260858)
--- trunk/LayoutTests/compositing/filters/backdrop-filter-rect-border-radius.html (rev 0)
+++ trunk/LayoutTests/compositing/filters/backdrop-filter-rect-border-radius.html 2020-04-29 00:12:28 UTC (rev 260858)
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+ img {
+ background-color: green;
+ height: 500px;
+ width: 500px;
+ }
+
+ .backdrop {
+ position: absolute;
+ height: 200px;
+ width: 200px;
+ left: 140px;
+ top: 140px;
+ border-radius: 5px;
+ background-color: rgba(0, 0, 0, 0.2);
+ -webkit-backdrop-filter: saturate(0);
+ }
+
+ .extender {
+ position: absolute;
+ height: 20px;
+ width: 20px;
+ top: -100px;
+ left: -100px;
+ background-color: blue;
+ }
+}
+</style>
+</head>
+<body>
+ <img>
+ <div class="backdrop">
+ <div class="extender"></div>
+ </div>
+</body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (260857 => 260858)
--- trunk/Source/WebCore/ChangeLog 2020-04-29 00:05:58 UTC (rev 260857)
+++ trunk/Source/WebCore/ChangeLog 2020-04-29 00:12:28 UTC (rev 260858)
@@ -1,3 +1,18 @@
+2020-04-28 Simon Fraser <[email protected]>
+
+ REGRESSION (r260808): Backdrops on music.apple.com are offset
+ https://bugs.webkit.org/show_bug.cgi?id=211153
+ <rdar://problem/62543158>
+
+ Reviewed by Zalan Bujtas.
+
+ The border-radius code path failed to offset the rounded rect by contentOffsetInCompositingLayer().
+
+ Test: compositing/filters/backdrop-filter-rect-border-radius.html
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateBackdropFiltersGeometry):
+
2020-04-28 Daniel Bates <[email protected]>
Modernize EndPointsAdjustmentMode enumeration and fix misspelled enumerator
Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (260857 => 260858)
--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2020-04-29 00:05:58 UTC (rev 260857)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2020-04-29 00:12:28 UTC (rev 260858)
@@ -637,16 +637,19 @@
return;
auto& renderBox = downcast<RenderBox>(this->renderer());
- LayoutRect boxRect = renderBox.borderBoxRect();
- if (renderBox.hasClip())
- boxRect.intersect(renderBox.clipRect(LayoutPoint(), nullptr));
- boxRect.move(contentOffsetInCompositingLayer());
FloatRoundedRect backdropFiltersRect;
- if (renderBox.style().hasBorderRadius() && !renderBox.hasClip())
- backdropFiltersRect = renderBox.roundedBorderBoxRect().pixelSnappedRoundedRectForPainting(deviceScaleFactor());
- else
+ if (renderBox.style().hasBorderRadius() && !renderBox.hasClip()) {
+ auto roundedBoxRect = renderBox.roundedBorderBoxRect();
+ roundedBoxRect.move(contentOffsetInCompositingLayer());
+ backdropFiltersRect = roundedBoxRect.pixelSnappedRoundedRectForPainting(deviceScaleFactor());
+ } else {
+ auto boxRect = renderBox.borderBoxRect();
+ if (renderBox.hasClip())
+ boxRect.intersect(renderBox.clipRect(LayoutPoint(), nullptr));
+ boxRect.move(contentOffsetInCompositingLayer());
backdropFiltersRect = FloatRoundedRect(snapRectToDevicePixels(boxRect, deviceScaleFactor()));
+ }
m_graphicsLayer->setBackdropFiltersRect(backdropFiltersRect);
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes