⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 259821 in webkit


Ignore:
Timestamp:
Apr 9, 2020, 1:38:45 PM (6 years ago)
Author:
dbates@webkit.org
Message:

[ macOS debug wk2 ] REGRESSION(r259762): ASSERTION FAILED: !needsLayout() on fast/events/scroll-subframe-in-rendering-update.html
https://bugs.webkit.org/show_bug.cgi?id=210278
<rdar://problem/61517389>

Reviewed by Darin Adler.

Only EventRegion paint the contents of the widget if the widget is a frame view that
does not need layout because layout must come before painting. Otherwise, an assertion
failure will occur.

  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::paint):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r259820 r259821  
     12020-04-09  Daniel Bates  <dabates@apple.com>
     2
     3        [ macOS debug wk2 ] REGRESSION(r259762): 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 Darin Adler.
     8
     9        Only EventRegion paint the contents of the widget if the widget is a frame view that
     10        does not need layout because layout must come before painting. Otherwise, an assertion
     11        failure will occur.
     12
     13        * rendering/RenderWidget.cpp:
     14        (WebCore::RenderWidget::paint):
     15
    1162020-04-09  Simon Fraser  <simon.fraser@apple.com>
    217
  • trunk/Source/WebCore/rendering/RenderWidget.cpp

    r259761 r259821  
    293293        paintOutline(paintInfo, LayoutRect(adjustedPaintOffset, size()));
    294294
    295     if (paintInfo.phase != PaintPhase::Foreground && (paintInfo.phase != PaintPhase::EventRegion || view().needsLayout()))
     295    bool needsEventRegionContentPaint = paintInfo.phase == PaintPhase::EventRegion && is<FrameView>(m_widget) && !downcast<FrameView>(*m_widget).needsLayout();
     296    if (paintInfo.phase != PaintPhase::Foreground && !needsEventRegionContentPaint)
    296297        return;
    297298
Note: See TracChangeset for help on using the changeset viewer.