Open Bug 2089875 Opened 9 days ago Updated 9 days ago

[macOS] Stage updates that need elevation instead of applying them in place

Categories

(Toolkit :: Application Update, enhancement)

All
macOS
enhancement

Tracking

()

ASSIGNED

People

(Reporter: spohl, Assigned: spohl)

References

Details

When a macOS update needs elevation, Firefox doesn't stage it. gCanStageUpdatesSession in UpdateService.sys.mjs returns false as soon as elevation is required, so the update is applied in place when Firefox restarts. Staged updates succeed more often. Applying in place also writes temporary files into the installed bundle, which breaks its code signature until the update has finished, and leaves it broken if the update is interrupted.

We should stage these updates too. The staged update would be prepared without elevation, as it is for everyone else, and at restart the privileged helper would check the staged result before installing it, then swap it into place without breaking the signature of the installed bundle. An update that was staged while the installation was writable, and that needs elevation by the time it's applied, should keep falling back to applying the MAR directly.

This builds on the privileged helper work in bug 2054404.

See Also: → 2090314
You need to log in before you can comment on or make changes to this bug.