Don't create wrap lists for positioned frames that don't have any children

RESOLVED FIXED in Firefox 67

Status

()

enhancement
RESOLVED FIXED
4 months ago
4 months ago

People

(Reporter: mattwoodrow, Assigned: mattwoodrow)

Tracking

(Blocks 1 bug)

Trunk
mozilla67
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox67 fixed)

Details

Attachments

(1 attachment)

Assignee

Description

4 months ago

We currently create a wrap list for positioned items, so that they get a single entry in the display list for sorting.

We used to skip this if there only was a single item (and owned by the same frame). We had to stop doing this for RDL, since partial builds can have different results to full builds, and we can't have containers appearing without an invalidation.

The current exception is when the positioned frame is also a stacking context, since we know that the item in that case is already a container, and can't change when doing a partial build.

I think we can also detect the case where the positioned frame doesn't have any children frame, and also skip the wrap list in this. If there are no children, then a partial build is the same as a full build (as far as the current frame is concerned), so we can skip the wrap list.

Assignee

Comment 1

4 months ago

This takes maze solver from 7.1 seconds to 5.4 seconds for me locally, with the default 30x30 maze.

Assignee

Updated

4 months ago
Blocks: 1204549

Comment 3

4 months ago
Pushed by mwoodrow@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/65294fe0c614
Don't create wrap lists for positioned frames that are leaves. r=miko
Assignee

Comment 5

4 months ago

Missed that one, and it exposes a rather large bug :(

If we remove the last child from a frame, then the frame itself isn't marked modified (and probably shouldn't be), but we can then change whether we have a wrap list or not.

Flags: needinfo?(matt.woodrow)

Comment 6

4 months ago
Pushed by mwoodrow@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ec0a441cb8f9
Don't create wrap lists for positioned frames that are leaves. r=miko

Comment 7

4 months ago
bugherder
Status: NEW → RESOLVED
Closed: 4 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla67
Depends on: 1533317
You need to log in before you can comment on or make changes to this bug.