- Image via Wikipedia
Firefox generally runs pretty well for me, but a week ago, I started having problems. Google Reader was behaving weirdly and was basically unusable, and any use of GMail would make my Mac become slow (CPU would get pegged).
My suspicion (which was confirmed) was that one of the many Firefox add-ons I had installed was causing the problem. At the time, I had installed:
It turns out that Zemanta had a bug that was affecting GMail users and Mashlogic had a bug that caused the problem with Google Reader. Both companies were very responsive to my bug report (and in both cases had already started looking at the issue due to other user complaints) but during the process, I ended up doing quite a bit of debugging: installing this plugin, uninstalling this one, disabling, re-enabling, etc.
I didn’t mind all of this work that much because I do get a good deal of value out of both of the add-ons that were causing the problem. But, I was thinking about how I would react if I were a non-technical user. My guess is that I would just give up on Firefox and use IE again (or Safari on the Mac) instead.
Another topic that came to mind was the idea of add-on interoperability. Thankfully Zemanta and Mashlogic were not conflicting with one another, but originally I thought they might have been. Given that many add-ons these days are altering how pages are rendered, it would seem there is certainly an opportunity for weird interoperability issues to crop up. One thing that was quite interesting related to Zemanta was that the bug fix was on the server side. I did have to clear my cache and restart Firefox to fix the problem once Zemanta fixed it on their end, but I didn’t need to download a new version of the plugin (thanks Andraz!)
Are there any standards coming from the Firefox add-on community that will help to address some of the issues I outlined above?
I think the add-on ecosystem is awesome but feel like some of this stuff is what could prevent more mainstream adoption and acceptance, which is what I imagine most of the companies in the add-on space would want.
Related articles by Zemanta
- Greasemonkey: The 7 Best New Browser Tweaks from November and How to Use Them (readwriteweb.com)
- Why I’m still using Firefox (danielbru.com)
- 10 Greasemonkey scripts you shouldn’t browse without (downloadsquad.com)
4 comments
Hi John!
It is hard to imagine a good system that would prevent clashes, since these extensions directly modify DOM of the browser.
But there is one thing that could be improved for ‘page-altering’ extensions. A central point where you could just register the url-patterns and your extension would be called.
And there is another thing that would help immensly to debug problems, not just in extensions – ability to save the browsing session (basically a screen cast) for playback by the support team. :)
And thank you for patience regarding the bug we had. We have a very though testing process in place – both automated testing (Selenium) and human testing of platform+browser combinations before every release. But sometimes a bug slips through…
bye
Andraz Tori
John:
ExtensionSpace is still very much the Wild West when it comes to protocol and etiquette. This is a reprise of the battles of the 80s/90s that went on at the OS level (e.g. Windows) when each vendor would make a land grab for the networking stack, ports, registry, etc.
I’ve heard that a couple of browsers (e.g. Chrome, IE8) are attempting to address this with a mixture of event handler standards and partitioned security models. Those efforts are proprietary and do not solicit input from 3rd-party devs, so that leaves us free to trample your DOM and scatter your CSS 8-).
Thanks for using MashLogic. We released the fix earlier this week so you should see it in your add-on update.
Ranjit
PS: Andraz — good to meet you again
John:
Thanks to your article, found another great tool for Firefox. Mashlogic is terrific. Thank-you for writing about it…even though it was regarding a bug.
Thanks,
John
Just saw this article about Mozilla and their potential policy changes related to proper ‘extension behavior’
http://bit.ly/5so0A