Ultimately, I decided to bite the bullet and to learn C++ on Windows in order to deliver some great extensions for Internet Explorer this year. It was quite a steep learning curve to go from from C# and the scripting languages (Perl, Ruby, etc.) that I knew well, to C++. CodeProject turned out to be a great source of sample code for C++ BHOs. Various colleagues also helped to shorten my learning curve. Now here were are and Zscaler Safe Shopping has been rewritten from scratch in C++. If you are using version 1.0, an upgrade to the new 1.1 will speed up your browsing when the extension is in use. C# BHOs require that the .Net framework be loaded first, which takes at least 0.20s-0.30s for every tab. With C++, load time is significantly reduced.
It is very important that the BHO loads quickly, in under about 0.20s so as to not negatively impact the user experience and avoid warning messages. Starting with Internet Explorer 9.0, a warning is shown to the user when the browser opens to disable "slow" add-ons:
![]() |
| Warning about slow add-ons |
It is much harder to write browser add-ons for IE than it is for Firefox and Chrome, but you can do quite a lot with IE. Here is the breakdown of the "advanced" features available to add-ons on the three major browsers:
| Feature | Firefox | Internet Explorer | Chrome |
|---|---|---|---|
| Modify HTTP requests and responses | YES | YES | YES |
| Access the file system | YES | YES | NO |
| Include C++ libraries | YES | YES* | NO |
| Run executables | YES | YES | NO |
| Run server inside browser | YES | YES | NO |
I plan on releasing some exiting browser add-ons for Internet Explorer this year, keep an eye on this blog!




