Thursday, December 11, 2008

Add-ons Interacting Badly? Nope. report from AddOnCon...

I just wanted to call this out. I am at the Add-On-Con in Mountain View today. The keynote was good. Great questions, good back-and-forth, interesting responses.

I asked the panelists (reps from Conduit,,,, how much of their time or mental energy is taken up by dealing with confusions or bugs from cross-addon interactions.

I see this as a, theoretically, very serious problem. It was interesting, though, that the panelists said things like (paraphrasing):

- "browser upgrades are more of an issue. MS is bad about this and Mozilla is much better"
- "this does take up time, but the problems have gotten better"
- "Symantec should not try to clean up people's registry"
- "there are generic best practices and these could be more publicized"

I think the responses I heard speak well of how Mozilla has addressed or is addressing this issue. Considering how huge the problem could (again, theoretically) be, it is great that people who are actually relying on their add-ons to make money do not seem to be very upset or worried about it.


Wladimir Palant said...

I have to agree, add-on interaction is a minor issue. Adblock Plus follows the best practices to make sure that it doesn't have conflicts with other extensions in obvious places (such as conflicting variable names in browser overlays). As a result, the only issue in the last year that I can remember was browser overlay not applying properly because another extension decided to access the document before the window was loaded. I really spend a lot more time figuring out all the JavaScript+content policies+plugins issues that the users report regularly.

Alex Iskold said...

Hey there, Alex Iskold from AdaptiveBlue here.

One thing that was not mentioned on the panel is that in general addons are sharing namespace in JavaScript Many people are not aware of this issue and it causes conflicts.

In addition, sometimes addons bundle different version of the same common libraries (like JQuery), that causes issues as well.

So make sure you wrap your code into your own namespace.