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 to make 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.
The update process in Firefox 12 is not yet fully invisible, but the UAC prompt is no longer displayed. As I stated earlier in the article, full support for invisible updates is likely going to arrive in the next version.
In addition to the improved updater, Firefox 12 also offers a handful of other changes. As we reported in our coverage of the Firefox 10 and 11 releases, Mozilla has been working on a comprehensive suite of built-in developer tools for the browser. Those features have now largely stabilized, but Mozilla did take the opportunity to add a touch of polish in version 12: the page source viewer now has line numbering in the gutter.
Other changes include performance fixes for WebGL on Mac OS X, experimental support for the ES6 Map and Set APIs, and support for starting a download by pasting a URL in the download manager window (a more comprehensive overhaul of the download interface is currently in progress and slated for a future release).
The Firefox 12 release is available for download from Mozilla’s website. It’s also being rolled out through the browser’s update service. For more details about the new version, you can refer to the release notes.