
Mozilla on Tuesday, January 8, 2013, officially launched Firefox 18 for Windows, Mac, Linux, and Android.
The improvements in the new version include a new JavaScript compiler, preliminary WebRTC as well as Retina support (on Macs). The new version of Firefox puts some extra speed into online games and web apps powered by JavaScript, with the help of a new compiler called IonMonkey.
Mozilla stated in a blog post announcing the update to Firefox 18 that the new engine makes JavaScript-powered websites run up to 25 percent faster than before. The beta release that was first announced on November last year, highlighted IonMonkey, better phishing protection and – as an opt-in – search suggestions.
To show off the new-found power and speed, Mozilla highlighted BananaBread, a 3D web game that was released on August last year, and developed by the Mozilla Developer Network, powered exclusively by HTML5, WebGL, and JavaScript.
Also new in Firefox 18 is preliminary support for the new in-browser WebRTC communications framework for real-time video and audio chats.
Firefox 18 that also brings support for high-resolution Retina displays to the stable channel, now also uses a new algorithm for scaling images, which should result in better image quality on quite a few sites that depend on in-browser scaling. On Android version, Firefox 18 also uses IonMonkey and the ability to opt-in search suggestions in the Awesome Bar. These, Mozilla writes, "are conducted over a secure connection to protect your user data."
The mobile browser now also includes new anti-phising and anti-malware features that warn users when they encounter a malicious website. Another interesting new feature of Firefox for Android is its integration with the Google Now search widget.
One feature that didn’t make it into this release, by the way, is Mozilla’s new built-in PDF reader. While the organization has been working on this for a while, it will only make it into the beta release.
IonMonkey
IonMonkey is a new JIT for SpiderMonkey. Mozilla's goal is to implement the new compiler to enable many new JavaScript optimizations. In particular IonMonkey will feature much more organized and explicit data structures typical of advanced compilers. This goal of being clean and flexible will be important for future optimization work and experimentation.
IonMonkey has been in development for a while, with the primary aim of enabling new optimizations that are impossible with the current JägerMonkey architecture. It can emit fast native code translations of JavaScript functions on the ARM, 32-bit, and 64-bit platforms.
IonMonkey is a more traditional compiler: it translates SpiderMonkey (code name for the first JavaScript engine) bytecode into a control flow graph, using static single assignment form (SSA) for the intermediate representation. This architecture enables well-known optimizations from other programming languages to be used for JavaScript, including type specialization, function inlining, linear-scan register allocation, dead code elimination, and loop-invariant code motion. The process of performance is undertaken by pipelined algorithms with recompilation, debugging, and bailouts are now all related. The new compiler also manages memory much better, especially in part to avoid range problems on x64.
The immediate result is a significant speed boost. But perhaps even more important is the ability to improve, add or change the optimization algorithms used by the JIT without completely rewriting it.
Firefox 18 Changelog
There are of course other Firefox 18 features worth noting. Below is the official changelog:
- NEW: Faster JavaScript performance via IonMonkey compiler.
- NEW: Support for Retina Display on OS X 10.7 and up.
- NEW: Preliminary support for WebRTC.
- CHANGED: Experience better image quality with our new HTML scaling algorithm.
- CHANGED: Performance improvements around tab switching.
- DEVELOPER: Support for new DOM property window.devicePixelRatio.
- DEVELOPER: Improvement in startup time through smart handling of signed extension certificates.
- HTML5: Support for W3C touch events implemented, taking the place of MozTouch events.
- FIXED: Disable insecure content loading on HTTPS pages (62178).
- FIXED: Improved responsiveness for users on proxies (769764).
Firefox for Android now includes search suggestions: when a user starts typing into the Awesome Bar, Firefox will ask if the user would like to opt-in to search suggestions. It also now has new phishing and malware features; it now warns its users when they navigate to a site that may be used for malware or phishing.
The full Android changelog:
- NEW: Faster JavaScript performance via IonMonkey compiler.
- NEW: First mobile browser with Safe Browsing enabled.
- NEW: Integration with Google Now search widget.
- CHANGED: Support for loading new fonts delivered with Firefox.
- DEVELOPER: Support for new DOM property window.devicePixelRatio.
- FIXED: Disable insecure content loading on HTTPS pages (62178).
- FIXED: Opt-in for search suggestions when entering text into the Awesome Bar (586885).
- FIXED: Android 4.2: TalkBack announces that a page finished loading only after one touches the display (812480).
The new version supports standard W3C touch events in addition to MozTouch events, and can disable insecure content on HTTPS secure websites (must first be enabled in about:config). Firefox 18 is also become an even more friendlier place for web developers.
Mozilla officially launched Firefox 17 on November 21. Firefox 18 has thus been released just seven weeks later. Firefox 18 has now officially been made available over on Firefox.com and all users of old Firefox versions should be able to upgrade to it automatically. The Android version has also been updated over on the official Google Play Store.