Closed Bug 1933181 Opened 1 year ago Closed 1 month ago

Stop using nsView for popups.

Categories

(Core :: Layout, task)

task

Tracking

()

RESOLVED FIXED
146 Branch
Tracking Status
firefox146 --- fixed

People

(Reporter: emilio, Assigned: emilio)

References

(Blocks 2 open bugs)

Details

(Keywords: perf-alert)

Attachments

(1 file, 5 obsolete files)

No description provided.

Comment on attachment 9439692 [details]
Bug 1933181 - Stop using nsView for popups. r=#layout

WDYT about something like this? This seems to work great (only tested on Linux tho), and would be the first step to get rid of views.

Attachment #9439692 - Flags: feedback?(tnikkel)
Attachment #9439692 - Flags: feedback?(jwatt)

Had a quick look through, so far nothing stands out as a hard blocker. I want to think a bit more on this though.

(In reply to Timothy Nikkel (:tnikkel) from comment #3)

Had a quick look through, so far nothing stands out as a hard blocker. I want to think a bit more on this though.

Yeah didn't mean to make it a proper review request, mostly a quick "am I too off" thing. I need to fix handling of <browser>s inside popups or so, for example which might make me kill the nsSubDocumentFrame outer view as well perhaps, or do something else. Once I figure that out I'll send it for review proper.

Main issue being that the browsing context tree is mutated before
display lists are created, so this triggers RDL asserts.

Works other than that tho.

Assignee: nobody → emilio
Status: NEW → ASSIGNED
Depends on: 1993570

And use it instead of manually using views.

The code already doesn't jump across toplevel boundaries so this is
simpler.

The idea is that by passing (frame, renderer) we'll accommodate popups
not having views (and eventually kill views directly).

Comment on attachment 9519342 [details]
Bug 1933181 - Minor simplification to XULPopupElement::GetOuterScreenRect. r=#layout

Revision D268205 was moved to bug 1993570. Setting attachment 9519342 [details] to obsolete.

Attachment #9519342 - Attachment is obsolete: true

Comment on attachment 9519343 [details]
Bug 1933181 - Introduce nsIWidget::Get{,Popup}Frame. r=stransky,#layout

Revision D268206 was moved to bug 1993570. Setting attachment 9519343 [details] to obsolete.

Attachment #9519343 - Attachment is obsolete: true

Comment on attachment 9519344 [details]
Bug 1933181 - Simplify nsWindow::GetTopmostWindow(). r=stransky

Revision D268207 was moved to bug 1993570. Setting attachment 9519344 [details] to obsolete.

Attachment #9519344 - Attachment is obsolete: true

Comment on attachment 9519348 [details]
Bug 1933181 - Make painting code not use views directly. r=#layout

Revision D268208 was moved to bug 1993570. Setting attachment 9519348 [details] to obsolete.

Attachment #9519348 - Attachment is obsolete: true
Depends on: 1993855
Attachment #9439692 - Attachment description: WIP: Bug 1933181 - Stop using nsView for popups. → Bug 1933181 - Stop using nsView for popups. r=#layout
Depends on: 1993900
Attachment #9439692 - Flags: feedback?(tnikkel)
Attachment #9439692 - Flags: feedback?(mozmail)
Depends on: 1994014
Regressions: 1994245
Regressions: 1994247
Status: ASSIGNED → RESOLVED
Closed: 1 month ago
Resolution: --- → FIXED
Target Milestone: --- → 146 Branch
Regressions: 1994349
See Also: → 1994349
Regressions: 1994358
See Also: 1994349
Blocks: 1994014
No longer depends on: 1994014
Blocks: 1994942

Comment on attachment 9443435 [details]
WIP: Bug 1933181 - Don't use views for subdocs.

Revision D232057 was moved to bug 1994942. Setting attachment 9443435 [details] to obsolete.

Attachment #9443435 - Attachment is obsolete: true
Regressions: 1994855
No longer depends on: 1994762
Regressions: 1994762

(In reply to Pulsebot from comment #14)

Pushed by ealvarez@mozilla.com:
https://github.com/mozilla-firefox/firefox/commit/93b4c09f7e85
https://hg.mozilla.org/integration/autoland/rev/832b10027e3b
Stop using nsView for popups. r=layout-reviewers,tnikkel

Perfherder has detected a devtools performance change from push 832b10027e3b1c44f0a22891903f657bf2a97064.

If you have any questions, please reach out to a performance sheriff. Alternatively, you can find help on Slack by joining #perf-help, and on Matrix you can find help by joining #perftest.

Improvements:

Ratio Test Platform Options Absolute values (old vs new)
19% damp console.typing linux1804-64-shippable-qr e10s fission stylo webrender 527.48 -> 426.70
12% damp console.autocomplete linux1804-64-shippable-qr e10s fission stylo webrender 665.67 -> 587.60
8% damp console.autocomplete windows11-64-24h2-shippable e10s fission stylo webrender 395.45 -> 362.34

Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests.

If you need the profiling jobs you can trigger them yourself from treeherder job view or ask a performance sheriff to do that for you.

You can run all of these tests on try with ./mach try perf --alert 47169

The following documentation link provides more information about this command.

Keywords: perf-alert
Regressions: 1995207
Regressions: 1997831
Blocks: 337801
QA Whiteboard: [qa-triage-done-c147/b146]
Regressions: 1998596
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: