The benefits of slow-motion videos of user interface features
The people working on Firefox have been spending a lot of time recently making sure that the browser is not just running with the highest performance as possible, but also running with the best perceived performance.
There are some cases where animations in the user interface may appear jerky, having large pauses or stutters while transitioning from one state to another.
One example is the transition from an open tab to a closed tab. In today’s release version of Firefox, tabs close by reducing their width to 0 pixels while also reducing their opacity to become transparent at the same time. With these two animations occurring at the same time, the tab becomes invisible much earlier than its width becomes 0 pixels. This results in a visible hole in the tab strip.
Starting in Firefox 12 (currently in the Nightly phase), the animations delay the fading of the opacity to a later time to remove this visual hole.
Finding an issue like this may be easy, but seeing at a slow speed what is happening and if a fix works better is hard. Since these animations run pretty fast, developers need to slow the animations down.
Asa Dotzler used Camtasia Studio and recorded the tab closing transitions at 60 fps (Camtasia Recorder -> Tools -> Options -> Inputs -> 60 fps) and then encoded them at 15 fps (Save and Edit -> right-click on clip -> Clip Speed -> 25%). This provided us with a slow-motion reproduction of the animation (only animates in Firefox, click on the image to see the animation):

After Asa created the animation, Dao Gottwald put together a patch that tweaked the timings of the various transitions. I put together a new recording that showed the effect of this change (click on the image to see the animation):

Recording user interface features can really help get a detailed look at how the software looks and feels. Maybe there will be an opportunity for you to use software like this in the future
MSU CSE Capstone update 1/23
Today is the beginning of the third week of the in-content preferences project.
Last week the team landed their first patch and began working on fixing their second bug. Work has begun on moving the tabs pane to an in-content page, and the team has started to play with browser-chrome-tests, mixing XHTML and XUL, and putting together a project plan.
The basic plan of the the architecture is to place all the panes within one document and show/hide the panes when navigating the preferences. We can use pushState/popState to allow for forward/backward navigation, as well as perform in-content searches by showing/hiding the relevant sections.
The organization of the preferences will remain the same as it is today in Firefox. Any work on reorganizing the current preferences will be handled in a later phase that is not part of this project.
As a side note, I will be out of town for the next two Mondays but I will try to post updates when possible.
Requesting feedback and ui-review for desktop Firefox front-end changes
TL;DR: Desktop Firefox feedback and ui-review requests should go to ux-review@mozilla.com now instead of an individual.
For a long time, one or two members of the Firefox UX team received the majority of feedback and ui-review requests. Sometimes an the requestee goes on vacation, leading to slow feedback loops and stalled work.
The reality is that submitting patches that alter the user interface of Firefox doesn’t need to be a scary or long process. I’ve been working with the UX team to put together a set of steps that contributors can take when they want to get feedback or ui-reviews from the UX team.
Asking for general direction?
There are times where you may not know in which direction to go. There is nothing wrong with implementing what you think will provide the best user experience or implementing multiple variations of your idea. Sometimes the experience of implementing another idea may show advantages and disadvantages in the design and help with your decision making.
If you still have some general questions about design, please don’t hesitate to join the #ux channel on IRC. If somebody doesn’t answer your questions, just ask again in a few hours (people may be sleeping due to timezone differences).
Looking for specific feedback or ui-review on your patch?
If you’re about to upload a patch and request feedback or ui-review, please link to either a screenshot, screencast/video, and/or try-server builds that contain the patch.
Here are links to some good software that can be used to create screenshots and screencasts:
- TechSmith Jing (free and paid version makes PNG screenshots, free version makes SWF videos, paid version makes MP4 videos)
- TechSmith Camtasia Studio/Camtasia:Mac (useful for detailed/longer screencasts)
- Quicktime X/Player included on Snow Leopard and higher can do screen recordings (File > New Screen Recording)
- Miro Video Converter (to convert videos to WebM format for easy viewing in the browser)
Please attach your screenshots/screencasts to the bug, since Bugzilla will probably outlive an external media hosting website.
After attaching your media, please flag the special UX email address, ux-review@mozilla.com, for feedback or ui-review.
Expectations of the UX team
The UX team has a goal of responding to feedback and ui-review requests within 48 hours.
Credits
Special thanks go out to Jennifer Morrow (Boriss), Frank Yan, Matthew Noorenberghe, David Lawrence, Ann Ignacio, Henry Langi, and Alex Limi for their help in putting this all together.
For more information
If you have any changes that you would like to make or to see the most up-to-date version of this document, please see the page on developer.mozilla.org.
MSU CSE Capstone update 1/16
Today is the beginning of the second week of the project. On Friday, Blair and I met with the students and went over project specifications and more details of contributing to Mozilla. This is a relatively short update since the course just started and the team is still finding their way around the Mozilla codebase.
The team is comprised of four senior Computer Science students (pictured from left to right):
- Zuhao (Joe) Chen
- Owen Carpenter
- Devan Sayles
- Jon Rietveld
The team got builds up and running on Windows and Mac OS X and are close to getting their first bug fixed. I wrote up a short tutorial to get the students introduced to the preferences code in Firefox and they’ve gone through the tutorial and made their first sample preferences page. They are also busy at work putting together a project plan that Blair and I will review and provide feedback on. The students were also introduced to Zhenshuo Fang from the Firefox UX team, who is leading the user experience of the feature.
I have filed a tracking bug for the project and will file dependent bugs once we have fleshed out the smaller chunks.
How-to guide for the esoteric cheevos in Cheevos for Firefox (Part 1)
There are a few cheevos in Cheevos for Firefox that are esoteric and hard to win through normal interactions with the browser.
One example is the Yo Dawg cheevo. The hint for this cheevo is, “I heard you like browsers”. If you’ve ever seen MTV’s Pimp My Ride television show, you may recall Xzibit pimping peoples cars by redecorating their trunk to resemble their favorite hobby. Xzibit would often say lines such as, “Yo dawg, I heard you like basketball, so I put a basketball court in your trunk so you can play basketball even when you’re not at a basketball court.”
Through the power of the internet, this morphed in to a meme that represents recursive levels of repetition. For example, the image on the right could carry along a phrase of, “Yo dawg, I heard you like pizza, so I put a pizza inside of your pizza so you can eat pizza while eating pizza!”.
Well … it turns out that you can actually put Firefox inside of Firefox.
So now you know where the “Yo Dawg” achievement comes from. To see this for yourself, try the following:
- Open Firefox (shame on you if you’re not already)
- Copy and paste this URL in to your address bar:
- chrome://browser/content/browser.xul
- Hit enter
You will now see Firefox running inside of Firefox! This is a pretty cool trick, and it showcases the power of the user-interface programming language that Firefox uses to create itself.
This technology is XUL, pronounced as zool, and is very similar to HTML. Firefox also uses CSS and JavaScript. So with XUL, CSS, and JavaScript, Firefox is very similar to an extremely complicated web page that has more privileges than normal web pages
I hope you learned something. If you’re not already using Cheevos for Firefox, give it a try today and let me know what you think about it.

Recent Comments