Bug 210311

Summary: Store event region on non-composited frames
Product: WebKit Reporter: Daniel Bates <dbates>
Component: UI EventsAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: koivisto, simon.fraser, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Local Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=210278
https://bugs.webkit.org/show_bug.cgi?id=210041
https://bugs.webkit.org/show_bug.cgi?id=209888
https://bugs.webkit.org/show_bug.cgi?id=210216

Description Daniel Bates 2020-04-09 16:27:39 PDT
I pushed the current design of event region past its limit in bug #210041 and this revealed bug #210278: updating event region for non-composited frames requires that the non-composited had layed out beforehand. The current design has compositing layers track and update an event region. Bug #210041 amended this design to have non-composited frames ask its enclosing compositing layer to do an event region paint that dives into (i.e. RenderWidget::paint() no longer bails out) the child that scheduled it. This opens up a situation where a compositing layer could try to dive into a child frame's content that didn't ask for an event region update as part of updating the composting layer's event region. I worked around this in bug #210278 with an added needsLayout() check in RenderWidget::paint(). The purpose of this bug is to remove that workaround.
Comment 1 Radar WebKit Bug Importer 2020-04-09 16:27:51 PDT
<rdar://problem/61548751>
Comment 2 Daniel Bates 2020-04-09 16:48:00 PDT
Note that we cannot depend on checking RenderView::needsEventRegionUpdateForNonCompositedFrame() in RenderWidget::paint() since it could be have been set by a deep nested non-composited child frame and an intermediary child frame along the path may have had its layout dirtied. That is why we check needsLayout(). Eventually the needsEventRegionUpdateForNonCompositedFrame() bit will be serviced (and turned off) once all frames along the path to the originally requesting frame lay out.
Comment 3 Simon Fraser (smfr) 2020-04-10 10:28:15 PDT
Or figure out how to composite frames without a massive memory regression.