Changeset 259839 in webkit
- Timestamp:
- Apr 9, 2020, 4:45:40 PM (6 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
-
ChangeLog (modified) (1 diff)
-
rendering/RenderWidget.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r259833 r259839 1 2020-04-09 Daniel Bates <dabates@apple.com> 2 3 [ macOS debug wk2 ] REGRESSION(r259761): ASSERTION FAILED: !needsLayout() on fast/events/scroll-subframe-in-rendering-update.html 4 https://bugs.webkit.org/show_bug.cgi?id=210278 5 <rdar://problem/61517389> 6 7 Reviewed by Simon Fraser. 8 9 Add a comment to clarify that the needsLayout() check during EventRegion painting in 10 RenderWidget::paint() is a workaround for <https://bugs.webkit.org/show_bug.cgi?id=210278>: 11 it is needed because event regions are only stored on compositing layers. Following r259761 12 a non-composited frames can request their enclosing compositing layer to update the event 13 region on their behalf. Outside of this special request (tracked via RenderView::needsEventRegionUpdateForNonCompositedFrame()) 14 we want to do what the code did pre-r259761 and bail out in RenderWidget::paint() when 15 asked to perform an event region paint. We cannot depend on RenderView::needsEventRegionUpdateForNonCompositedFrame() 16 though since it could be have been set by a deep nested non-composited child frame and 17 an intermediary child frame along the path may have had its layout dirtied. That is why 18 we check needsLayout(). Eventually the needsEventRegionUpdateForNonCompositedFrame() bit 19 will be serviced (and turned off) once all frames along the path to the originally requesting 20 frame lay out. 21 22 * rendering/RenderWidget.cpp: 23 (WebCore::RenderWidget::paint): 24 1 25 2020-04-09 David Kilzer <ddkilzer@apple.com> 2 26 -
trunk/Source/WebCore/rendering/RenderWidget.cpp
r259821 r259839 293 293 paintOutline(paintInfo, LayoutRect(adjustedPaintOffset, size())); 294 294 295 // FIXME: Shouldn't check if the frame view needs layout during event region painting. This is a workaround 296 // for the fact that non-composited frames depend on their enclosing compositing layer to perform an event 297 // region update on their behalf. See <https://webkit.org/b/210311> for more details. 295 298 bool needsEventRegionContentPaint = paintInfo.phase == PaintPhase::EventRegion && is<FrameView>(m_widget) && !downcast<FrameView>(*m_widget).needsLayout(); 296 299 if (paintInfo.phase != PaintPhase::Foreground && !needsEventRegionContentPaint)
Note:
See TracChangeset
for help on using the changeset viewer.