In this issue…
Firefox 3.1 Alpha 2 now available Drag and Drop is here Mozilla, Firefox and Google Chrome Andreas Gal on the TraceMonkey JavaScript engine TraceMonkey vs. V8: JavaScript performance Mobile Firefox, now with add-ons Designing a theme for Mobile Firefox Language-based interfaces Upcoming events Developer calendar Subscribe to the email newsletterFirefox 3.1 Alpha 2 now available
The second alpha version of Firefox 3.1 is now available for download. Firefox 3.1 Alpha 2 is built on a pre-release version of the Gecko 1.9.1 platform, and it is important to note that this release is intended for developers and testers only.
Firefox 3.1 Alpha 2 introduces several new features to the browser, including: support for the HTML5 “video” element, initial support for web worker threads, support for dragging and dropping tabs between browser windows, a new selector to create areas of Aero-style “glass” in XUL, support for new CSS 2.1 and CSS 3 properties, and performance improvements and new preference values for color management profile support.
Please note that this alpha release of Firefox 3.1 does not include the new TraceMonkey JavaScript engine — TraceMonkey is available in nightly builds and is currently disabled by default. For more information, see the TraceMonkey wiki page.
If you’re planning to download and test Firefox 3.1 Alpha 2, you should first read the release notes and the Firefox 3.1 for developers article. More information and download links are available in the DevNews release announcement.
Drag and Drop is here
Neil Deakin has posted a development update about the inclusion of the HTML5 drag and drop API in Mozilla nightly builds. “This is the API that IE and Safari have supported for a while. Now Firefox will support it as well so you can create content in your web pages that can be dragged and dropped elsewhere. The same API is also used for Firefox extensions and XUL applications.” For more information, including examples about how to make things draggable, see Neil’s weblog post. Drag and drop documentation is available at the Mozilla Developer Center.
Mozilla, Firefox and Google Chrome
As most browser-industry watchers know, Google has launched a beta version of a new web browser called “Google Chrome”. John Lilly posted about it at the time, and Mitchell Baker has written about it since, discussing how and why Mozilla and Firefox continue to be unique and vital in an increasingly healthy browser market where competition and innovation are again the norm.
Mitchell writes, “Mozilla exists to build portions of the Internet where individual human benefit, social benefit, and civic benefit are the most important things. [We] recognized long ago that an independent browser dedicated only to the public good is a necessary piece for building a healthy internet. Firefox is our first step in building that Internet. Clearly we need to continue to build great products, and to lead in a competitive market. Mozilla created this competitive environment through the success of Firefox, and I’m as confident as John is about Mozilla’s future.”
“We’ll continue to compete in the browser world, and we’ll continue to do well. We’ll continue to produce a product that people choose and trust and understand is theirs. We’ll continue to do this as part of our overall mission — building an Internet where individual, civic and social value are paramount.” Read Mitchell’s full post on her weblog.
Andreas Gal on the TraceMonkey JavaScript engine
For the past two months Andreas Gal has been working with the Mozilla team creating a just-in-time (JIT) compiler for the JavaScript engine in Firefox. On August 22nd the project (code named “TraceMonkey”) was added to the main Firefox development code base.
Andreas writes, “TraceMonkey is a trace-based (.zip PDF) JIT compiler and it pushes the envelope on JavaScript performance. On average, we speed up Apple’s popular SunSpider benchmarks by a factor of 4.6 over the last release of Firefox. For the SunSpider ubench suite, which focuses on core JavaScript language features, we achieve a speedup of 22x. Whichever metric you chose to apply, Firefox now has the fastest JavaScript engine in the world.” Andreas’ post goes on to discuss the concepts and background behind TraceMonkey in detail, including dynamic compilation with traces, trace trees and nested trace trees, and type specialization. You can read the full article at Andreas’ weblog.
TraceMonkey vs. V8: JavaScript performance
JavaScript is an increasingly vital aspect of web browser performance since many web applications (web mail, online word processors, and so forth) rely heavily on complex JavaScript programs for their core functionality. In the past year, JavaScript performance has gone through somewhat of a renaissance, with massive strides being made by JavaScript developers working on several different projects. The two most recent developments come from Mozilla and Google — Mozilla’s new TraceMonkey engine that is part of Firefox 3.1 development, and Google’s new V8 engine that is part of the Google Chrome beta.
Brendan Eich has run some performance tests, and has posted the results of the head-to-head showdown in which he pitted the engines against each other using the SunSpider test suite on Windows XP and Windows Vista (Google Chrome is not currently available for either Mac or Linux). Brendan writes, “[TraceMonkey] win[s] by 1.28x and 1.19x respectively,” but adds that SunSpider is “one popular yet arguably non-representative benchmark suite.” He finishes by pointing out that “this contest is not a playoff where each contending VM is eliminated at any given hype-event point,” going on to sketch the rough outlines of the approach the team is taking to further improve TraceMonkey performance.
Brendan’s complete test results and commentary are available on his weblog. Further information about TraceMonkey and JavaScript performance is available through web posts by Mike Shaver, Andreas Gal, and John Resig.
Mobile Firefox, now with add-ons
The recent release of Fennec (the code name for Mobile Firefox) Milestone 7 included the revolutionary addition of an Add-ons manager for the mobile browser. Mark Finkle has written a detailed post that talks about developing add-ons for Fennec, explaining its various similarities and differences to Firefox. “Fennec is a XULRunner application and gives extension developers access to the same underlying XPCOM system that is used in Firefox. The process of building extensions is the same as for any other Mozilla based application.”
There are significant differences, as well. “Fennec is not Firefox. It is a completely different application. Fennec’s UI is also very different than Firefox. This means you can’t just plop a Firefox (or Thunderbird or Songbird) extension into Fennec and expect anything to work. There are some basic things an extension developer will need to handle when making or porting extensions to Fennec.” These differences include: a different application id, a very different XUL UI, and different JavaScript objects and functions in the UI code, among other things.
Mark suggests that currently the best way to figure out what’s available is to look at the source code. If you have questions, jump into Mozilla IRC’s #mobile channel, and someone there should be able to help you out. Mark also includes some example Fennec extensions, which you can find linked in his blog post.
Designing a theme for Mobile Firefox
Madhava Enros and Sean Martell have been working on creating a default theme for the Fennec web browser (”Fennec” is the code name for Mobile Firefox). Madhava writes, “We’re trying for something that nods back in the direction of Firefox on the desktop while still striking out in a direction that’s appropriate for a small-screen finger-directed device. [Sean]’s posted some recent work to his blog, and he’ll be posting more there as we go. This is an effort still very much in progress, so please jump in with your suggestions. There’s a Fennec UI discussion thread ripe for contribution.” For more information and some mockups of the theme, see Madhava’s blog post.
Language-based interfaces
Jonathan DiCarlo has been writing a series of blog posts discussing language-based interfaces — interfaces that allow you type commands in real language and the right stuff happens. “What would the web be like if you could tell it what you want to do as easily as you currently tell it where you want to go?”
Mozilla Labs has started experimenting with linguistic interfaces that are designed to do just that, the first of which is the recently-launched Ubiquity project. Jonathan’s posts are an extensive look into the concepts, questions, and thinking behind the experiments, and he has written three so far — Language-based interfaces: The problem, Language-based interfaces: Where do we stand now?, and Language-based interfaces: Report card for Ubiquity. If you’re at all interested in these approaches and ideas you should read Jonathan’s blog then head over to the Ubiquity project to get involved with the growing community working on these experiments.
Upcoming events
Toronto, Sep 15-16, MozCamp: Two-day developer event full of talks, tutorials, and workshops. See the Toronto MozCamp wiki page for more information.
Paris, Sep 20, Add-ons workshop: A one-day event to bring together French-speaking XUL developers, hackers, and Web developers to discuss Mozilla technologies. See the Mozilla wiki MAOW page for more information.
Barcelona, Oct 25-26, MozCamp: A large, two-day Mozilla conference being held in Barcelona on the weekend of Oct 25-26, 2008. See the Mozilla Camp Europe wiki page for more information.
Developer calendar
For an up-to-date list of the coming week’s Mozilla project meetings and events, please see the Mozilla Community Calendar wiki page.
Subscribe to the email newsletter
If you would like to get this newsletter by email, just head on over to the about:mozilla newsletter subscription form. Fresh news, every Tuesday, right to your inbox.
by Genís