Firefox UI mentorship program

11 February, 2015 § 3 Comments

Update: Due to a large number of responses, I will be letting people know today, February 14th (instead of the previously mentioned February 13th).

Cheesy announcement graphic :PSince I joined Mozilla I’ve been looking for ways to increase the opportunities for new people to get started working on the Firefox user interface.

I’m now ready to try something that I’ve been thinking about doing for a little while.

I’m looking for four people that I will mentor and help along as they fix bugs across the Firefox user interface. The first bug will be an easy one to get started with the codebase and comfortable building the browser, and they will increase in difficulty from there. At the end of the program you will be able to say that you’ve made some large contributions to Firefox. We will use JavaScript, CSS, and XUL (similar to HTML).

The project will be about six weeks long, starting February 16th and ending March 31st. During this time, I will be available to meet through video chat, IRC (text-based chat), and email.

If you are interested in working with me and have at least two to three years of classroom experience in Computer Science (or equivalent open source experience), please send an email to along with:

  • Your name
  • A short 1-2 sentences about any open source experience you have
  • And a rough estimate of how many hours per week you think you could dedicate towards the program.

I’ll let you know if you’ve been accepted by February 13th 14th. Thanks!

Status update – In-content Preferences, part 4

31 January, 2015 § 1 Comment


We are now about half-way through the normal development cycle of Firefox 38. In about 3-4 weeks, what is currently “Nightly 38” will become “Firefox Developer Edition 38” (previously known as Firefox Aurora). At this point, beta builds of Firefox 36 will now revert back to the old-school preferences implementation. Firefox Beta will see the in-content preferences get more testing at the beginning of the Beta 37 iteration.

These are some of the bugs that have been fixed since the last update:
Bug 1022582 – Checkboxes and radio buttons in about:preferences lack any indication they’re checked/selected when using High Contrast mode
Bug 1043346 – InContent Prefs – Dialogs should have their dimensions reset after closing
Bug 1008172 – Scrolling up and down on pages with scrollbars in about:preferences will change subgroups (the Advanced subpanes)
Bug 1012223 – in-content preferences loading slowly

I’ve gone through the remaining bugs and attached both a “point” value as well as priorities for the bugs. Point values follow the Fibonacci sequence, and should roughly approximate the difficulty of fixing the bug. Priorities range from P1 to P3.

P1 bugs are considered those that block using the feature, as well as those that are highly visible. We are tracking three P1 bugs:
top_1Bug 1108302 – Font size select list shows ellipsis instead of selected value (points = 1)
top_1Bug 1044597 – in-content preferences: resized dialogs should not push buttons into overflow (points = 3)
top_1Bug 1047586 – Unable to interact with In-content preferences after changing Font size (points = 5)

The full list of bugs can be found on Bugzilla.

Big thanks to Richard Marti, Shubham Jindal, and Gijs Kruitbosch for helping to fix the previously-mentioned bugs.

On volunteer and internship opportunities at Mozilla

29 December, 2014 § 2 Comments

About a month ago on a flight from Seattle to New York I met a lady who said that her son was studying computer science. I told her about the work that is being done at Mozilla and how we have a lot of opportunities for people who want to contribute to one of the world’s largest open source software projects.

Today I got an email from her son asking about internship opportunities. Her son is just getting started in computer science and has yet to take his introductory courses in CS. There are many people that are in his position and I believe that they can still contribute to Mozilla and gain valuable experience for their future. Below is my response to him:

Hi ____,

Thanks for the email. It was a pleasure to meet your mother on the flight.

Internships at Mozilla require a solid CS basis and will probably be too challenging to undertake before completing your introductory courses. However, that doesn’t mean that there is nothing that you can do at this point. With a basic understanding of HTML, CSS, and JavaScript, there are probably a number of bugs that you could fix today within Firefox.

I would recommend that you spend time this summer, either the whole summer or a period within, as a volunteer contributor to Mozilla. Many of our interns and full-time employees contributed to Mozilla or other open source software projects before joining Mozilla. There are two major benefits for doing so: familiarity with the project and what type of work people do; and practicing the skills necessary to succeed during an internship or full-time role.

I understand that volunteering can present its own time and financial challenges as it is unpaid, but one of the benefits of volunteering is that the work can be done at your own pace and on your own schedule.

You can take a look at the following bugs if you would like to see what the type of work may look like:

As you contribute, more responsibilities will be given to you and you’ll feel confident working on larger tasks.

Let me know if you are interested, and I will find some bugs that are available for you to fix.


That offer at the end of the email is not something that people can only get by bumping in to me while traveling. If you are reading this blog post and you would like to learn how you can contribute to Mozilla, please join the #introduction channel on and ask how you can get started. Be patient however, it may take a couple hours to get a response from someone due to timezones and busy schedules.

Faster and snappier searches now in Firefox Aurora

1 August, 2014 § 17 Comments

nice-red-running-foxIn case you haven’t noticed yet, Firefox Aurora contains some great speed ups when searching from the location bar. For far too long, searches that consisted of a single-word or arithmetic expressions would either result in errors or long delays before a search results page was presented.

This has all changed starting in Firefox Aurora. Take for example, a search for “867-5309”:

Previously when a single word was typed in to the location bar and Enter was pressed (or the Go button clicked), Firefox would look for a website at http://867-5309/. After the lookup timed out, Firefox would redirect to a search for “867-5309“. If the hyphen was removed and “8675309” was entered, Firefox would immediately go to an error page saying that it was unable to connect to the server at 8675309.

Some people may have become accustomed to placing a `?` at the beginning of the location bar to subvert this behavior. With the new Firefox Aurora, this is no longer necessary.

Slow and broken search behavior seen in Firefox 32 and older

Slow and broken search behavior seen in Firefox 32 and older

Now, in both of these cases Firefox will kick off the search request immediately. In the background, Firefox will look for locally-hosted sites that have a hostname matching the value that was typed in. Most people will see search results on average 5 seconds quicker!

In cases where there is a potential match, Firefox will show a notification bar asking if the locally-hosted site was the intended destination. Clicking “Yes, take me to 8675309” will navigate to the matched site and whitelist it for future.

Screenshot of new behavior coming in Firefox 33

Screenshot of new behavior coming in Firefox 33

Whitelisting a serverIf you’d like to proactively whitelist a site, you can go to about:config and create a new Boolean pref with the name of `browser.fixup.domainwhitelist.` followed by the single word that you would like whitelisted. Set the pref to true, and the search will be skipped. localhost is already whitelisted.

Firefox continues to gain speed, customizability, and security with each release. This feature will find its way to the Release population with Firefox 33. In the meantime, you can install Firefox Aurora or Firefox Nightly and begin using it today.

There are two minor cases left to fix:

  • Queries that end with a period still fail. This is in the process of being fixed and can be tracked at bug 1042519.
  • Queries containing a period in the middle also fail. This is not currently being worked on, but is tracked at bug 494092.

New in Firefox Nightly: Experimenting with context menus

27 May, 2014 § 28 Comments

Starting today, users of Firefox Nightly will see a new look to the classic context menu.

New context menu

Context menus on desktop browsers have changed very little since Firefox 1.0 was introduced. Meanwhile, new devices have brought new concepts to context menus. The context menu on Firefox for Android is much more graphical, showing recognizable symbols at a glance.

Context menu in Firefox for Android

Switching frequently used menuitems to their iconic forms can improve the usability of the menu, as it can make it easier to find the menuitems at a glance as well as click on. One way to visualize the difference is by performing what is known as a “squint test”. The image on the left is the old Firefox context menu, and the image on the right is the new Firefox context menu.

Squint test of old (left) vs. new (right) context menu (Gaussian blur=3)

Squint test of old (left) vs. new (right) context menu (Gaussian blur=3)

Looking at the squint test above, not only is it easier to see the actions of the buttons at the top, but we can also see that the new menu feels a bit leaner.

We don’t have plans to switch all menuitems over to their iconic forms, mainly because many menuitems lack a well-understood graphical metaphor. We’ll keep experimenting with our context menus, hopefully adding the ability to customize them just like the rest of Firefox.

Known issues: The context menus found in today’s Firefox Nightly are still missing a couple finishing touches that we are going to follow up with:

  • The icons being used are not the right size and are lacking HiDPI versions
  • The bookmark star is not shown as filled-in when the page being right-clicked on is already bookmarked
  • OSX is missing the inverted icons, currently showing grey icons on a blue-hovered background

Refinements to the Linux theme in the new Firefox

30 April, 2014 § 1 Comment

Firefox on GTK Linux now matches the look of Firefox on Windows and Mac OS X. The new Firefox brings interactions and visual designs that were present previously only on Windows and Mac OS X to Linux to provide a more familiar user experience to Firefox users regardless of platform.

Keyhole on Linux

Firefox on Linux with forward button

Firefox on Linux now has the familiar “keyhole” design. This design is an immediately recognizable feature of Firefox, and is shown by the shape of the back button connected to the forward button and location bar.

Many brands have identifiable shapes such as the Mickey Mouse ears that Disney uses, and the curvy bottle shape of Coke. These shapes are immediately recognizable as part of their respective brands, and bringing Linux in to the mix is something that has been on the Firefox front-end team’s backlog for a while now.

I’m really happy to see the keyhole shape now present on all of our tier-1 platforms: Windows, Mac OS X, and now Linux (GTK).

Icons on LinuxAnother large refinement that has been brought to Linux is new toolbar icons for buttons such as the Home, Back/Forward, and tab close buttons. The iconography of our Linux version now matches that of Windows and Mac OS X.

These changes help unify the experience of Firefox users independent of platform, while also allowing for a faster pace of development for the people working on making Firefox.

If you’re already running Firefox, it will automatically update to the latest version. If not, you can download Firefox now, always free and always open.

The fresh and furiously fast Firefox

29 April, 2014 § 4 Comments

One of the less covered parts of this week’s Firefox release is high attention that was placed on the performance of the redesign of the tab shape.

The new Firefox introduces a new tab shape that is consistent with Firefox for Android, FirefoxOS, Thunderbird, as well as the web properties of Mozilla.

Firefox for Android

Firefox for Android

Firefox on desktop PCs


As the Firefox team was implementing this new design, performance was a key metric that was measured and focused on. We wanted to not only bring a beautiful design to users, but one that matched the new sleek shape with an equally speedy outcome.

Each time a change was made to our source control repository, a fresh build of the browser was created and run against a suite of automated tests that measure the performance of the build. These results are then compared against the results of prior builds, allowing the team to track improvements and regressions.

One such test that was used is called TART, short for Tab Animation Regression Test. The test works by opening and closing tabs and measuring the amount of time needed to paint each frame of the animation. Normally Firefox only attempts to paint one frame every 16ms (equivalent to 60fps) but during TART that limit is disabled.

Users of Firefox can have infinite variations of hardware setup, some of which are much slower than our testing infrastructure. By trying to paint as fast as possible, we can get a number that will represent the maximum bound for our graphics performance on our fixed-setup testing infrastructure. By tracking this number, we project that the full Firefox user-base will on average see proportional performance gains.

Now to the numbers

Tab OpeningTab closingIn the previous version of Firefox on Windows 7, Firefox took an average of 3.52ms to paint each frame of the tab opening animation [1]. With the new version of Firefox, we have gotten this number down to 2.81ms, which is a 20% speed up!

When it comes to closing tabs, we saw a shift from 2.72ms to 1.88ms [2], an amazing 31% speed up!

Gains like the above only happen when a solid testing framework is in place and an equally solid team keeps performance as a top priority. Cheers to everyone that has helped make the new release of Firefox the fastest yet.

If you’re already running Firefox, it will automatically update to the latest version. If not, you can download Firefox now, always free and always open.

[1] icon-open-DPI1.all.TART (Fx28 1b8f6597b67f vs Fx29 f1c211a4714d)
[2] icon-close-DPI1.all.TART (Fx28 1b8f6597b67f vs Fx29 f1c211a4714d)

Fast fox

[Update: Thank you to Benedikt who in the comments below corrected a math error that I made with the percentage of improvements]

Where Am I?

You are currently browsing entries tagged with mozilla at JAWS.