28 March 2008 - 23:22Why I Worked On Firefox

Perhaps being stressed out and tired and after having some drinks isn’t the best time to write blog posts, but this is something I’ve been thinking about over the last few days. And I suppose in other conditions, I definitely wouldn’t be as open about this as I probably will be. I’m not accustomed to talking about personal things in person and especially not blogs. I tend to focus on objective things that “gets things done.”

So why did I work on Firefox?

Maybe I like to help people. Maybe I just like making things better when I see a problem that I can fix. Maybe I just want the world to be a better place. Or maybe I just like to work long hours. I do all this even if I don’t get much out of it. I suppose good thing about Firefox is that it’s open source and anybody can contribute and there are many people to help.

I recently sent Gerv an after-summer-of-code update and only then realized how much I’ve worked on. How much I wanted to help those people have a better experience. How many problems I saw that I could fix.

Both the download manager and location bar were being changed for the better, but there was so much more work to be done. Just to list a few things, I’ve added better download manager functionality with cross session resumable downloads, auto-pause/resume on sleep/wake, auto-resume on browser restart/crash, various fixes for saving files and some download status bar work.

Additionally, there’s the redesigned download manager UI work with the full listing of downloads and the ability to do multi-word search against any text shown in the list, and providing a way to display download progress / speed / times consistently as well some localization support for plural forms.

And of course there’s the work to make the location bar awesome. I wasn’t happy with the location bar return seemingly random results, so I decided to make things better. I started with the adaptive learning, but along the way I added in multi-word searching across urls, titles, and tags as well as word boundary matching. I also pushed patches for emphasizing all matches and cleaning up the display to be more compact as well as correct for foreign characters. There are also performance fixes to make results come back faster and render with less work.

Unfortunately, there were costs in making things better for everyone else. I haven’t been concentrating on my coursework, and my assignments have been partially completed when I turned them in. I’ve been tired and feeling burned out.

Just last week, I easily spent over 100 hours on Firefox stuff for my 1-week spring break. I wasn’t catching up on my assignment that was due the week before. Why not? There are still many things that I feel should be fixed.

I suppose I finally couldn’t take the stress from keeping things in, so I talked / cried / discussed with my Ph.D. advisor about things. He has been very good to me even though I haven’t focused as much on my research as I should have. Especially that he’s paying for my research assistantship and my tuition waiver. So I suppose unofficially, all my work on the Download Manager and the AwesomeBar has been funded by my advisor. (Apparently the download manager, location bar, and download manager again are the top 3 favorite features of Firefox 3 at mozillalinks, so I hopefully his money didn’t go to too much waste.)

But just working long hours isn’t really that bad. And I never really minded before, so I guess there must be something else.

It might be related to the improportionate amount of effort that I put in and what comes out. For those who followed the adaptive learning work to make the location bar into AwesomeBar, you might have noticed the code was pretty much ready when I first wrote about it in my blog early November. It wasn’t until a quarter of a year later (and almost 20 versions of the patch — mostly unbitrotting) that the patch got the appropriate bits twiddled so that it was high enough on the priority list to be reviewed and make it into Firefox 3.

I don’t think I did anything wrong in the process. I followed the rules and even provided extensive testcases. Perhaps there’s an issue with the code / review / approval path? For some reason, it just seems strange to me that only after people have done all the work writing the code, creating testcases, and getting reviewed does a final approval decision say yes or no.

It might also be that I try to fix too many things at once. I tend to have 10-20 patches on my mercurial queue stack, and the bases keep changing as things eventually get reviewed and modified. Maybe I’m creating artificial work unbitrotting myself, but that needs to be done when certain patches are deemed to be more important and I need to pull it from one end of my stack to the other.. Conflicts galore.

I realize it’s time to ship and changes need to cut back, so the process will have more hoops to jump through. But maybe I wasn’t expecting so many.

I still have a number of patches ready that add some neat things to the AwesomeBar such as being able to restrict searches to history or bookmarks and forcing matches against the url/title (additionally, you can set it up to force your queries to match against the url by default or only search non-bookmarked items). There’s also showing keyword queries and searching for strings as well as ignoring the protocol (e.g., “h” doesn’t match Http). Of course there’s tweaks to the adaptive learning to make it even better. But I suppose those will likely get to Firefox Next.

But back to unexpected hoops and tightening of the review process.. Earlier today, I was trying to make it easier to write download manager *test* code by adding a notification, and it was a very simple change to the download manager code. I simplified and cleaned up one of the testcases, but apparently it’s not good enough to review without at least 10 more testcases.

Also, I was trying to add in support for multiple-selection in the download manager so you can easily select multiple downloads to delete, pause/resume, etc. I even had a testcase locally that makes sure only selected items were deleted, but apparently the minimum number of things to test would be at least 20 more testcases.

But it’s getting late, and I suppose I’m feeling better already.. a little. Perhaps enough to even stick in an emotion 😉 . Maybe I’ll feel good enough by the morning to finally post about the new awesomeness of the AwesomeBar for Beta 5.. definitely with more pictures too. 🙂

11 Comments | Tags: AwesomeBar, Mozilla, UIUC


  1. beltzner says: 29 Mar 2008 - 6:03

    Ed, your contributions are deeply appreciated, and you know I’ve got nothing but admiration and respect for you. I also know that your efforts to produce tests that ensure your patches don’t hide regressions lends me absolute confidence when I see one come across the approvals queue.

    The problem I think your running into now is that near the endgame of our release we need to make sure that we understand which bugs we “could fix” versus which we “must fix” in order to put this product in the hands of our 160M users. Drivers and reviewers are, in my opinion, properly focusing almost entirely on the “must fix” side. Well-established flags (blocking-firefox3? / blocking1.9?) exist for determining if a bug lives in the “must-fix” camp or is a “wanted” bug for which we’d take a safe, reviewed, thoroughly tested patch. Why so risk-averse? Well, once we add functionality to a release, we are responsible for its behaviour. If that behaviour ends up being inconsistent (or regressing other, previously consistent behaviours) then we must add issues to the “must fix” pile, and that pile needs to be shrinking, not growing.

    Your commitment and dedication is admirable – though I do worry about you burning out, and think that you need to remember that there’s always another release! 🙂 – and I want to make sure that you feel like your work isn’t going to naught. Please remember that your contributions *always* have an effect. They help us prepare for the next version, they can be leveraged for add-ons that allow us to experiment with mainline features, and they keep the entire community thinking about how to improve things.

    In sum: I hope you do not feel unappreciated or unvalued. Let me say it here and now – Firefox 3 would not be as compelling an end-user product without Edward Lee’s contributions and dedication. 🙂

  2. […] my mind I knew my tone was too harsh, so I slept on it. After waking up, fixing it, and reading a particular post on planet, I see that I was in fact correct about there being frustrations with contributors. It’s […]

  3. bbarry says: 29 Mar 2008 - 7:33

    Is there any way some of your mods can become an addon? I’d hate to have to wait for Firefox Next for them. Alternatively does your hg stack get automatically built somewhere?

  4. schrep says: 29 Mar 2008 - 12:19

    Ed – your contributions have totally rocked. No question about that. This part of the release cycle is always quite stressful and frustrating because we have to lock things down to get the release out. That’s the bad news – the good news is the next release will be sooner than you think.

    So hang in there. Having your work used and loved by 170 Million people is quite an amazing achievement.

  5. […] posts from Shawn and Edward, who have been doing a great job with testing, I see that we’re hitting a bit of inertia with […]

  6. During a press briefing last week with high profile bloggers schrep introduced the awesome bar, and (somewhat to my surprise given the setting) he decided to literally call it the “awesome bar” as he introduced the feature to the audience of journalists. I won’t directly quote the journalists since I’m not sure they were on the record (how’s that for backwards) but one person immediately interjected to say that “awesome bar” seemed like an overly grandiose name and we weren’t exactly being humble. Immediately another journalist for a very high profile publication asserted “no, it’s awesome!” A third journalist agreed that the bar was indeed rather awesome, and schrep continued on explain the great new features in Firefox 3.

    I wish you could have been there, because seeing a group of professionally unbiased people come to the defense of a name as ridiculously over the top as the awesome bar, because that really is the most precise way to describe the awesomeness that is the bar, was a sight to behold.

    You are directly responsible for what users, and journalists, and our community, are asserting is our favorite feature in Firefox 3. Contributing to Firefox certainly has its costs, but given what you have accomplished I really hope you feel an incredible level of pride for what you have been able to achieve.

  7. Hey there, I’m just some Mozilla/firefox RSS lurker that registered to let you know I think your work is outstanding and I’m lovin’ the awesome bar.

    Keep your bites within chewing specs: Burnout is a bitch. Thanks for your contributions, and best wishes.

  8. stop working on download related stuff, those people get no respect 😉

    I’ve gotten burned out, in projects like these we put so much of ourselves into them and it seems like very few people appreciate it. it really can be a (nearly) thankless job…

    on the other hand, you’ve done some really cool & very visible changes that people will enjoy in a very high profile project. I’d love to be able to take advantage of your new changes now. even the subtle download changes, people may not rave about them, but they’ll certainly make a lot of people’s lives easier in small ways.

  9. louise6380 says: 17 Apr 2008 - 8:50

    I really love the new Awesomebar too.
    If there is a chance you could put improvements that didn’t make it into add-on, it would be real cool.
    Thank you for great work!

  10. Jeremy Bicha says: 31 Jul 2008 - 9:03

    Don’t get discouraged…you have had a significant impact on the millions who use Firefox 3. Turning in an assignment on time does not benefit society near as much. Balancing things is difficult, but I think you’ll manage. Good luck!

  11. […] I even ran into this same roadblock a couple years ago when I was trying to get the AwesomeBar into Firefox 3. Back then I was a random community member that had a good idea and was able to hack on stuff in my “free” (ha! ) time. It was only after a lot of prodding and persistence that got just a bit of what I worked on into Firefox 3, but that was all very stressful as I looked back on “Why I Worked On Firefox.” […]

Subscribe without commenting

Add a Comment