Aurora 7 is here

Aurora Logo

Download Aurora

Keeping up the pace with our new development cycle, today we release Aurora 7. Enjoy its new features and performance improvements: CSS “text-overflow: ellipsis“, Navigation Timing API, reduced memory usage, a faster javascript parser, and the first steps of Azure, our new graphics API.

text-overflow: ellipsis;

It is now possible to get Firefox to display “” to give a visual clue that a text is longer than the element containing it.

At last, with text-overflow implemented in Aurora 7 it’s now possible to create a cross-browser ellipsis!

Navigation Timing

Performance is a key parameter of the user experience on the Web. To help Web developers monitor efficiently the performance of their Web pages, Aurora 7 implements the Navigation Timing specification: using the window.performance.timing object, developers will be able to know the time when different navigation steps (such as navigationStart, connectStart/End, responseStart/End, domLoading/Complete) happened and deduce how long one step or a sequence of steps took to complete.

Reduced Memory Usage

Our continuous efforts to monitor and reduce memory consumption in Firefox will substantially pay off with Aurora 7:

  • The memory “zone” where javascript objects reside gets fragmented as objects are created and deleted. To reduce the negative impact of this fragmentation, long-lived objects created by the browser’s own UI have been separated from the objects created by Web pages. The browser can now free memory more efficiently when a tab is closed or after a garbage collection.
  • Speaking of garbage collection, as we successfully reduced the cost of this operation, we are able to execute it more often. Not only is memory freed more rapidly, but this also leads to shorter GC pauses(the period where javascript execution stops to let the garbage collector do his job, which is sometime noticeable during heavy animations).
  • All those improvements are reflected in the about:memory page, which is now able to tell how much memory a particular Web page or the browser’s own UI, is using.

More frequent updates and detailed explanations of the memshrink effort are posted on Nicholas Nethercote’s blog.

Faster Javascript Parsing

A javascript parser is the part of the browser that reads the javascript before it gets executed by the javascript engine. With modern Web applications such as Gmail or Facebook sending close to 1Mb of javascript, being able to still read all of that code instantly matters in the quest of responsive user experience.
Thanks to Nicholas’s work, our parser is now almost twice as fast as it used to. This adds up well with our constant work to improve the execution speed of our javascript engine.

First Steps of Azure

After the layout engine (Gecko) has computed the visual appearance (position, dimension, colors, …) of all elements in the window, the browser asks the Operating System to actually draw them on the screen. The browser needs an abstraction layer to be able to talk to the different graphics libraries of the different OSes, but this layer has to be as thin and as adaptable as possible to deliver the promises of hardware acceleration.
Azure is the name of the new and better graphics API/abstraction layer that is going to gradually replace Cairo in hardware accelerated environments. In Aurora 7, it is already able to interact with Windows 7′s Direct2D API to render the content of a <canvas> element (in a 2D context). You can read a detailed explanation of the Azure project and its next steps on Joe Drew’s blog.

Other Improvements



  • Specifying invalid values when calling setTransform(), bezierCurveTo(), or arcTo() no longer throws an exception; these calls are now correctly silently ignored.
  • Calling strokeRect with a zero width and height now correctly does nothing. (see bug 663190 )
  • Calling drawImage with a zero width or height <canvas> now throws INVALID_STATE_ERR. (see bug 663194 )
  • toDataURL() method now accepts a second argument to control JPEG quality (see bug 564388 )



  • XLink href has been restored and the MathML3 href attribute is now supported. Developers are encouraged to move to the latter syntax.
  • Support for the voffset attribute on <mpadded> elements has been added and behavior of lspace attribute has been fixed.
  • The top-level <math> element accepts any attributes of the <mstyle> element.
  • The medium line thickness of fraction bars in <mfrac> elements has been corrected to match the default thickness.
  • Names for negative spaces are now supported.


  • The File interface’s non-standard methods getAsBinary(), getAsDataURL(), and getAsText() have been removed as well as the non-standard properties fileName and fileSize.
  • The FileReader readAsArrayBuffer() method is now implemented. (see bug 632255 )
  • document.createEntityReference has been removed. It was never properly implemented and is not implemented in most other browsers. (see bug 611983 )
  • document.normalizeDocument has been removed. Use Node.normalize instead. (see bug 641190 )
  • DOMTokenList.item now returns undefined if the index is out of bounds, previously it returned null. (see bug 529328 )
  • Node.getFeature has been removed. (see bug 659053 )



  • WebSockets are now available on Firefox Mobile. (see bug 537787 )

console API

  • Implement console.dir(), console.time(), console.timeEnd(), and console.groupEnd() methods.
  • Message logged with console.log before the WebConsole is opened are now stored and displayed once the WebConsole is opened.

(see the Web Console page in the Wiki)

Web Timing

View full post on Mozilla Hacks – the Web developer blog

Tagged on: ,

20 thoughts on “Aurora 7 is here

  1. sun

    I have been using Chrome, but maybe I can stick with Firefox now with these speed and memory improvements. 🙂

  2. Seth

    consider all the fantastic ways advertisers will abuse this technology to torment and violate surfers!

    the professional privacy-rapists will be gleeful

  3. art

    when xulrunner 6 and 7 be publish for Window? We worked on plugin and they are no longer compatible with Firefox 6 and 7.

  4. Rob

    This IS ANNOYING!! I runs too fast, uses too little RAM and 7.0a2 (2011-07-09) HAS NOT crashed yet on me, Linux or Win7!
    How can I justify a new PC??? My CPUs idling even on MS test…
    even the restart from beta to read the “…” only took a few seconds.
    Boring, boring I have TOO little to complain about!

  5. louisremi

    The Web Timing specification has been split into smaller specifications and we implement the Navigation Timing one.

  6. nnethercote

    About the faster JavaScript parsing — those improvements trickled in gradually over more than a year. A lot of them were already in FF4, some more got into FF5. The last ones might have got into FF6? Not sure, I can’t remember the exact timing.

    So, the JS parser is almost twice as fast as it was in 3.6 🙂

  7. eobe

    One thing that still bugs me. It probably has a bugzilla entry but i’m not sure. it’s so simple:

    if you load a page that takes a long time to connect (stays on “connecting…” a while) and you decide to type another URL.. and in between the page finally connects and loads a redirect, the URL you are typing will be deleted and replaced by the redirected page URL, interrupting your typing and losing the URL you were typing completely!

    This annoys me each and every time. Note that Chrome does that right:
    Whenever the user is editing the URL the browser should NEVER overwrite or change it. It should only do so when the URL text field is NOT focused by the user.

  8. Boris

    Turns out it’s a hard problem as soon as you try to implement it for any but the simplest use cases (e.g. if you have bidi text involved). None of the other implementations actually agreed with each other on how it should work, for example.

Leave a Reply