Firefox 29 was released on April 29, 2014.
The new version looks significantly more like Chrome than the old Firefox. It features the same three-bar menu on the right and rounded tabs, for example. At the same time, though, it keeps the separate search form — something most other browsers have now done away with.
“The point of the redesign is to adapt the design to how modern users engage with the web” said Johnathan Nightingale, Mozilla VP for Firefox.
In total, the team made 1,300 user interface and bug fixes since it first publicly introduced the Australis redesign about a year ago.
The redesign, which touches many more aspects of the browser than just its user interface, is meant to give people the ability to fully customize their browsing experience. “Outside the core stuff, everybody uses the browser differently,” Nightingale noted.
Some people, for example, never use the back button (which seems weird, but maybe they use keyboard shortcuts).
So, What’s New in Firefox? Let's see...
Elegant New Design: Sleek new tabs and an overall modern look that makes it easier to experience the Web the way you want.
Customization Mode: Makes it easy for you to personalize your Web experience to access the features you use the most. You can easily drag and drop your favorite feature, tool or add-on in the menu or toolbar.
Firefox Menu: Includes popular browser controls, features and add-ons in one place to make it easier and faster to access them. The menu is completely customizable so you can edit or add features you use most.
Fun and Simple Bookmarks: You can create bookmarks with a single click and manage them from the same place.
Easy Access to Add-ons Manager: Firefox includes an Add-ons Manager you can access directly from the menu to help easily discover and install add-ons.
Enhanced Firefox Sync Powered by Firefox Accounts: Just create a Firefox Account and our sync feature makes it even easier to setup and add multiple devices with end-to-end encryption. Firefox Sync gives you access to Awesome Bar history, saved passwords, bookmarks, open tabs and form data across your computers and mobile Android devices.
Web Platform and Developer Tools:
WebRTC: Firefox supports WebRTC, which enables video calls and file sharing between browsers.
WebAPIs: There are now more than 30 Mozilla-pioneered WebAPIs, which unlock more functionality and features in the Web platform.
Web Audio API: With Web Audio API, developers can now build robust audio engines capable of new features like positional audio and support for effects such as reverb, which can create immersive audio experiences on the Web, which is especially important for game developers.
CSS Flexbox: The integration of CSS Flexbox in Firefox makes it easier for developers to build user interfaces that adapt to the size of the browser window or to create elastic layouts which adapt themselves to the font size. This is helpful when developers are trying to create a consistent user interface to their Website or Web app across desktop and mobile.
App Manager: Brings the Firefox Web developer tools to mobile app developers, simplifying mobile Web app development with live prototyping and debugging of apps on Firefox OS phones directly from the desktop.
Extension APIs: Developers using the Add-on SDK can now use the new button and toolbar APIs to easily integrate their add-on with Firefox’s new customizable toolbar.
Changes for Web developers
Major changes include:
- Vastly improved web console - Arrays are shown inline without clicking to bring up in the right inspector, window objects show their url, etc.
- Added the console API to Web Workers (bug 620935). Now you can log messages to the Web Console from Web Workers.
- The Network Monitor tool now shows performance statistics using pie charts (bug 846599).
- On the Inspector, preview tooltips of CSS transforms are now available (bug 726427).
- DOM elements seen in the debugger and console can be removed or inspected directly, via the new buttons to the right of the variable listing.
- A CSS source map is now supported by the Style Editor (bug 926014).
- Autocompletion of CSS properties and values has been added to the Style Editor (bug 717369).
- CSS variables have been implemented (bug 773296). Mozilla Hacks article can be found here. They are enabled by default only for non-release builds (on release builds flip the pref layout.css.variables.enabled to true if you want to play with them).
- Flexboxes now support visibility: collapse (bug 783470).
- The box-sizing property has been unprefixed (bug 243412).
- The will-change property, a hint to that something will animate has been added. The preference layout.css.will-change.enabled must be switched to true to enable it. (bug 940842)
- Scientific exponential notation, like 3e1 or 10e+0, is now supported for values (bug 964529).
- Image of type are now supported in border-image (bug 709587).
- The touch-action property has been implemented. It is not activated by default; the layout.css.touch_action.enabled pref controls it. (bug 795567)
- <input type="color" /> and <input type="number" /> are available by default.
- Support for the non standard <pre cols=""> has been removed, as well as the layout effect of <pre wrap=""> . Both effects can, and should, be achieved using CSS. (bug 949879)
- New ECMAScript 6 String methods: String.prototype.codePointAt() and String.prototype.fromCodePoint() have been implemented (bug 918879).
The ECMAScript Internationalization API (ECMA-402) has been implemented and is now enabled by default in Firefox Desktop (bug 853301):
- New objects in the new Intl object namespace: Intl.Collator
- The following methods of String, Number and Date have been updated to include the locales and options arguments per ECMA-402:
Date.prototype.toLocaleTimeString()v - To match the updated ECMAScript6 draft specification, the Map and Set objects now treat -0 and +0 as the same when checking for key and value equality.
Promise has been enabled by default (bug 918806).
- Completed generators now returns an IteratorResult object instead of throwing (bug 958951).
- A malformed JSON string parsed by JSON.parse() now yields a more detailed error message containing the line and column number that caused the parsing error. This is useful when debugging large JSON data.
- A new type of workers, SharedWorker, is now available by default (bug 924089).
- The URLUtils interface now supports the searchParams property returning a - URLSearchParams object, allowing to modify the search params of an URL (bug 887836).
- The Worker.onLine property is now supported, allowing to know the online/offline status in workers (bug 925437).
- As part of the implementation of Web Components, the HTMLShadowElement interface has been implemented behind the dom.webcomponents.enabled. Flip it to true if you want to use it. (bug 887538).
- The read-only property HTMLIFrameElement.sandbox is no longer a string but an HTMLSettableToken (bug 845057).
- On HTMLCanvasElement.getContext(), the value moz-webgl is no longer supported. Use the standard webgl value (bug 913597).
- The constructor for ImageData has been added. This interface can be used in a Worker. (bug 959958)
- The property location.origin is now available in workers (bug 964148).
The ValidityState.badInput property has been implemented (bug 827161).
- The deprecated Window.pkcs11 property has been removed; it was returning null since Firefox 3.0.14. (bug 964964)
- The Node.cloneNode() and Document.importNode() methods take the Boolean deep argument. Until now, if omitted, these methods acted as if the value of deep was true. But this behavior has been changed as per the latest spec, and if omitted, the methods will act as if the value was false. (bug 937461)
- Window._content is no more available to Web content (bug 946564).
URLUtils.port behavior has been slightly changed: set to '' will set it to the default port associated with the protocol, and 0 to 0. (bug 930450)
- Document.referrer is now based on the incumbent script (bug 887928).
- The Gamepad API is enabled by default (bug 878828).
- The CSP 1.1 experimental hash-source directive has been implemented. The preference security.csp.experimentalEnabled should be set to true to enable this functionality (bug 883975).