Firefox 55: first desktop browser to support WebVR

WebVR Support on Desktop

Firefox on Windows is the first desktop browser to support the new WebVR standard (and macOS support is in Nightly!). As the originators of WebVR, Mozilla wanted it to embody the same principles of standardization, openness, and interoperability that are hallmarks of the Web, which is why WebVR works on any device: Vive, Rift, and beyond.

To learn more, check out vr.mozilla.org, or dive into A-Frame, an open source framework for building immersive VR experiences on the Web.

New Features for Developers

Firefox 55 supports several new ES2017/2018 features, including async generators and the rest/spread (“...“) operator for objects:

let a = { foo: 1, bar: 2 };
let b = { bar: 'two' };
let c = { ...a, ...b }; // { foo: 1, bar: 'two' };

MDN has great documentation on using ... with object literals or for destructuring assignment, and the TC39 proposal also provides a concise overview of this feature.

Over in DevTools, the Network panel now supports filtering results with queries like “status-code:200“.

Screenshot showing the Firefox DevTools' Network panel with a filter on status-code:304, and a pop-up showing the new columns that are available.

There are also new, optional columns for cookies, protocol, scheme, and more that can be hidden or shown inside the Network panel, as seen in the screenshot above.

Making Firefox Faster

We’ve implemented several new features to keep Firefox itself running quickly:

  • New installations of Firefox on Windows will now default to the more stable and secure 64-bit version. Existing installations will upgrade to 64-bit with our next release, Firefox 56.
  • Restoring a session or restarting Firefox with many tabs open is now an order of magnitude faster. For reasons unknown, Dietrich Ayala has a Firefox profile with 1,691 open tabs. With Firefox 54, starting up his instance of Firefox took 300 seconds and 2 GB of memory. Today, with Firefox 55, it takes just 15 seconds and 0.5 GB of memory. This improvement is primarily thanks to the tireless work of an external contributor, Kevin Jones, who virtually eliminated the fixed costs associated with restoring tabs.
  • Users can now adjust Firefox’s number of content processes from within Preferences. Multiple content processes debuted in Firefox 54, and allow Firefox to take better advantage of modern, multi-core CPUs, while still being respectful of RAM utilization.
  • Firefox now uses its built-in Tracking Protection lists to identify and throttle tracking scripts running in background pages. After a short grace period, Firefox will increase the minimum setInterval or setTimeout for callbacks scheduled by tracking scripts to 10 seconds while the tab is in the background. This is in addition to our usual 1 second throttling for background tabs, and helps ensure that unused tabs can’t invisibly ruin performance or battery life. Of course, tabs that are playing audio or video are not throttled, so music in a background tab won’t stutter.
  • With the announcement of Flash’s end of life, and in coordination with Microsoft and Google, Firefox 55 now requires users to explicitly click to activate Flash on web pages as we work together toward completely removing Flash from the Web platform in 2020.

Making the Web Faster

Firefox 55 introduces several new low-level capabilities that help improve the performance of demanding web applications:

  • SharedArrayBuffer and Atomics objects are new JavaScript primitives that allow workers to share and simultaneously access the same memory. This finally makes efficient multi-threading a reality on the Web. The only downside? Developers have to care about thread safety, mutexes, etc. when sharing memory, just like in any other multi-threaded language. You can learn more about SharedArrayBuffer in this code cartoon introduction and this explainer article from last year.
  • The requestIdleCallback() API offers a new way to schedule callbacks whenever the browser has a few extra, unused milliseconds between frames, or whenever a maximum timeout has elapsed. This makes it possible to squeeze work into the margins where the browser would otherwise be idle, and to defer lower priority work while the browser is busy. Using this API requires a bit of finesse, but MDN has great documentation on how to use requestIdleCallback() effectively.

Making the Web More Secure

Geolocation and Storage join the ranks of powerful APIs like Service Workers that are only allowed on secure, https:// origins. If your site needs a TLS certificate, consider Let’s Encrypt: a completely free, automated, and non-profit Certificate Authority.

Additionally, Firefox 55 will not allow plug-ins to load from or on non-HTTP/S schemes, such as file:.

New WebExtension APIs

WebExtensions can now:

And more…

There are many more changes in the works as we get ready for the next era of Firefox in November. Some users of Firefox 55 will begin seeing our new Firefox Screenshots feature, the Bookmarks / History sidebar can now be docked on either side of the browser, and we just announced three new Test Pilot experiments.

For a complete overview of what’s new, refer to the official Release Notes, MDN’s Firefox 55 for Developers, and the Mozilla Blog announcement .

About Dan Callahan

Engineer with Mozilla Developer Relations, former Mozilla Persona developer.

More articles by Dan Callahan…


9 comments

  1. J. Pablo Fernández

    Oh… VRML is coming back!

    August 8th, 2017 at 11:52

    Reply

    1. Frank L. Laifer, Major, USAF(retired)

      I already have Firefox 56.01b. Doesn’t that make 55 an older, and less-advanced, version?—-or am I missing something?

      August 10th, 2017 at 11:47

      Reply

      1. Dan Callahan

        Firefox 56, which you have, is currently our Beta version.

        We release a new version every six weeks, so your version of Firefox has six more weeks of fixes and improvements in it. :)

        August 10th, 2017 at 12:03

        Reply

        1. Andrea Nield

          My new Apple MacOSSierra overheats regularly and the message says it’s due to Firefox. Is this an apple of Firefox problem and what can I do about it. I’m still a computer novice but have used Mozilla for many years (suggested by me son) so I’m not sure what to do? Will the new update fix this problem?

          August 10th, 2017 at 17:43

          Reply

          1. Dan Callahan

            Thank you for using Firefox. We’re focusing a lot of effort on improving Firefox’s performance and efficiency, so each new update should be better than the last. That said, you shouldn’t be seeing warnings like that. Consider refreshing Firefox to see if there’s an add-on or setting that’s causing problems.

            August 11th, 2017 at 11:36

  2. jon

    That’s possibly nice, but does firefox supports alsa on linux ? can we still use our beloved extensions such as firebug, tab groups, tree style tabs, classic theme restorer, etc. ?

    August 8th, 2017 at 23:53

    Reply

    1. Dan Callahan

      This topic has been covered extensively elsewhere, especially the Add-ons Blog.

      The new add-ons APIs coming with Firefox 57 in November will not allow for arbitrary UI customizations like Classic Theme Restorer. However, an API that will make Tab Groups possible is in the works, and Tree Style Tabs are possible with the current APIs, though the add-on will need to be adapted to the new APIs.

      August 9th, 2017 at 02:00

      Reply

  3. Lawrence San

    These little changes may be nice, but they’re all trivial compared to the coming apocalypse that Moz is planning for FF 57. When they wipe out almost their entire extensions ecosystem — which is the main reason the few remaining FF users are still hanging around — the entire browser is going to fall from the tree like a rotten fruit and shplat onto the ground. And the Chrome beast (that Moz has pitifully been trying to imitate) will be standing by to lick up the remains.

    August 9th, 2017 at 12:38

    Reply

    1. Dan Callahan

      Thanks for your input. See you in November! :)

      August 9th, 2017 at 12:56

      Reply

Post Your Comment