Bug 210311 - Store event region on non-composited frames
Summary: Store event region on non-composited frames
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: UI Events (show other bugs)
Version: WebKit Local Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2020-04-09 16:27 PDT by Daniel Bates
Modified: 2020-04-25 21:03 PDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.