Adblock Plus and (a little) more

Adblock Plus on the crossroads · 2006-12-21 15:09 by Wladimir Palant

Now that Adblock Plus has reached a certain level of maturity and made it to rank 1 by downloads on AMO, there is a question about how it should be developed further. Incremental improvements will continue of course, there are still nice things to be added (the ability to unblock immediately above all). But Adblock Plus has reached a point where it already has most of the features that the general public needs. Most new features will become available as separate extensions.

I hope to show a first development build of the Element Hiding Helper soon. This extension will incorporate some code from the Aardvark extension to allow you easily select the element on the page that should be hidden. Once this is done a dialog window will allow you to choose the parameters by which this element should be recognized (domain, tag name, attributes, in advanced mode attributes of surrounding nodes and custom CSS expressions as well). It will generate an element hiding rule and add it to your list automatically.

Other extensions on my plan are Share Your Adblock List (somebody is writing the server part for it at the moment, and hopefully some of the code from Adblock Plus Filter Uploader can be reused) and Filter List Optimizer (should provide the functionality of redundancy checker and deregifier in a more comfortable way, also add a way to test the performance of the list).

Yet there is another possible direction. Currently Adblock Plus is written entirely in JavaScript. But writing a part of it in C++ (the part that is responsible for filter management and actual blocking but not the user interface) we could significantly improve performance and memory use, also we would see fewer of the typical plugin issues. But then the extension would require binary code meaning that:

  • These binary modules would need to be compiled on at least 3 different platforms for each release.
  • The extension would contain at least 3 versions of the same code (binary modules for each platform).
  • The rule that any crash caused by Adblock Plus is Gecko’s fault because JavaScript can’t possibly crash wouldn’t be true any more.
  • Adblock Plus would loose some of it openness since it would ship with binary modules might be compiled from their source code in the Adblock Plus CVS — or not.

After thinking through it, I decided that this should not be done. However, maybe I can push the same code into Gecko, ideally Gecko 1.9 so that Firefox 3 will have it already. It would replace the current image manager that can block images already but isn’t as powerful as Adblock Plus, thus solving the conflict between the two (users keep blocking with the image manager and blaming Adblock Plus for not being able to remove the filter). As a part of Gecko it would also receive proper review, and many issues would be caught immediately (Adblock Plus attaches to a very sensitive part of Gecko, so these issues are not uncommon). The user interface would stay an extension so that the legal and moral aspect of this would not yet be a problem.


Comment [8]

  1. MonztA · 2006-12-21 21:53 · #

    The Element Hiding Helper is amazing ;D

  2. Neglacio · 2006-12-22 15:49 · #

    Certainly the first two improvements must be done!
    This will make the use and creation of filters much, much easier.
    And we could improve our list so ABP will become a high-speed extension.

    And if you could push that code into Gecko, I’ll love you so much I will ask you to marry me ^^ :p

  3. Robbie Groenewoudt · 2006-12-22 19:33 · #

    Some kind of Greasemonkey-like support would be nice to fix websites that need editing instead of just hiding (, happytreefriends, etc)

  4. chewey · 2006-12-23 13:27 · #

    Replacing the generic image manager sounds like a great idea. If the powers that be can be convinced to do that (and you have the time and energy to make it being done – no small factor when dealing with MoCo ;-), this should definitely happen. This looks like a very elegant way to still port some parts of ABP to C++ and let others do the actual compiling.

    As to new features: You are right to think about separate extensions for additional functionality. It is really great to see an extension not falling for the “just one more little feature” temptation.

    Oh, and by the way: Merry Christmas to Y’All

  5. xeen · 2007-01-02 02:07 · #

    Make the hits counter useful for someone who doesn’t edit filters on his own and offer an easy way to report these to the subscription authors.
    I think this could help subscription authors to test their filters for usefulness and probably removed useless or old filters. Most likely case is that a filter gets outdated when blocking “specific ads” (=> no general filter) and thus useless. If the filter blocked 12345 times in November, but only 123 times in December points out that something has changed which needs to be checked.
    Useless filters could be removed faster, probably saving CPU time :)

    Reply from Wladimir Palant:

    As discussed in the forums a few times: this is something that will be added eventually, not my top priority at the moment however.

  6. pranay · 2007-01-05 11:34 · #

    there should be option for placeholders, when not collapsed. that should show option to unblock particular image. if imagesize is not known, that maybe collapsed.

    you can place your ad instead as placeholders ;) these maybe third party ad images, but these ad images should not get downloaded everytime. you can strike some gud one-time deal with advertisers. we love billboards.. but not in expense of bandwidth

    Reply from Wladimir Palant:

    Placeholders and a possibility to unblock are on the plan for Adblock Plus 0.8.

  7. Luzi · 2007-01-25 17:26 · #

    thanx for THINKIN bout an unblock. I’m really pissed off that these filters are made for general blocking-purpose. I can’t load the command line for email-compose anymore while running adblock.

  8. melvin · 2008-12-16 12:24 · #

    I lock all my music on my space and i can’t unlock them what cant i do thank you….

    Reply from Wladimir Palant:

    Please ask in the forum (no registration required). Make sure to read first.

Commenting is closed for this article.