4 November 2007 - 20:50SmartBar to AwesomeBar
One of the most useful features in Firefox 3 is the smarter location bar which now selects pages from your history and bookmarks if your input matches any part of them. For comparison, Firefox 2 would only match the beginning of the URL – typically the domain name.
When the “smart” bar first landed, I was somewhat disoriented because I was so used to typing domain names to browse history and Firefox didn’t give those results back. For example, I would type “en” (for en.wikipedia.org) but get random results that happened to match “component,” “en-US,” “engineering,” etc.
There were some changes to the location bar to help address these issues, but more importantly, I soon learned to use it by typing in words from the middle of the URL or title. For example, I now type the course number 426 [cs.uiuc.edu] instead of typing out the whole “cs.uiuc.edu…” and scrolling down to pick that one out of the other classes that show up in my history. I can’t even use Firefox 2 in the computer labs anymore because it doesn’t have the “SmartBar” — others share [dietrich.ganx4.com] this same experience [blog.mozilla.com].
While the SmartBar is pretty smart, it can get confused sometimes. It currently ranks the results based on how often you’ve visited that page, so if you visit bugzilla.mozilla.org every day, typing any letter that matches the page will have it ranked first. This is fine by itself, but if you happen to visit other pages like planet.mozilla.org but not as frequently as bugzilla, Firefox will place bugzilla above planet if you type “moz”.
That’s not really too big of an issue because I happen to always go to those pages by typing other words: bugzilla.mozilla.org and planet.mozilla.org. However, if I wanted to visit mozillazine, Firefox puts other pages ahead of it. Every time I type “moz,” I only want to select the mozillazine entry. I want that entry to be the first result.
In comes AwesomeBar! That’s exactly what I’ve done for adaptive learning url bar autocomplete [bugzilla.mozilla.org]. Firefox will remember the text you typed and the page you selected, so next time when you give a similar input, Firefox will give a higher rank to those pages. It even matches partial inputs, so I can even type just “p” from planet, and Firefox knows to put that above other pages that just happen to also match “p”.
Continuing my example of bugzilla, planet, mozillazine.. The first time around, I type “mozillazine” and press down and enter to select the entry. Next time, when I type just “moz,” Firefox remembers that I selected forums.mozillazine.org and places it as the first result.
Assuming that I can convince some people that we should have this in Firefox 3, we can potentially get this in as early as Beta 2. There’s still a lot of opportunity for other adaptive techniques throughout Firefox, but even just looking at the AwesomeBar, there’s room to make it even smarter — adapting to shifting behavior. For example, Firefox has learned that you always visit planet when typing “plan,” but you’ve started doing development and now frequent xulplanet. Firefox could then realize it should give less ranking to planet.m.o and give more to xulplanet.
I’m sure others will come in and create great new adaptive techniques for Firefox. In the mean time, I’ll need to continue working on my Ph.D. research which happens to be somewhat related — making new adaptive compiler techniques that take advantage of key hardware features.
(Post date bumped up for planet.mozilla.org.)