The new version also significantly reduces the memory overhead of leaky add-ons.

Ryan Paul - Aug 28 2012



The BananaBread WebGL demo running in Firefox 15

Mozilla announced today the release of Firefox 15, a new version of the open source Web browser. The update brings a number of noteworthy enhancements, including new built-in development tools and enhanced support for cutting-edge Web standards that enable sophisticated gaming experiences. Under the hood, Firefox 15 introduces a new optimization that can radically reduce the browser’s memory footprint for users who rely on many add-ons.

As we have discussed in much of our recent browser coverage, modern standards-based Web technologies are increasingly capable of supporting the kind of interactive multimedia experiences that used to only be available through plugins or native applications. The major browser vendors, which are all working to further expand the range of capabilities offered by the Web, have recently taken an interest in enabling game development.

Mozilla has been working on a number of relevant features, including an API for displaying content in fullscreen mode, support for mouse-locking, and sophisticated real-time audio mixing functionality. Earlier this year, Mozilla launched its own real-time multiplayer adventure game called BrowserQuest with the aim of showcasing HTML5 gameplay. The open Web is clearly a serious contender for casual gaming.

The latest round of browser improvements are paving the way for even more elaborate gaming experiences. In Firefox 15, Mozilla has added native support for using compressed textures in WebGL, lowering the overhead of using high-resolution images in video memory. Firefox 15 also includes support for the new high-precision time APIs, which provide support for sub-millisecond time measurement—useful for making games with lower latency, smoother animation, and properly synchronized audio.

The BananaBread demo, a 3D first-person shooter, offers a particularly compelling example of what developers can presently achieve with WebGL, compressed textures, pointer lock, and fullscreen support. The BananaBread engine is a JavaScript and WebGL port of the 3D game engine used in Cube 2: Sauerbraten. The initial port was accomplished by Mozilla researcher Dr. Alon Zakai (kripkenstein in the Ars forums) using Emscripten, a sophisticated LLVM-based tool for transpiling conventional C/C++ code into JavaScript.

The demo allows the user to fight against bots on three separate maps. The user can choose from several different weapons, customize the number of bots, and toggle between first- and third-person views. The engine also has an edit mode which allows the user to fly around and modify the current level. I tested the demo in Firefox 15 and found that the high-resolution mode was playable on my MacBook Air.
Under the hood

When Firefox 10 was released back in January, we took a close look at the browser’s new suite of built-in developer tools, which included a DOM inspector, Web console, JavaScript scratchpad, and CSS editor. Firefox 15 adds another tool to the lineup: an interactive JavaScript debugger. The debugger allows the user to set breakpoints, step through execution, and see the state of variables in the current scope of execution. It can also be used over a network to perform remote JavaScript debugging on a mobile Firefox instance running on an Android device.

Mozilla has a dedicated “MemShrink” team that continuously works to improve the browser’s memory efficiency. In Firefox 15, they have succeeded in further reducing the overall footprint. As we reported last year, leaky third-party add-ons are one of the biggest culprits of memory waste in Firefox. The misbehaving add-ons maintain references to DOM objects from pages that are no longer open, preventing the browser’s garbage collection mechanism from freeing up the page’s memory compartment.

Mozilla initially attempted to address the issue by educating developers and flagging instances of the problem during add-on reviews, but that strategy proved inadequate due to the large size of the add-on development community and the general lack of centralized control over add-on distribution.

Mozilla finally came up with a technical solution, which is implemented in Firefox 15. The browser will now automatically sever the unnecessary references, effectively preventing the proliferation of “zombie” compartments. In practice, the benefits of this improvement will be most profound for users who rely on numerous or particularly hefty add-ons. Individual users have reported seeing improved performance and significant reductions in memory consumption as a result of the change.

Another significant new feature that has arrived in Firefox 15 is full support for background updates. This long-overdue feature will make Firefox’s rapid update cycle less painful for end users. As Mozilla developer Ehsan Akhgari explained in a blog post this morning, the feature had to be implemented very carefully in order to avoid a scenario where users are no longer able to receive updates.

Firefox 15 is available for download from Mozilla’s website. For more details about the release, users can refer to the official release notes.