Changeset 261979 in webkit
- Timestamp:
- May 20, 2020, 6:44:12 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r261976 r261979 1 2020-05-20 Zalan Bujtas <zalan@apple.com> 2 3 Repaint issues when the login field collapses on music.apple.com 4 https://bugs.webkit.org/show_bug.cgi?id=212101 5 <rdar://problem/62874369> 6 7 Reviewed by Simon Fraser. 8 9 * fast/repaint/iframe-on-subpixel-position-expected.txt: Added. 10 * fast/repaint/iframe-on-subpixel-position.html: Added. 11 1 12 2020-05-20 Kenneth Russell <kbr@chromium.org> 2 13 -
trunk/Source/WebCore/ChangeLog
r261974 r261979 1 2020-05-20 Zalan Bujtas <zalan@apple.com> 2 3 Repaint issues when the login field collapses on music.apple.com 4 https://bugs.webkit.org/show_bug.cgi?id=212101 5 <rdar://problem/62874369> 6 7 Reviewed by Simon Fraser. 8 9 RenderWidgets (e.g iframe) are painted on integral pixel boundaries. When we issue the repaints on such renderers, we need to 10 make sure that the repaint rectangles are also snapped to integral pixel values. 11 Currently trunk only covers the case when the renderer itself is positioned on a subpixel position (e.g when the containing block's content box has a non-integral position value). 12 This patch ensures that we repaint the RenderWidgets properly when a non-direct ancestor puts the renderer on a subpixel position. 13 14 Test: fast/repaint/iframe-on-subpixel-position.html 15 16 * page/FrameView.h: 17 * rendering/RenderBox.cpp: 18 (WebCore::RenderBox::computeVisibleRectInContainer const): 19 * rendering/RenderLayerBacking.cpp: 20 (WebCore::RenderLayerBacking::setContentsNeedDisplay): 21 (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect): 22 * rendering/RenderObject.h: 23 * testing/Internals.cpp: 24 (WebCore::Internals::enableSubframeRepaintTracking): add subframe repaint tracking 25 (WebCore::Internals::disableSubframeRepaintTracking): 26 * testing/Internals.h: 27 * testing/Internals.idl: 28 1 29 2020-05-20 Oriol Brufau <obrufau@igalia.com> 2 30 -
trunk/Source/WebCore/rendering/RenderBox.cpp
r261941 r261979 2278 2278 if (container->style().isFlippedBlocksWritingMode()) 2279 2279 flipForWritingMode(adjustedRect); 2280 if (context.descendantNeedsEnclosingIntRect) 2281 adjustedRect = enclosingIntRect(adjustedRect); 2280 2282 return adjustedRect; 2281 2283 } … … 2314 2316 adjustedRect.expand(locationOffset - flooredLocationOffset); 2315 2317 locationOffset = flooredLocationOffset; 2318 context.descendantNeedsEnclosingIntRect = true; 2316 2319 } 2317 2320 -
trunk/Source/WebCore/rendering/RenderObject.h
r261941 r261979 625 625 { 626 626 } 627 bool hasPositionFixedDescendant; 628 bool dirtyRectIsFlipped; 627 bool hasPositionFixedDescendant { false }; 628 bool dirtyRectIsFlipped { false }; 629 bool descendantNeedsEnclosingIntRect { false }; 629 630 OptionSet<VisibleRectContextOption> options; 630 631 };
Note:
See TracChangeset
for help on using the changeset viewer.