Welcome to the Future of Firefox

Be the first to know what's new with upcoming Firefox releases.

Improving the Firefox update experience

Over the past few months we’ve been working on a number of improvements to the Firefox update experience. These improvements use new approaches to update that allow Firefox to update silently – without any interruption to your regular use of the browser.

In the rest of this post I focus on five Firefox update improvements and how they should improve your Firefox update experience.

Background Updates
Today Firefox periodically checks for updates. Once an update is detected, Firefox automatically downloads the update and waits to be restarted in order to install it. The update is applied on start-up as the updater needs to modify Firefox files, which may be locked while Firefox is running. Updating Firefox on start-up may result in a short delay in starting your browser as you wait for the update to be installed. You may also see a progress dialog as shown below.

updateprogress

A new update installation method allows Firefox to install an update while the browser is running. This means that the update can be installed immediately after it is downloaded. A restart of the browser is still required to apply the update but, using the new method, the application of the update will happen very quickly. So quickly, in fact, that you shouldn’t even notice it. The new version of Firefox will then launch with no delay as the update procedure has already taken place.

Background updates are currently planned to be delivered in the next couple of releases. This means that updates for subsequent Firefox releases should no longer display a progress dialog after restarting the browser.

See Ehsan Akhgari’s blog post Updating Firefox in the Background for more technical details about this change.

Reminder to update UI
Most Firefox updates include security fixes. In order to keep your system secure it is important that you install updates shortly after they are made available. As discussed above, Firefox must be restarted in order to apply an update. In order to facilitate the installation of an update, if Firefox has not been restarted within 12 hours of the download of the update you will be prompted to restart with a dialog.

updatedialogue
In our user research we discovered that more than 99% of Firefox users restart their browser within 24 hours without prompting. The impact of extending the prompt period was considered minimal, so in November we changed the notification period to 24 hours.

This change means that the vast majority of Firefox users will restart their browser without being prompted and will therefore never see the Update Ready to Install dialog again.

Windows UAC service
On Microsoft Windows Vista and Windows 7, when updating Firefox you will be prompted with a User Access Control (UAC) dialog. This dialog is a Windows security mechanism to ensure that only applications that have been explicitly granted permission can make modifications to restricted areas of your system, such as writing to the Program Files directory.

UAC

The current structure of the Firefox updater requires that you grant permission to the updater each time it needs to install an update one of these versions of Windows. This repeated prompting occurs for two reasons: the Firefox installation resides in the Program Files directory and update changes are made to the registry. From a user perspective the repeated prompting is unnecessary because the first time that you accept the prompt you indicate that you put your trust in Firefox. After you have granted Firefox permission to update it should continue to be able to update future versions of Firefox without prompting you again.

In order to work with UAC security and provide an update experience that doesn’t prompt you for each installation, a new update service will land on Firefox Aurora shortly. This service runs as a background process and installs updates when they become available. After you grant permission to the Firefox update service you will not be prompted with a UAC dialog when installing updates for subsequent releases.

For those interested, Brian Bondy’s blog post Mozilla Firefox and silent updates contains more specific technical details about this Microsoft Windows specific change. We are also looking at ways to improve the update process for our Mac and Linux users.

Add-ons default to compatible
Add-ons are a key benefit of using Firefox. Our users depend on their add-ons and need them to work. Firefox historically took a conservative approach to add-on compatibility. This approach was taken to minimize the chance that an add-on would have an undesired affect on your Web browsing experience when updating to a new version of Firefox. There were typically add-ons that are incompatible the day of a Firefox release. If you had one of these add-ons installed you would see an Incompatible Add-ons dialog that prompted you for action before the update was downloaded.

add-ons compatibility

Add-on authors had to explicitly state that their add-ons were compatible with new Firefox releases. If an add-on was hosted on addons.mozilla.org (AMO) and was using the add-ons SDK, we could automatically keep it up-to-date. However, most add-ons will continue to work with no modification with new versions of Firefox. So…

…with the latest version of Firefox, add-ons are compatible by default. Well, to be accurate, most add-ons are compatible by default. There are certain classes of add-ons that are still flagged as incompatible, such as add-ons that contain binary components, add-ons whose compatibility range does not include Firefox version 4 or later, and add-ons that have been determined to be incompatible by the Firefox Add-ons team.

These changes should result in more of your add-ons being compatible on day 0 of a release. This means less work for you and less work for add-on authors. This also means Firefox updates should download without any prompting by the Incompatible Add-ons dialog.

Add-on authors should see the post Solving Firefox’s add-on compatibility problem by Blair McBride (aka Unfocused) for all of the details about the changes to the add-on update system.

What’s New Page

What'sNew
The What’s New Page is displayed in Firefox after the browser is updated. This page notifies you that your update has completed successfully and informs you about relevant product changes. As of Firefox 8, the What’s New page can now be turned on or off per release. This means that we can elect to show or hide the page per release based on whether there is important product or Mozilla-related information to share with you.

The five updates detailed in this post will result in a silent Firefox update experience that continues to keep your browser up-to-date, current with the latest Web features, and secure.

The latest Firefox Aurora is now available for download and testing!

The latest Firefox Aurora is now available for download and testing!

What’s New in Firefox Aurora:

Try these new experimental features now and start testing.
Download the latest Firefox Aurora and provide feedback. Feedback on these new features help us determine what makes it to beta and final releases.

Firefox Beta with New Developer Tools and Add-on Sync is Ready for Testing

A new Firefox Beta for Windows, Mac and Linux is now available for download and testing. This beta adds new in-product developer tools that make it easier to visualize page elements and updates Firefox Sync capabilities to let users sync add-ons across computers.

What’s New in Firefox Beta for Web Developers:

  • Page Inspector 3D View: Tilt is a new WebGL-based website visualization tool that illustrates the relationship between various parts of a websites and their ancestors in 3D.  The Tilt 3D view is integrated with the Page Inspector tool and is particularly useful when searching through problems in the HTML structure. Read more about Tilt in the Hacks blog post.

  • Style Editor: Firefox Beta includes the new Style Editor tool, which gives developers complete freedom to edit CSS files for a page with live updates in the browser. Developers can then save the CSS files to desk when they are done.
  • SPDY Support: Firefox Beta now supports SDPY. SPDY is a transport protocol designed as a successor to HTTP that reduces the amount of time it takes for websites to load. This improves page load times and reduces server load because headers are compressed and fewer connections are used. All pages are loaded on SSL with SPDY, making browsing more secure. To enable SPDY, go to about:config. Search for network.http.spdy.enabled and set it to “true.”

What’s New in Firefox Beta for Users:

  • Add-on Sync: Users have the option to sync add-ons across platforms so they can pick up where they left off on different computers. Users can enable this feature in the Preferences window on the Sync tab.
  • Migration Tool Update: New Firefox users can utilize the migration tool to bring data from Internet Explorer, Safari and now Chrome. This Firefox Beta update adds the ability to import data and preferences from Google Chrome so users can easily get started on Firefox with all of their favorite bookmarks, history, cookies and profiles. More features will be coming in later releases.

For more information:

 

Bringing Android Native Firefox to Beta

I like trains. Last year, we put Firefox on a train-based release model: every six weeks, another train leaves the station. When a feature catches the train it moves through iterative testing on our Nightly, Aurora and Beta channels and, if that testing confirms its stability and general excellence, it goes out to hundreds of millions of Firefox users. If testing reveals an issue, we pull the feature out for another round of review, and let it catch a later train. The trains have run on time ever since, and the results have been incredible. Firefox improvements reach our users regularly, faster than ever before.

However, when we decided to rebuild Firefox for Android using a native UI, we recognized that the first release couldn’t ride the trains. The iterative release model that serves us so well with Firefox works best when most changes are incremental and independent. Building a new high-performance front end for Firefox on Android, by contrast, involves many interconnected pieces being rebuilt in tandem.

Right now, the engineering team is focused on building an amazing browser for Android phones, and we’ll have a beta to show you in the coming weeks. It might coincide with one of our regular 6 week trains, but it’s quite possible it won’t. If it doesn’t, don’t worry. It’s cool. Firefox for Android will get back on the trains once the native UI rebuild is finished, but for a change this major we have extra work we want to do before we send it out the door. We’ll only ship it once we’re happy with its quality and performance. If you can’t wait that long, check us out on tablets or try our early release Aurora builds. I think you’ll be pleased.

Johnathan Nightingale
Sr. Director of Firefox Engineering

Get the Latest Firefox Aurora

The latest Firefox Aurora is now available for download and testing!

The new Firefox Aurora for Android update includes a new native Android interface that we need your help testing. Users will experience a faster start-up time, new design, improved start page and more.  This Firefox Aurora update also includes Flash support. Look for further Firefox Aurora updates soon that will add features like Firefox Sync, additional add-ons support and more.

We need our adventurous group of Firefox Aurora users to help us test these new features and file bugs or provide feedback as we continue to improve performance and features. For tablet users who want to keep using the new optimized tablet UI, please download Firefox Beta.

See the full list of new features in Firefox Aurora for Android: Firefox Aurora Notes for Android

For desktop users, check out the Firefox Aurora notes for Mac, Windows, and Linux/For Developers: Firefox Aurora Hacks Post.

Firefox Beta with New Developer Tools and Enhanced Sync Is Ready for Testing

A new Firefox Beta for Windows, Mac, Linux and Android is now available for download and testing. This beta adds new built-in developer tools that make it easier and faster to create and modify amazing websites and Web apps. This beta also adds enhancements that make Firefox Sync easier to setup and pair across desktop and mobile devices.

What’s New in Firefox Beta for Web Developers:

  • Full Screen API: Developers can create Web applications that leverage the entire screen. The Full Screen API works with any HTML content, enabling developers to build entertaining and compelling Web video and game experiences. You can get more information in this blog post.
  • Page Inspector: Page Inspector makes it fast and easy for developers to test the design, style, font, color and page positioning of their website. Developers can see the HTML and CSS rules applied to any selected page element. This makes it easy to navigate through different page elements while viewing the HTML document structure for the page.
  • Style Inspector: Developers can use the Style Inspector to see the CSS properties applied to any selected page element and easily change the values to experiment with new looks. You can get more information in this blog post.
  • CSS3 3D-Transforms: Developers can create two-dimensional elements that animate and transform into 3D using HTML5 without the need for third-party plugins. You can get more details in this blog post.
  • Anti-aliasing for WebGL: Now 3D WebGL content will have edges that blend smoothly, especially with games and animations.
  • Scratchpad with Orion Code Editor: The developer Scratchpad adds the Orion code editor, allowing developers to edit more than plain text. The Orion code editor provides syntax highlighting and other great features and makes it easier to write JavaScript.

What’s New in Firefox Beta for Users:

  • Add-ons Compatible by Default: Firefox updates are smoother and easier because incompatible add-ons are automatically disabled and all other add-ons will default to compatible (except binary add-ons). We need your help testing the update process to make sure that incompatible add-ons are properly disabled. You can read more details in this blog post or file a bug.
  • Enhanced Firefox Sync: Firefox Sync is enhanced with an easier setup process so you can pair your Android phone, tablet or any Firefox-enabled device without needing to be at your desktop computer.

For more information:
Get Firefox Beta for Windows, Mac and Linux/Firefox Beta for Android.
Long, technical release notes for Firefox Beta on Windows, Mac and Linux/ Firefox Beta for Android.

Help Test Default Compatibility for Add-ons on Aurora

Editor’s note: Amy Tsay recently posted about Default Compatibility for Add-ons. The full post is included below:

The latest phase of our add-on compatibility plan has arrived in Aurora, and we need your help to test it! Since Firefox 4, we have been automatically making add-ons hosted on AMO compatible with new Firefox releases. Now, we have extended automatic compatibility to non-hosted add-ons, which account for 75% of all add-ons in use (currently in the hundreds of millions). This means you should see less of the incompatible add-ons dialog, and more of your add-ons should just work.

You can read more about the plan, including how we determine eligibility for automatic compatibility here. For additional background reading, check out this blog post.

Once you have Aurora installed, all add-ons that are compatible with Firefox 4 or later can be installed without extra steps. Firefox will install them even if they are declared incompatible in the manifest file.

If you don’t already have Aurora installed, you can get it here. With Aurora, you’ll see our newest features before they go beta, and have a chance to send us feedback before the final release.

Updating Firefox in the Background

Blog by Ehsan Akhgari, Firefox Engineer

The dialog below should look familiar. It displays while Firefox completes the update process after a new version is installed and the browser is restarted.

Background1

In order to update itself, Firefox first starts to download an update in the background. When the update is downloaded, Firefox stages it in a directory ready to be applied. The next time that Firefox is about to start up, it checks out the staging directory. If an update ready to be applied is found, Firefox launches the updater program, and applies the update on top of the existing installation (showing that progress bar as it’s doing its job). When the update process is finished, the updater program restarts Firefox. All of this happens as you’re waiting for your browser to start up in order to do what you wanted to do. This is clearly less than ideal.

For the past few weeks, I have been working on a project to improve this process. The goal of my project is to minimize the amount of time it takes for Firefox to launch after downloading an update. The technical details of how I’m fixing this problem can be found this document. Here’s a short version of how the fix works. When Firefox finishes downloading an update, it launches the updater application in the background without displaying any UI, and applies the update in a new directory that is completely separate from the existing installation directory. Instead of staging the update itself, an entire updated version of Firefox is staged. The next time that Firefox starts up, the existing installation is swapped with the new updated installation which is ready to be used. In this scenario, you likely won’t notice that Firefox has applied an update as no UI is shown.

Now, the reason that this approach fixes the problem is that swapping the directories, unlike the actual process of applying the update, is really fast. We are effectively moving the cost of applying the update to right after the update has been downloaded while the browser is running. This leaves only the really fast copy operation to be performed the next time that the browser starts up.

I have some experimental builds with this feature ready in a temporary channel called Ash. The implementation is now at a stage where it can benefit testing from the community. You can download the latest builds here. I will trigger a few nightly builds on this branch every day so that you would get updates if you’re running an Ash build.

In order to help with testing this new update process, all you need to do is to download the latest build from Ash, then wait a few hours so that a new nightly build becomes available, and then update to that build. Updating can be triggered manually by opening the About dialog, or by the background update checker if you leave the build running for a few hours. If everything works correctly, when you restart Firefox, you should get a new build without seeing any progress bar as Firefox is starting up. In order to verify that you have indeed been updated to a new build, you can go to about:buildconfig, copy its contents, and then compare it with the contents of about:buildconfig when Firefox starts up after an update.

It would be extremely useful if you can test this with different types of security and anti-virus software running. If you observe any problems or warning, or if you see that the update did not change the contents of about:buildconfig, then please let me know so that I can try to fix those problems.

For people who are curious to see the code, I’m doing my development on this branch, and I’m regularly posting patches on bug 307181.

Please note that this is still in the testing stage, and at this point, we’re not quite sure which version of Firefox this will land in (we’re working to land it as soon as is safely possible). No matter which version of Firefox includes this feature for the first time, we believe that this will be a very positive change in making the Firefox update experience more streamlined for all of our users.

Latest Firefox Aurora is Now Available!

The latest Firefox Aurora is now available for download and testing!

What’s New in Firefox Aurora:

Try these new experimental features now and start testing!
Download the latest Firefox Aurora and provide feedback. Feedback on these new features help us determine what makes it to beta and final releases.