Porting Add-ons from Firefox to IE

Windows Internet Explorer

Image via Wikipedia

Joshua Allen of Microsoft is speaking about porting add-ons from Firefox to Internet Explorer. IE add-ons have been less popular for a few reasons:

  • Building for IE is difficult
  • Debugging tools are few and far between

The best reason to target IE as well as Firefox is that the Web is about interoperability. The point of the Web is any use anywhere can get your stuff and use it. There's no competitive advantage to an add-on company to be in one browser. Being in as many browsers as possible is important.

Joshua uses Oomph, microformats tool, as an example. You can download it and see how an IE add-on is built. Also, check out Oomph for Firefox: Microsoft's Microformats IE plugin as Greasemonkey script, for contrast.

Using CLR for IE add-ons is not well supported because you can only have on version of CLR installed per iexplorer.exe. That means if something else requires a different version, you won't work. You need to work in all CLR version > 1.1.

Add-ons in IE are loaded as DLLs based on a list in the Registry. These are in-process with iexplorer.exe and there is one instance per tab.

When you building a sidebar ("Vertical Explorer Bar" in MS parlance) you get a Win32 window that you can do anything in, but you should embed WebOS in it and use Web standards.

Protected mode creates a low integrity sandbox for add-on code. That means you can only save to the temporary files folder.

The best way to deal with Web services is to use common AJAX techniques. Use cookies for persistence. Background processing is best done by calling a service from DCOM.

Don't mix SSL and non-SSL content. Local files can't mix with Web files unless you stamp them with the Mark of the Web (MOTW). There's no way to intercept headers.

For testing and debugging, start with Vista and IE8. Vista has the most restrictive security and good developer tools. If i works there, it ought to work with other IE and OS versions.

To deploy, you have to create an MSI installer (use WiX v3) because you have to deploy a DLL and update the registry.

The bottom line, as I listen to this, is that doing add-ons for IE is just a lot harder than for Firefox. That doesn't mean it's not worthwhile, but it does indicate why there are so many more add-ons for Firefox.