Today at the She’s Geeky unConference in San Francisco, I gave a presentation on Writing Browser Extensions. It’s something I’ve been immersed in for the last several months. I started out knowing nothing about them, and after getting up to speed and producing a browser extension with versions for Firefox, Chrome, Safari and Internet Explorer, I thought it would be fun to share what I’ve learned. We had a small group of very interested participants, and I showed them the very basics of what the simplest extension code looks like. Mostly it was more an overview of what extensions do and how they work. The more difficult browsers (IE and Firefox) have way too much detail to do justice in an hour, and as I told them, the easier ones (Chrome and Safari, and probably Opera although I haven’t taken a look at that one) are so straightforward and have such good documentation that nobody really needs me to explain coding details, you can just go read the docs and be on your way in no time. I promised to post a list of useful links, and here they are.
Chrome and Safari
These two are just joyfully easy.
- Mozilla Developer Network: Developing add-ons
- Add-on Developer Hub
- mozillaZine: Extension development
- Updating extensions for Firefox 4
Internet Explorer (MSDN)
Now this is a whole different kettle of fish, of course. The parts list is a lot bigger; I only became familiar with “browser helper objects” (BHOs), which was the part I needed. BHOs are written normally in C++, and particularly if you’re not used to Windows development, it can be slow going. The documentation is extensive, fragmented, and not at all self-contained; it bleeds into the rest of Windows development so there’s no real boundary around what you might have to know. And to deploy your app to the world, you need to create a separate installer, an adventure in itself. The links below are just a starting point. You’re gonna have to want this one bad! But it is definitely possible to get somewhere with this. The tutorial described below as “key” was extremely important for me. There was lots left to figure out after that, but I never would have gotten anywhere without that one.
- Overview of the whole parts list: Browser Extensions
- Key tutorial on BHOs: Building Browser Helper Objects with Visual Studio 2005
- Browser Helper Objects: The Browser the Way You Want It
Awesome annual conference, December in Silicon Valley:
I really enjoyed discovering this and attending in 2010. I was disappointed that Apple and Microsoft didn’t participate, though. MS had participated in previous years. Safari didn’t yet support extensions in 2009, so 2010 would have been Apple’s chance to make a big deal about it. Google, Mozilla, and Opera (all the way from Norway) were all there, which was great.
- Videos of sessions from ’08 and ’09 cons (Hopefully they’re working on putting up videos from 2010.)