Open Bug 1946081 Opened 1 month ago Updated 21 days ago

1.6s Reflow on parent-process when hovering mouse over the "JSON(experimental)" button on Perfherder (due to shaping gigantic URI for status panel)

Categories

(Firefox :: Tabbed Browser, defect)

defect

Tracking

()

Performance Impact medium

People

(Reporter: mayankleoboy1, Unassigned, NeedInfo)

References

Details

Attachments

(2 files)

Summary: 1.6s Reflow on parent-process when hovering mouse over the "JSIN(experimental)" button on Perfherder → 1.6s Reflow on parent-process when hovering mouse over the "JSON(experimental)" button on Perfherder
Attached file about:support

With ublock enabled and sequential styling : https://share.firefox.dev/412x9Ry (worse performance as expected)

Attached file longhref.html

Here is an extracted testcase.

The root cause is that the href on the link is huge, producing issues in some of our behaviors.

Performance Impact: --- → ?

From the testcase:
Here is a profile on a clean firefox: https://share.firefox.dev/40S4BsK
There's a slowdown only in the parent process. I believe this is the work to display the URL at the bottom. It could be good to slice it to a sensible length before trying to display it.

But here is a profile on the same firefox build, but having more extensions: https://share.firefox.dev/3WM3n0N
This time we see also a slowdown on the child process, when we try to match some CSS attribute selectors. It's not clear to me what these selectors are, I don't see them in the devtools...

(In reply to Julien Wajsberg [:julienw] from comment #4)

But here is a profile on the same firefox build, but having more extensions: https://share.firefox.dev/3WM3n0N
This time we see also a slowdown on the child process, when we try to match some CSS attribute selectors. It's not clear to me what these selectors are, I don't see them in the devtools...

These ones (in the child process) seem to come from ublock origin.

We crop large data URIs (see bug 1484071). But this URI isn't that... All the time is spent shaping the uri so not all that much we can realistically do without having less work to do...

Component: Layout → Tabbed Browser
Product: Core → Firefox
See Also: → 1484071
Summary: 1.6s Reflow on parent-process when hovering mouse over the "JSON(experimental)" button on Perfherder → 1.6s Reflow on parent-process when hovering mouse over the "JSON(experimental)" button on Perfherder (due to shaping gigantic URI for status panel)

That patch is for base64 data URIs only, but in this case it's a data URI without base64. I understand the problems with UTF-8 but surely we should be able to crop it. Or if we don't want to mess with UTF-8 we could just crop at the very start of the string if it's more than some arbitrary length, it's not very useful by itself anyway?

The Performance Impact Calculator has determined this bug's performance impact to be medium. If you'd like to request re-triage, you can reset the Performance Impact flag to "?" or needinfo the triage sheriff.

Platforms: [x] Windows [x] macOS [x] Linux
Impact on browser: Causes noticeable jank
Websites affected: Rare
[x] Able to reproduce locally

Performance Impact: ? → medium

The severity field is not set for this bug.
:dwalker, could you have a look please?

For more information, please visit BugBot documentation.

Flags: needinfo?(dwalker)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: