Changeset 260858 in webkit


Ignore:
Timestamp:
Apr 28, 2020 5:12:28 PM (4 years ago)
Author:
Simon Fraser
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.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r260851 r260858  
     12020-04-28  Simon Fraser  <simon.fraser@apple.com>
     2
     3        REGRESSION (r260808): Backdrops on music.apple.com are offset
     4        https://bugs.webkit.org/show_bug.cgi?id=211153
     5
     6        Reviewed by Zalan Bujtas.
     7
     8        * compositing/filters/backdrop-filter-rect-border-radius-expected.html: Added.
     9        * compositing/filters/backdrop-filter-rect-border-radius.html: Added.
     10
    1112020-04-28  Noam Rosenthal  <noam@webkit.org>
    212
  • trunk/Source/WebCore/ChangeLog

    r260855 r260858  
     12020-04-28  Simon Fraser  <simon.fraser@apple.com>
     2
     3        REGRESSION (r260808): Backdrops on music.apple.com are offset
     4        https://bugs.webkit.org/show_bug.cgi?id=211153
     5        <rdar://problem/62543158>
     6
     7        Reviewed by Zalan Bujtas.
     8
     9        The border-radius code path failed to offset the rounded rect by contentOffsetInCompositingLayer().
     10
     11        Test: compositing/filters/backdrop-filter-rect-border-radius.html
     12
     13        * rendering/RenderLayerBacking.cpp:
     14        (WebCore::RenderLayerBacking::updateBackdropFiltersGeometry):
     15
    1162020-04-28  Daniel Bates  <dabates@apple.com>
    217
  • trunk/Source/WebCore/rendering/RenderLayerBacking.cpp

    r260808 r260858  
    638638
    639639    auto& renderBox = downcast<RenderBox>(this->renderer());
    640     LayoutRect boxRect = renderBox.borderBoxRect();
    641     if (renderBox.hasClip())
    642         boxRect.intersect(renderBox.clipRect(LayoutPoint(), nullptr));
    643     boxRect.move(contentOffsetInCompositingLayer());
    644640
    645641    FloatRoundedRect backdropFiltersRect;
    646     if (renderBox.style().hasBorderRadius() && !renderBox.hasClip())
    647         backdropFiltersRect = renderBox.roundedBorderBoxRect().pixelSnappedRoundedRectForPainting(deviceScaleFactor());
    648     else
     642    if (renderBox.style().hasBorderRadius() && !renderBox.hasClip()) {
     643        auto roundedBoxRect = renderBox.roundedBorderBoxRect();
     644        roundedBoxRect.move(contentOffsetInCompositingLayer());
     645        backdropFiltersRect = roundedBoxRect.pixelSnappedRoundedRectForPainting(deviceScaleFactor());
     646    } else {
     647        auto boxRect = renderBox.borderBoxRect();
     648        if (renderBox.hasClip())
     649            boxRect.intersect(renderBox.clipRect(LayoutPoint(), nullptr));
     650        boxRect.move(contentOffsetInCompositingLayer());
    649651        backdropFiltersRect = FloatRoundedRect(snapRectToDevicePixels(boxRect, deviceScaleFactor()));
     652    }
    650653
    651654    m_graphicsLayer->setBackdropFiltersRect(backdropFiltersRect);
Note: See TracChangeset for help on using the changeset viewer.