March 2012 Archives

42 Days

| 1 Comment

Johnathan posted about our 6 weeks release cadence and it's totally worth your time to read it.

Earlier this year I posted an update the 2012 Firefox roadmap and stressed the importance of executing on that vision. There are a lot of ambitious efforts in that Firefox roadmap and the other Mozilla roadmaps for Developer Tools, Platform, Apps, Identity, etc. and 2012 is going to be crazy competitive, with major operating system releases, a continued steep rise in mobile computing, and far too many threats to user sovereignty to count.

The good news, great news IMO, is that we're already kicking some serious butt this year and we're on track, early as it is, to having the best year yet for Firefox, Mozilla, and the Web.

The first quarter of 2012 is wrapping up and that makes it a great time to take a look back at what we've accomplished and a look forward to what's coming up next.

Let's reverse that and start with what's coming next and then move to what's already shipped.

In Q2 we have a lot of exciting things coming. Much of that feature and quality work is already well underway but still needs further development or testing help before it's completed and shipped to our users.

A few of the features are far enough along to have made it into the latest Aurora and Beta builds. If you're still using Firefox release builds, now would be a great time to join the Aurora or Beta program and help us finalize this work. You'll be doing yourself and our users a big service.

A taste of the Q2 roadmap, this is some of what you'll find there:

Firefox Home Tab additions: Firefox's start page, AKA Firefox Home Tab, is where users start their browsing session and where they land when they've closed their last tab. In addition to easy search, Firefox Home will become a launch point for managing all of your Firefox data.

A New Tab page powered by the Awesomebar: For keyboard users, opening a new tab and visiting a top site is super-easy thanks to the Awesomebar. For mouse users, Firefox's new tab page will include a "speed dial" like feature that provides Awesomebar-powered shortcut tiles for super-fast navigation.

Restore Firefox: For various reasons, a Firefox profile can become damaged causing performance and stability problems. Users will be able to quickly and easily restore Firefox without losing their passwords, history, and bookmarks.

Awesomebar In-Line URL auto-complete: In addition to the amazing Awesomebar pop-up list, users will have easy in-line address completion for even faster navigation.

Smooth scrolling: Scrolling pages is one of the most common user interactions on the web. With a new scrolling implementation, users will find web page scrolling to be consistently silky smooth.

Automatic Session Restore with Tabs on Demand: Most users prefer starting the browser right where they left off. Firefox is moving to a model that restores all tabs when a user starts up the browser but delays the loading of background tabs until they are needed. This will improve the performance and usability of Firefox just after launch.

Again, I encourage anyone interested enough in Mozilla and Firefox to be reading this blog to move your browsing over to the Aurora or Beta channel. You'll not only get a sneak peek at what's coming in a couple of months, you'll also be helping Mozilla deliver the best possible experience to almost half a billion users around the globe.

So that (and more) is what's coming up in the next few months. It's exciting stuff. But what about the first quarter? We had a very successful first quarter of 2012, delivering some really nice improvements. Here's what we prioritized in the Q1 roadmap and how those features made it out to users:

Add-on Compatibility: Our experience has given us confidence that the overwhelming majority of add-ons are not broken by new Firefox releases, so we are changing Firefox behavior from assuming add-ons are broken with each new release and managing exceptions with an allow list to assuming add-ons are compatible with each new release and managing exceptions with a disallow list.

Because of how we managed add-on compatibility based on major browser version and the change last year to a faster release cadence, many users found themselves inconvenienced as each new Firefox would disable some of their add-ons. We put a plan together to fix that and planned on having it completed early this year. We finished this work and shipped it to hundreds of millions of Firefox users on January 31st and the results so far are overwhelmingly positive. We still have some more to do for add-ons that contain binary components, but this was a huge leap forward in comaptibility with no major fall-out.

Chrome Migration: Firefox already supports migrating from other popular browsers. Users moving from Chrome to Firefox should be able to bring their data with them. We are building this capability into Firefox.

When we were getting ready to ship Firefox 1.0 way back in November of 2004 (yes, it really was more than 7 years ago,) one of the critical features we knew we had to have was a seamless migration from IE to Firefox. We knew that if people couldn't pick right up in Firefox where they left off in IE, that they probably wouldn't keep using it. Over the last couple of years, Google's Chrome browser has grown to a significant audience and an increasing number of new Firefox users are now coming from Chrome and it's important that these new Firefox users have a great experience. In support of that we kicked off a project to build migrators for all of the important Chrome data types. With Firefox 11, the release we shipped about a week ago, we delivered Chrome migrators for cookies, history, and bookmarks. We still have some follow-up work to get passwords, form data, and settings but we're making good progress.

Refreshed Media Controls: HTML5 media is increasing on the Web. The default media controls are being refined for usability and to include controls for new HTML5 features like full-screen viewing.

Mozilla pioneered the HTML5 <video> element and we've been improving it ever since. While many sites provide their own controls for <video> playback, browsers also need to support a fall-back set of controls. These are available when a site doesn't specify its own controls or when a video is viewed standalone rather than in a web page. Even fall-back controls should be beautiful, comprehensive, and easy to use. Most of the updates to our <video> controls have already reached users in Firefox 11 and the remainder is currently in Beta testing and will be released with Firefox 12 about a month from now.

Add-ons Sync: Firefox Sync makes it easy to move between computers and devices. In addition to syncing passwords, bookmarks, and history between Firefox installs, users are going to be able to sync add-ons.

For those of you with multiple computers, either a work computer and a home computer or a PC and an Android device, Mozilla has offered powerful syncing features for some time. You could sync your bookmarks, history, passwords, preferences, and tabs quickly and easily. But lots of folks asked for one more feature, the ability to sync their add-ons. This makes a lot of sense given how much people love to customize Firefox with add-ons. So in the just shipped Firefox 11 you can now sync your add-ons.

Firefox Hotfix: There are small issues that can occasionally affect Firefox users after a release. Correcting those small issues should not require a full Firefox update. With a new hotfix system, Mozilla can patch minor issues in Firefox without requiring a browser restart.

Every six weeks, Mozilla makes a new version of Firefox available to almost half a billion people. These updates are filled with new features, security and crash fixes, performance improvements, and new HTML5 capabilities. With so much changing in each Firefox release, it's necessary to restart the program for the updates to take effect. But every once in a while, Mozilla needs to ship a small change, perhaps a tweak to a preference or a minor security-related change. In those cases, we need to be able to deliver an update without the overhead of a full Firefox update and restart. Our new hotfix system, which makes that possible, shipped in Firefox 11 last week and so we can now patch that release or any newer releases without requiring a browser restart.

Developer Tools advancements: See the Developer Tools roadmap.

Mozilla launched the era of powerful tools for Web developers back before the launch of Firefox 1.0 with something called the DOM Inspector. The author of that tool went on to create Firebug, an extension for Firefox that really set the standard for modern Web developer tools. (Mozilla continues to invest in the development of Firebug.) Today, all of the major browsers ship a set of built-in Web developer tools and Firefox is no different. In Firefox 10 and 11 we added several really nice features including a beautiful (and powerful) Style Inspector, a Style Editor, and the very cool "Tilt" 3D View. There's still a lot more coming from the Firefox Developer Tools team, but we've made some really great strides in this first quarter of this year.

Web Platform advancements: See the Web Platform roadmap.

One of Mozilla's most important contributions to the Web has been our fierce advocacy for and the design and implementation of powerful Web platform features. Our recent releases of Firefox, and its Gecko rendering engine continue to push the boundary, delivering great HTML5 features like the HTML5 Full Screen API, element.outerHTML, the loop attribute for media elements, the CSS text-size-adjust property, the new <bdi> element for bi-directional text isolation & its supporting CSS properties, anti-aliasing for WebGL 3D content, CSS3 3D-Transforms, and a test implementation of SPDY.

Oh, and the Mozilla platform developers implemented a bunch of new device APIs so you can use the DOM to access things like the device's battery, vibrator, camera, and sms and telephony stacks. They've also got experimental implementations of a gamepad API and a mouselock API. All of that is coming together in an amazing new Mozilla project called Boot2Gecko.

And if that wasn't enough, we've launched a developer preview of Mozilla's Apps Marketplace as well as Mozilla's user-centric ID solution, Persona.

It's been an exciting Q1 for Mozilla and Firefox. We're already deep into Q2 work so stay tuned for further updates on our roadmap progress.

A while back I wrote about the end of Firefox support for Windows 2000 and a new minimum requirement of SP2 for Windows XP. Today, we've posted about that and the end of support for Firefox 3.6.

After two years of regular updates, we'll end our support for Firefox 3.6 on April 24th. In the years since Firefox 3.6, we've make incredible improvements to Firefox, including phenomenal HTML5 capabilities, Firefox Sync, faster JavaScript performance, support for the Do Not Track header, and an easier, quieter update process. Barring any major stability or security issues found over the next few weeks, Firefox 3.6.28 will be our last 3.6 release.

We strongly advise our users to upgrade from Firefox 3.6, as they will no longer receive critical security updates as of April 24th. In support of Firefox 3.6 users in organizations, we've delivered on our promise to implement the Extended Support Release plan three months ahead of ending support for Firefox 3.6. Enterprises and organizations should complete qualification and deployment of the ESR over the next month.

We'd also like to take this opportunity to announce that our minimum supported Windows version will change from Windows 2000 to Windows XP SP2 in Firefox 13. We never change minimum requirements lightly, but this support change allows us to significantly improve Firefox performance on Windows by using a more modern build system. Windows XP users are advised to update to the latest service pack, and Windows 2000 users should consider upgrading ahead of the June release of Firefox 13.

Happy to try to answer any questions you have. Oh, and if you're a Windows 2000 user and you simply cannot upgrade your PC to a more modern Windows version, I'm sure the good folks over at Opera will be happy to help you out. Moving to Opera means you'll not only get continued security updates, but you'll also be able to enjoy a modern browser experience.

I spent several days composing a lengthy post on this topic and just as I was getting ready to put it up, I ran across this slashdot comment from Mozilla's Robert O'Callahan.

If not supporting H.264 isn't reducing H.264 usage, but reduces the influence of Firefox by turning users away from Firefox, and increases the usage of Flash vs HTML5 video, then not supporting H.264 is a net lose for freedom and standards on the Web and supporting H.264 is the right thing to do for our mission.

That's basically my entire 7 paragraph post in one sentence. I'll save you reading what I wrote because this is much shorter and clearer.

ROC leads Mozilla's multimedia efforts and is also a fierce advocate for video freedom on the Web so I listen very closely when he speaks on these issues. I believe that in this one sentence he's made a convincing case that supporting H.264 in the <video> element in Gecko is the right thing to do for Mozilla's mission.

Mitchell Baker and Brendan Eich both have great blog posts up today covering the need to adjust our thinking about H.264 on the Web.

Brendan Eich: Video, user experience and our mission
Mitchell Baker: Video, Mobile, and the Open Web

I've been a part of Mozilla for nearly as long as Brendan and Mitchell and I've been a part of most of the really difficult decisions that we've made as a project for the last 12 years. I think that Mitchell and Brendan have made really solid cases for an adjustment but those posts are long so I want to highlight a couple of items in case you don't read all of what they've said.

One key value at Mozilla is giving our users a great experience. We want to build products that people love and that build openness and user sovereignty into the Web. "Products that people love" is a key part of this sentence. It's not a throw away phrase. It has meaning. It is a demanding goal and it must drive us -- just as the latter part about openness and user sovereignty drive us.

This says, better than I could the other day, why we should not frame this issue as trading our values against the easy or pragmatic path. Building products that people love is a Mozilla value. Building products that people love is not "the easy way out" or "a compromise", it is actually quite difficult and we've invested heavily over the years to do it.

Firefox supports only unencumbered formats from Gecko's <video> implementation. We rely on Flash fallback that authors invariably write, as shown above. Let that sink in: we, Mozilla, rely on Flash to implement H.264 for Firefox users.

And this gets to something I think is critically important. We already support H.264. We support it plus all the proprietary goop that comes with supporting H.264 via Flash.

Mozilla pioneered the HTML5 <video> element. We were the first to ship support for it and our support for the spec was far better and far more complete than what the other browsers shipped. The <video> element was a really exciting step forward for the Web. Unfortunately, for the last several years, while making sure Firefox had the best <video> implementation of all the browsers, Firefox has been discouraging use of the <video> element by favoring H.264 delivered via Flash. Because of this, the <video> element and all of the exciting possibilities for really mixing multimedia content with the rest of the Web have not realized their potential. Mozilla has been saying, in effect, "we prefer Flash over HTML5 video."

Is is for these reasons that I am firmly in support of enabling H.264/AAC for the <video> element. We will both advance HTML5 and the Web platform and make Firefox a product that more users can love.

App Tabs Tip

| 6 Comments

Today I notices that many of my Firefox app tabs had back and forward buttons enabled. That's really not desirable for my use cases. I want the first item in the app tab history to be the actual app tab URL and not "new tab" or any other back history so that if I do accidentally navigate away, getting back to the original app tab URL is just two clicks away (right click on back button, go to the oldest item in the menu.) I want for back and forward to not be enabled so that if I accidentally hit the back or forward keyboard shortcut it doesn't take me away from the app tab.

So how does one make sure that the first page of an app tab is the page you want and not some back history -- and not the "new tab" page? Simple. Just focus the addressbar in each of your app tabs and hit alt+enter. That will open them all in new tabs with no back history and no forward history. Then close all your old app tabs and pin all the new ones.

Maybe no one else actually wants or needs this, but just in case, now you know how.

Core Values

| 9 Comments

This week has been witness to the unfolding of a very interesting discussion about audio and video codecs on the Web. I have another post planned where I will weigh in on that debate, but before we get to that I want to clear something up.

I've read comments from a number of Mozilla contributors and the press where this discussion is being framed as pragmatism versus "core values" and I want to address that head-on.

A core Mozilla value is improving the Web experience for users.

Let me say that again. A core Mozilla value is improving the Web experience for users. We exist to ensure that human beings can shape their experience of the Web, that they are safe, secure, empowered -- in a word, sovereign.

Mozilla is a broad community of individuals with all kinds of values, many of them shared, and some not. Community-wide shared values include openness and transparency and participation; accountability and trust; interoperability and open source; and more. Mozilla has many values. But at the center of it all is putting human beings first.

This codec discussion is not about pragmatism versus values. It's about how we trade one value against another. When those kinds of trade offs becomes necessary, the core value of improving the Web experience for users cannot be ignored.

So Long, Chris Blizzard

When I first got involved with Mozilla, back in 1998, Chris Blizzard was there, hacking on xlib and gtk. In those very early days of the project, (and having no idea his age,) I looked up to him as a grizzled Mozilla and open source veteran. When I joined the leadership team, staff@mozilla.org, in 2000, Chris was already an integral part of that group and helped me get my bearings and then courage to move beyond QA community building into larger and more challenging roles. Soon after, when Brendan created Mozilla's first project management team, drivers@mozilla.org, and invited me to be a part of it in 2001, Chris shared a founding seat and taught me much of what I know about making large software releases happen. In late 2007, Mozilla was fortunate enough to be able to finally hire Chris into a full-time role and not long after that, in 2008, Chris became the manager for the Tech Evangelism team, where I was working at that time. After a couple of years there, he moved over to the newly created Mozilla Product team to run Web Platform and I eventually followed him to the Product team to become the Director of Firefox Desktop. He and I have been working together there to make Firefox the best browser in the world for users and Web developers.

Blizzard is leaving Mozilla and heading to a start up. I'm thrilled for him and at the same time I'm tearful and sad because I know that I'm going to miss him greatly and often.

Chris, you've been a mentor, a partner, and a friend to me for 12 years. You helped me find my way at Mozilla, on more than one occasion, and I will be forever grateful. Good luck.

Trees along my Drive to Work

| 3 Comments

A while ago I said on Twitter that I'd be posting some photographs of favorite trees along my drive to work. (Yes, I have favorite trees. Got a problem with that ;-) Well, I haven't got around to taking many more pictures because of all the rain but I promise to do more posts with photos of some of the beautiful trees that I see each day when driving up and over the mountain. Until then, here's a picture I took this morning of one of my not favorite trees.

This area of the country has been hit pretty hard by a number of tree diseases, including sudden oak death, and during our rainy season (November through April) many of the dead trees get water logged and drop branches or fall. A good number of them end up on the one and two-lane roads I take over the mountain from our cottage in the woods to Mountain View. Many of my neighbors carry a chainsaw in their cars, but we don't so if it's too big to drag out of the road, I end up working from home. Eventually the park rangers find it and call the county to clear it out, but that can sometimes take a while.

Search is a lucrative business on the Web and abusive add-ons and other downloadable apps like to hijack your search tools in Firefox so that they can make money off of you. Not only does this mean your searches might be routed to a less effective search site, but it may mean your searches are being tracked by unscrupulous people or companies.

If you're the victim of search hijacking, there's a one-click fix available from Mozilla.

Simply visit https://addons.mozilla.org/en-US/firefox/addon/searchreset/ and install the add-on. It will install, clean up your search settings, and uninstall itself all nearly instantaneously. You can walk away knowing that you've dealt a blow to the scammers and strengthened your privacy at the same time.

If you're not sure if you're the victim of search hijacking, go ahead and use the add-on. If your defaults haven't been changed, it won't do anything.

Thanks, Gavin Sharp!

Oh, and while you're at it, head over to the Firefox Plug-in Check to make sure your plug-ins are all up to date. If you're all up to date, take a look at that list and see if there are any plug-ins there you don't remember installing or using and disable those. To disable unwanted plug-ins, simply load up the Add-on Manager (from the Firefox menu on Windows 7 or the Tools menu on other platforms -- or by typing about:addons in the addressbar,) then click on the tab labeled Plugins. Once there, just click Disable on any plug-ins you don't recognize. (You can do the same for Extensions too.)

Think of it as spring cleaning. Your Firefox will feel a lot better after this minor tune-up.

update: be sure to un-check the "install some crapware too" checkbox on the Adobe Flash update site if you are updating your Flash because it was marked as insecure by the Firefox Plug-in Check page. Otherwise you'll probably end up with more search hijacking or other unwanted modifications to Firefox.

If you're reading news in the tech press that Firefox 11 is already out, be warned. They're lying to you. Firefox 11 is not out yet and isn't out until Mozilla announces it. It so happens that we're actually looking into a potential security issue and anyone downloading testing versions thinking they're getting the final version is being unnecessarily put at risk.

Yes, I'm pointing a finger at you ghacks.net. You are being irresponsible and endangering your readers to win a few ad clicks and that's not cool. And I'm pointing a finger at Neowin as well. Stop this.

You too, Brothersoft.

Working on Windows 8

| No Comments

If, like me, you're working on a project for Windows 8, this document outlining the Windows 8 common keyboard shortcuts is a must-have.

We're still in the very early stages, but if you want to know what we've got so far, check out Brian Bondy's blog post on getting a Metro-style Firefox going on Windows 8.

Finally, most of the press around browsers and Windows 8 is confused, incomplete, or completely wrong. If you want to know what's actually going on, I suggest you follow the Firefox development process. You'll learn a lot more than by reading the tech press. Also, if you have questions I'll do my best to answer here so ask away.

Firefox Memory and Performance

| 11 Comments

Almost 8 months ago, Mozilla launched a program called MemShrink with the goal of reducing Firefox memory usage. As Nicholas Nethercote notes, "Any single change that reduces Firefox's memory consumption can affect Firefox's speed, stability and reputation in a variety of ways, some of which are non-obvious."

Just over 3 months ago, Mozilla launched a program called Snappy with the goal of minimizing hangs and pauses, and maximizing Firefox's overall responsiveness.

These two projects have made Firefox dramatically better in fairly short order. After several friends and colleagues mentioned to me that recent Firefox Nightly, Aurora, and Beta releases were feeling particularly zippy, I decided to go back to Firefox 4 and compare. I spent the better part of a Friday and some time today using Firefox 4 as my primary browser (I spend about 16 hours a day in a browser for work and fun, so it's a non-trivial amount of usage.) Then I returned to the latest Firefox Nightly and WOW! is the difference remarkable. Swift, light, and agile are definitely words that spring to mind.

Firefox starts up noticeably faster, restores sessions instantly, pageloads are quicker, animations are faster and smoother, UI pauses are significantly reduced, and memory usage is way down.

I don't have performance profiling tools in front of me, but I can give you some sense of the memory improvements.

I spent a couple of hours running this memory experiment: I opened three popular tech news sites, The Verge, Gizmodo, and TechCrunch, and then opened 5 stories from each of those sites for a total of 18 open tabs with rich content including large images, a bunch of iframed social buttons, and lots of JavaScript. Next, I let the browser sit for about 10 minutes and watched the memory usage in Windows Task Manager. I then closed the browser and repeated the experiment 5 more times for each of Firefox 4.0.1 and Firefox Nightly (13). I averaged the low and peak memory usage for each of those 6 runs in both Firefox versions.

The average memory usage for Firefox 4.0.1 over the ten minutes of sitting with those 18 tabs open cycled between 884.5 MB and 963 MB. The average memory usage for Firefox Nightly (13) over the ten minute period with the same 18 tabs open cycled between 611 MB and 627.5 MB. That's a pretty big improvement in a very heavy usage situation. (The overwhelming majority of Firefox users have only 2 to 3 tabs open at any one time.) Not only was total memory usage significantly reduced, but the variations in memory usage under load were much, much smaller.

update: I did three runs in Chrome 17 and it averaged about 1.6 GB with those same 18 tabs open. That's more than 2.5x the memory usage of Firefox Nightly (13).

What's even more impressive than cutting Firefox memory usage by about 1/3rd, (update: and beating the pants off of the competition,) is that we did it while delivering dozens and dozens of new platform features including CSS3 3D transforms, CSS3 Animations, CSS3 hyphenation, CSS3 text-align-last, and CSS3 text-overflow: ellipsis; the DOM full-screen API, touch events, mouseenter and mouseleave events, composition events, blobbuilder API, chunked XHR, element.insertAdjacentHTML, element.outerHTML, event constructors, and window.matchMedia(); WebGL improvements including anti-aliasing, cross-origin textures with CORS, OES_standard_derivatives extension, and minimal-capabilities mode; ECMAScript 6 WeakMaps, and Map and Set objects, HTML5 "context menu", <progress> element, bdi element, crossOrigin attribute for <img> and <video> elements, media elements seekable() method, selectionDirection property for text controls, server-sent events, temporal media URIs, and the visibility API; WebAPIs including the Battery API, the Mouse Lock API, and Vibration API; SPDY support, HTML in XHR, a finalized Web Sockets API with Strict Transport Security and Binary Messages, a JS API for Do Not Track, and the Navigation Timing API; and to top it all off, a powerful set of built-in Web developer tools.

The Web is getting increasingly powerful. Web sites and apps are growing larger and more capable. And Firefox is supporting all that with increasing speed and decreasing resource usage.

Updating Blog Theme

| 1 Comment

I'm in the middle of a theme overhaul. I've got more to do but I'm pausing here. I'm pretty sure everything's readable on most browsers on most OSes, but if you see something horribly broken, please let me know in the comments. Thanks.

Monthly Archives