Mozilla announced today the availability of Firefox 12, a new version of the popular open source Web browser. The release brings some minor incremental feature improvements, a number of fixes under the hood, and a significant change to the browser’s update system on Windows.
Ever since Mozilla transitioned Firefox to a shorter development cycle, the organization has been working tomake browser updates less intrusive and more seamless. The eventual goal is to make updates completely silent, performing them in the background without user intervention.
Mozilla is reportedly on track to deliver silent updates in Firefox 13, the next major version. The Firefox developers have been working to implement some of the underlying technical changes that are needed to support the functionality. One of those changes, which is included in Firefox 12, is a new update system that will be used on Windows.
In order to make updates silent, Mozilla has to first find a way to avoid the intrusive User Access Control (UAC) prompt. The UAC dialog is shown during the update process because the updater needs elevated privileges in order to modify the Firefox program files on the filesystem. The dialog requires user intervention, which makes it an obstacle to seamless updates. The new updater in Firefox 12 on Windows no longer requires the UAC dialog.
There are a number of different approaches that software applications can use to avoid triggering the UAC dialog during updates. Google’s Chrome Web browser, for example, installs itself in the user’s home directory rather than a destination on the filesystem that would require elevated privileges to modify. Mozilla was reluctant to take that approach for various security reasons, and opted instead to build their updater on top of a service.
A “service” on Windows is a kind of headless background task. Mozilla’s new update service, which is called MozillaMaintenance, has a high enough privilege level to be able to modify the Firefox files without needing a UAC prompt. Mozilla used a special access control entry to configure it so that it can be initiated by unprivileged applications.
This means that the conventional Firefox updater can instruct the service to launch and perform an update without user intervention. When the MozillaMaintenance service is launched with a command to perform an update, it will perform the task and then terminate itself; the service itself doesn’t remain in the background when it’s not needed. In unusual cases where the service can’t be installed, the conventional UAC-dependent updater will continue to be used.
No comments:
Post a Comment