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

HTML

  • The <a href="https://developer.mozilla.org/en/DOM/HTMLHeadElement" rel="custom nofollow">HTMLHeadElement</a> profile property has been removed, this property has been deprecated since Gecko 2.0. (see bug 664544 )
  • The <a href="https://developer.mozilla.org/en/DOM/HTMLImageElement" rel="custom nofollow">HTMLImageElement</a> x and y properties have been removed. (see bug 587021 )
  • The <a href="https://developer.mozilla.org/en/DOM/HTMLSelectElement" rel="custom nofollow">HTMLSelectElement</a> add() method before parameter is now optional. (see bug 182279 )

Canvas

  • 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 <a href="https://developer.mozilla.org/en/HTML/Element/canvas" rel="custom nofollow"><canvas></a> now throws INVALID_STATE_ERR. (see bug 663194 )
  • toDataURL() method now accepts a second argument to control JPEG quality (see bug 564388 )

CSS

  • <a href="https://developer.mozilla.org/en/CSS/text-overflow" rel="custom nofollow">text-overflow</a> is now supported.
  • The <a href="https://developer.mozilla.org/en/CSS/orient" rel="custom nofollow">-moz-orient</a> property has been fixed so that <a href="https://developer.mozilla.org/en/HTML/Element/progress" rel="custom nofollow"><progress></a> elements that are vertically oriented have appropriate default dimensions.

MathML

  • 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 <a href="https://developer.mozilla.org/en/MathML/Element/mpadded" rel="custom nofollow"><mpadded></a> elements has been added and behavior of lspace attribute has been fixed.
  • The top-level <a href="https://developer.mozilla.org/en/MathML/Element/math" rel="custom nofollow"><math></a> element accepts any attributes of the <a href="https://developer.mozilla.org/en/MathML/Element/mstyle" rel="custom nofollow"><mstyle></a> element.
  • The medium line thickness of fraction bars in <a href="https://developer.mozilla.org/en/MathML/Element/mfrac" rel="custom nofollow"><mfrac></a> elements has been corrected to match the default thickness.
  • Names for negative spaces are now supported.

DOM

  • The <a href="https://developer.mozilla.org/en/DOM/File" rel="custom nofollow">File</a> interface’s non-standard methods getAsBinary(), getAsDataURL(), and getAsText() have been removed as well as the non-standard properties fileName and fileSize.
  • The <a href="https://developer.mozilla.org/en/DOM/FileReader" rel="custom nofollow">FileReader</a> readAsArrayBuffer() method is now implemented. (see bug 632255 )
  • <a href="https://developer.mozilla.org/en/DOM/document.createEntityReference" rel="custom nofollow">document.createEntityReference</a> 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 <a href="https://developer.mozilla.org/en/DOM/Node.normalize" rel="custom nofollow">Node.normalize</a> instead. (see bug 641190 )
  • <a href="https://developer.mozilla.org/en/DOM/DOMTokenList.item" rel="external">DOMTokenList.item</a> 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 )

JavaScript

  • The <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/arity" rel="internal">Function.arity()</a> function has been removed; use <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/length" rel="internal">Function.length</a> instead.
  • The JSON parser has been re-written for improved speed and compliance. This includes a fix for bug 572279 .

Net

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

console API

  • Implement console.<a href="http://getfirebug.com/wiki/index.php/Console_API#console.dir.28object.29">dir()</a>, console.<a href="http://getfirebug.com/wiki/index.php/Console_API#console.time.28name.29">time()</a>, console.<a href="http://getfirebug.com/wiki/index.php/Console_API#console.timeEnd.28name.29">timeEnd()</a>, console.<a href="http://getfirebug.com/wiki/index.php/Console_API#console.group.28object.5B.2C_object.2C_....5D.29">group()</a> and console.<a href="http://getfirebug.com/wiki/index.php/Console_API#console.groupEnd.28.29">groupEnd()</a> 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

About louisremi

Developer Relations Team, long time jQuery contributor and Open Web enthusiast. @louis_remi

More articles by louisremi…


27 comments

  1. Gavra

    Wow! The speed! It’s amazing!

    July 7th, 2011 at 13:13

  2. Skoua

    It seems really fast!

    http:// is gone. :'(

    July 7th, 2011 at 14:09

  3. Aldonio

    I’m surprised about text-overflow: ellipsis, not the fact that it has been included, but the fact that Firefox didn’t have it until today :/

    July 7th, 2011 at 14:11

    1. 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.

      July 7th, 2011 at 16:12

  4. David Bruant

    “Function.arity” is not a function. It was a property that all function object had. There is no need for the parenthesis “()”.

    July 7th, 2011 at 14:25

  5. Claudio Cicali

    “Navigation Timing” link is broken

    July 7th, 2011 at 14:37

    1. louisremi

      Thank you, this should be fixed now :-)

      July 8th, 2011 at 11:37

  6. Brian Blakely

    Sneak ellipsis into FF6. It’ll be alright, just this once. ;)

    July 7th, 2011 at 14:52

  7. MrS

    How do I get the protocol back in the address bar?

    July 7th, 2011 at 15:08

    1. louisremi

      You can set “browser.urlbar.trimURLs” to “false” in about:config

      July 8th, 2011 at 11:29

  8. 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.

    July 7th, 2011 at 16:32

  9. PCビギナー

    コメントしてる人ってどうやってDLしたの?
    散々自慢しておいて、ボタンクリックしてもダウンロード出来ないよ
    一般ユーザは排除か。
    http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora-l10n/firefox-6.0a2.ja.linux-i686.tar.bz2

    July 7th, 2011 at 19:55

  10. 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 :)

    July 7th, 2011 at 19:58

  11. Jeff Walden

    The JSON parser rewrite was in Firefox 5, so it’s not new to 7.

    July 7th, 2011 at 20:31

  12. Georgiy Ivankin

    text-overflow: ellipsis finally! You made my day! Great work as always ;)

    July 7th, 2011 at 21:46

  13. Insano

    Yes, “http://” is gone from the URL bar. For future reference, take a look at Chrome to know what Mozilla will do next.

    July 8th, 2011 at 02:07

  14. Jason

    How much of the Navigation Timing and other related timing specifications is implemented?

    I actually tried some examples while the IE9 testdrive examples at http://ie.microsoft.com/testdrive/Performance/msPerformance/Default.html does work.

    It seems that the example given at http://webtimingdemo.appspot.com/ doesn’t work.

    July 8th, 2011 at 09:23

    1. louisremi

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

      July 8th, 2011 at 11:34

  15. 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!

    July 10th, 2011 at 06:47

  16. juan

    a ver como va

    July 11th, 2011 at 08:56

  17. 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.

    July 11th, 2011 at 14:00

  18. Seth

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

    the professional privacy-rapists will be gleeful

    July 12th, 2011 at 15:55

  19. sun

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

    July 14th, 2011 at 09:51

  20. Major

    太美了,FF竟然动作这么快,顶~
    that’s amazing~

    July 19th, 2011 at 06:53

  21. Sau

    Aurora is much faster than previous version, even when compared to firefox 7 beta 1 its faster.

    August 20th, 2011 at 10:09

  22. Annie

    Ok I am a geek with a great deal of confidence and no skill. So I am wondering should I download Aurora or am I going to regret it. I have 6 now and really am not very impressed.

    August 25th, 2011 at 08:51

  23. Dennis Schultze

    Tried the new Aurora and it imported ALL my bookmarks from FF 8.X Runs faster and not too many add-ons function with this new version…no surprise.

    Went back to FF 8.X and the bookmarks were all gone…Is this something anyone else noticed? Had to use a backup to restore.

    Dennis

    November 20th, 2011 at 08:52

Comments are closed for this article.