This means that the effort of developing Adblock Plus for Internet Explorer would be very high, as well as nothing can be reused from the existing Adblock Plus for Firefox. Checking everything the browser loads before the browser loads it? Why would you want that? Go build a local proxy server.” “New toolbar? Great! Context menu item? Should be doable. Furthermore, these extensions can only communicate with the browser through predefined interfaces. Internet Explorer on the other hand requires binary plugins meaning that you have to use a compiled language like C++, this already increases the development effort by factor 10 at the very least (that’s the main reason why there are only few really free Internet Explorer extensions). You can write extensions in XUL and JavaScript, this does not only allow extensions to be built fast but also makes sure that you can change virtually anything the browser does. Firefox is extensible, this is one of its very basic features. Internet Explorer is very different from Firefox. Fact is, this is extremely unlikely to happen, for various reasons.
So I thought it would be worth answering in detail in my blog. I already answered that question several times but recently a few people asked me again to create an Adblock Plus version for Internet Explorer.
Make sure that it isn't possible to start two update checks in parallel.Adblock Plus and (a little) more Adblock for Internet Explorer is not an option Fix 圆4 warning in OutputBuffer::WriteString(): size_t needs to be converted to SizeType explicitly.t Fix 圆4 warnings in ToUtf8String(), ToUtf16String(), GetDllDir(), Communication::Pipe::WriteMessage(): size_t needs to be converted to DWORD explicitly. Remove unnecessary string ID prefixes in the locales Use MessageBoxW() explicitly in engine/Main.cpp Reduce indentation level in CPluginTabBase::InjectABP() Use better names for local FilterLoader() variables Parameter type of FilterLoader() function should be LPVOID Remove CPluginSettings::m_subscriptions member Make url a parameter to Updater::Update(), get rid of Updater::SetUrl() avoid overwriting dropdown defaults when provisioning Transpiling of for-of leads to problems if array is modified within the loop Make sure extension name is present in all locales Refactor filter/subscription change notifications Set up Rietveld on our own infrastructure Properly support Internet Explorer in our infrastructureĬreate installer for Adblock Plus for rid of deprecated getUserData() methodĭon't show Homepage link in filter preferences if filterlist doesn't have a homepage associated with it Populate AppInfo.applicationVersion field IE devbuild listings whitespaces in attachment names lead to broken attachment URLs Refactor away global variable declarations in ApbEngine.cpp
Refactor JNI method registration to use 'registerNatives' Name source files consistently with libadblockplus (upper camel case) abpEngine.cpp needs various things cleaned up Use a smart pointer for the filter engine Move GetString to the JString helper class
Reduce exception handling code duplication Use Matcher.find() instead of Matcher.matches() Don't use std::bind for UpdateAvailableCallback, it's redundant Initialise path variable closer to its use Use shared pointers for the platform-specific implementations Store the exception message in JavaException rather than extracting it when an exception occurs Investigate UI freeze on main activity startįix periodic subscription refresh or remove it from advanced settings Don't hard code AppInfo properties and set the remaining ones: applicationVersion, locale and developmentBuild Unused icon sizes being packaged for Chrome/Safari buildsĪdd high-DPI versions of Chrome/Safari iconsįix Element Hiding Helper integration with the Inspector tool