Bug 1751484 Comment 0 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

STR:
1. Open 1000 tabs. Here's one easy/reliable way to do this:
(a) open `about:preferences`, "Home" section
(b) for `Homepages and New Windows`, choose "Custom URLs"
(c) In the "Paste a URL..." textfield, paste in the contents of the attached text file (which is just 1000 repetitions of `about:robots|`)
(d) Open a new window. That new window will get 1000 `about:robots` tabs.

(2) Wait a bit (maybe 30-60sec, up to you) for your tabs to finish loading (just to minimize contention & background noise in the profile).

(3) In your newly-opened window with 1000 tabs, open an additional tab with some fullscreenable site, e.g. https://davidwalsh.name/demo/fullscreen.php

(4) Start profiling (Ctrl Shift 1)

(5) Click the button in the site to enter fullscreen mode.

(6) Wait a few seconds, and press Esc to exit fullscreen mode.

(7) Capture your profile (Ctrl Shift 2)


ACTUAL RESULTS:
The resulting profile shows a few fairly-long restyles/reflows in the parent process, which are associated with the fullscreen operation. The length of this operation seems to grow with the number of tabs.

EXPECTED RESULTS:
Fullscreening web content should not cause substantial jank (and probably shouldn't cause jank that's dependent on your number of tabs).

Here's a profile of the STR (with 1000 about:robots tabs), zoomed in to the part where we enter fullscreen mode:
https://share.firefox.dev/32m7XtJ
...and when we exit fullscreen mode:
https://share.firefox.dev/3FPZqg7

In both cases (for entering and exiting), there are two long (over 100ms) restyles.  This is on my fast hardware; on slower user hardware, this is probably substantially longer. (bug  1733227 comment 8 is an example)

For comparison: if I perform the STR without having opened any/many tabs, then the restyles are pretty trivial/short.
STR:
1. Open 1000 tabs. Here's one easy/reliable way to do this:
(a) open `about:preferences`, "Home" section
(b) for `Homepages and New Windows`, choose "Custom URLs"
(c) In the "Paste a URL..." textfield, paste in the contents of the attached text file (which is just 1000 repetitions of `about:robots|`)
(d) Open a new window. That new window will get 1000 `about:robots` tabs.

(2) Wait a bit (maybe 30-60sec, up to you) for your tabs to finish loading (just to minimize contention & background noise in the profile).

(3) In your newly-opened window with 1000 tabs, open an additional tab with some fullscreenable site, e.g. https://davidwalsh.name/demo/fullscreen.php

(4) Start profiling (Ctrl Shift 1)

(5) Click the button in the site to enter fullscreen mode.

(6) Wait a few seconds, and press Esc to exit fullscreen mode.

(7) Capture your profile (Ctrl Shift 2)


ACTUAL RESULTS:
The resulting profile shows a few fairly-long restyles/reflows in the parent process, which are associated with the fullscreen operation. The length of the restyle/reflows seems to grow with the number of tabs.

EXPECTED RESULTS:
Fullscreening web content should not cause substantial jank (and probably shouldn't cause jank that's dependent on your number of tabs).

Here's a profile of the STR (with 1000 about:robots tabs), zoomed in to the part where we enter fullscreen mode:
https://share.firefox.dev/32m7XtJ
...and when we exit fullscreen mode:
https://share.firefox.dev/3FPZqg7

In both cases (for entering and exiting), there are two long (over 100ms) restyles.  This is on my fast hardware; on slower user hardware, this is probably substantially longer. (bug  1733227 comment 8 is an example)

For comparison: if I perform the STR without having opened any/many tabs, then the restyles are pretty trivial/short.

Back to Bug 1751484 Comment 0