Open Bug 1349809 Opened 7 years ago Updated 2 years ago

getElevationRequired janks the parent process by doing IO on the main thread

Categories

(Toolkit :: Application Update, defect, P3)

All
macOS
defect

Tracking

()

Performance Impact medium
Tracking Status
firefox55 --- affected

People

(Reporter: mstange, Unassigned)

References

Details

(Keywords: perf, perf:responsiveness)

Here's a profile that shows 250ms of jank on the parent process: https://perfht.ml/2o72U6m

It shows that nsUpdateService.js is walking directories on the main thread and doing blocking main thread IO.

At the very least it should do the IO asynchronously (e.g. using OS.File), better yet the whole directory traversal should happen on a worker thread.

This will mean that the elevationRequired field can no longer be a synchronous getter, it'll need to be asynchronous.
Priority: -- → P2

Here's another profile of this happening, this time with 1.7 seconds of jank: https://perfht.ml/2V5wSs9

Whiteboard: [qf]
Whiteboard: [qf] → [qf:p2:responsiveness]
Priority: P2 → P3

Here's a profile where it blocked my Firefox startup for more than 3s on a fast macbook: https://share.firefox.dev/3nmz1Ow

Whiteboard: [qf:p2:responsiveness] → [qf:p2:responsiveness][fxperf]
Whiteboard: [qf:p2:responsiveness][fxperf] → [qf:p2:responsiveness][fxperf:p2]
Performance Impact: --- → P2
Whiteboard: [qf:p2:responsiveness][fxperf:p2] → [fxperf:p2]
Whiteboard: [fxperf:p2]
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.