After twelve years of working on Adblock Plus, the time seems right for me to take a break. The project’s dependence on me has been on the decline for quite a while already. Six years ago we founded eyeo, a company that would put the former hobby project on a more solid foundation. Two years ago Felix Dahlke took over the CTO role from me. And a little more than a month ago we launched the new Adblock Plus 3.0 for Firefox based on the Web Extensions framework. As damaging as this move inevitably was for our extension’s quality and reputation, it had a positive side effect: our original Adblock Plus for Firefox codebase is now legacy code, not to be worked on. Consequently, my Firefox expertise is barely required any more; this was one of the last areas where replacing me would have been problematic.
So I am taking all of 2018 off. It’s not merely about being tired of working on the same project. I also noticed that I’ve grown irrationally attached to XUL and Gecko, as I’ve accumulated lots of knowledge in that area over the years and helped many others learn as well. Consequently, while I see Mozilla’s motivation for their rushed Web Extensions move, I cannot feel positive about it. This isn’t a good prerequisite when staying in touch with Mozilla is part of the job description.
Next year I will only get involved in Adblock Plus if my assistance is absolutely required (in other words: most likely not at all). Instead, I want to get a clear head, and learn new things. My Easy Passwords extension is a very promising project that definitely needs more of my time, and I would like to contribute to a bunch of open source projects. I also want to spend more time doing security research again, which should help pay the bills as a side effect.
Theoretically, there is already no reason for people to contact me about Adblock Plus directly. Many still do however, so here is a quick reference:
- If a Firefox bug affects Adblock Plus, you should add this user to Cc on Bugzilla (don’t send emails there, nobody will receive them).
- If you have an issue with Adblock Plus, the forums are the place to ask questions.
- If you want to report an Adblock Plus bug, the issue tracker is the right place (again, ask in the forums if you need assistance).
- If you want to contribute to Adblock Plus development, it’s easiest to do so on GitHub (other tools are used internally but you aren’t required to use them).
- Questions regarding eyeo can be sent via the contact page or email addresses listed there.
Although I’m not using AdBlock at the moment I have used it in the past to block (aal) Flash using a very simple rule :-), I want to thank you for all the work you did and hopefully the new extension API will get mature very quickly so that it will be a good replacement for the classic add-on API…
As a Firefox user I fully agree that the switch from the classic XUL/XPCOM API to the new one has been rushed, I do hope however that in the coming your the managers and developers at Mozilla will do a good job in getting almost all of the features back which were used by all classic extensions – not sure whether this is required at the moment for AdBlock Plus though….
Thanks for all the stuff you and your team achieved over the years.
Thank you for the effort you and your team have put in Adblock Plus.
Thank you very much for these years of great work and help to the community! Good luck for your new projects.
Have a nice one. I switched back to Adblock Plus about a month ago and is a happy user.
Thanks for all the amazing work you did on Adblock Plus
> while I see Mozilla’s motivation for their rushed Web Extensions move, I cannot feel positive about it.
Rushed? They planned it for more than a year.
Yes, building a whole new extension system takes lots of time. If you want to have a comparison, take a look at how long it took to roll out Electrolysis safely – that project took seven (!) years. Web Extensions on the other hand have been rushed. Add-ons were forced to use it despite all the known limitations and tons of bugs.
Web Extensions are cool. Nice work.
Thanks to the great work that your team and you have done, and your detailed and edifying blog posts, I have helped my network of family and friends browse the web for the last 10-odd years without fear of malware. Additionally, a number of them live in India where bandwidth was not bountiful, so blocking ads saved them $$.
Enjoy the break, and return recharged. As the creator and maintainer of Elasticfox for 3-years (2008-11), I know that XUL is both powerful and eccentric. Keeping the extension fresh and useful was tiring for that time, so hats off to you for sticking with it for so long. I am excited to use your “Easy Passwords” extension. I had it installed from the day you announced it to about 6-months ago. I had to stop using it because I lost passwords twice. Thankfully, I had a backup.
I’ll be always grateful to you for creating ABP back in the days when ad companies started shoving ads down our throats and Firefox+ABP was the only option to get rid of them. Apparently, I started using Firefox because of ABP and it was the first add-on I used. Things have changed now – there are many adblockers around (I myself have become a uBlock Origin user). But ABP was my first savior from irritating ads and trackers and I honestly appreciate your work on it.
I want to believe I speak for a much wider audience then is willing to leave you comment here, but thank you for the culture shift you helped start with Adblock! Thank you for giving us a choice about whether we want to be bombarded with ads and giving us the ability to op-out!
I have benefited from your work immensely. Thank you for building this amazing tool.
Thank you for your work. You improved the web experience for billions. :)
> Yes, building a whole new extension system takes lots of time. If you want to
> have a comparison, take a look at how long it took to roll out Electrolysis
> safely – that project took seven (!) years.
I couldn’t reply to this comment directly so I’m just posting normally, but that is extremely disingenuous; you must know that the reason it took seven years isn’t simply because “multiprocess is hard”, but precisely because of the maintainability burden imposed by XUL/XPCOM addons which make it pragmatically impossible to make non-trivial changes to the engine in any reasonable timeframe.
You implied in your blog post that you understood “Mozilla’s motivation”, which is why I’m assuming that you’re aware of this, so I’m not sure why you would use this kind of example. In fact, the e10s delays completely explain why the WebExtensions transition was “rushed” as you say; because it was simply the lesser of two evils. Either you ship it now and make around 80-90% of the userbase happy immediately (those who use no addons or only need the more simple extensions which were available on day one), or you continue to have a browser that is slow, unresponsive, and buggy for all users.
Speaking of which, that is another issue I have with your post, you mention the buggy nature of WebExt (which I’ve experienced, so I know what you mean), but you fail to mention that the old system had it’s own massive cost in terms of bugs not just in the API itself, but in all of the workarounds and wrappers in the codebase that were added to maintain compatibility with legacy addons over the years. This left users vulnerable to bugs and performance issues even if they didn’t use any addons at all!
As you’re aware, there is no separation between addons and the core in the old system, legacy addons are to Firefox as kernel modules are to the Linux kernel, which makes it easy to break Firefox’s core functionality, or even that of other addons. I hang out in the Firefox IRC channels, so I’m well aware of how some people’s workflow has been disrupted by 57, but meanwhile, nearly all of Firefox’s marketshare loss over the years can be laid squarely at the feet of XUL/XPCOM and the maintenance burden it creates, so I can’t say I’m sad to see it go given that it was essentially like a boulder tied to the feet of Firefox developers swimming in the middle of the ocean.
You seem to be missing my point. Of course I am aware that the old system had issues and needed to be replaced in one way or another. And I am also aware that Firefox is losing relevance and needs to become more attractive again. As I said, I know why Mozilla rushed this move. That doesn’t mean that as an extension developer I feel good about it being rushed.
Sure, multiprocess isn’t merely hard per se – it certainly is, but that’s only part of the problem. A large delaying factor was extension compatibility of course. Mozilla blaming it all on extension developers wasn’t entirely fair however. From what I could tell, it was largely about arriving on a solution that was easy enough to use. Extension developers didn’t make the jump initially simply because originally it required so much complexity that it was impractical (Adblock Plus had some multiprocess code around Firefox 4, I know what I am talking about).
How are Electrolysis and Web Extensions not comparable? Both are extremely complicated changes, and in both cases Mozilla had to make sure that existing extensions (at least those that can be ported in general) can work reasonably well. When multiprocess support became mandatory, users didn’t notice – job well done. Web Extensions on the other hand caused issues for a large percentage of users, and the extension developers received the blame. Many of these issues could have been avoided with a longer testing period or merely by delaying out-of-process extensions on Windows (the inconsistency between operating systems here turned out to be a major contributing factor to non-reproducible bugs). Mind you, for extension developers Electrolysis was far less problematic because support could be added gradually to the existing extension. Web Extensions on the other hand required completely replacing the existing codebase all at once – my suggestions to allow a gradual migration have all been dismissed, most likely due to the tight schedule. So it’s not a surprise that many bugs were only discovered after pushing out Adblock Plus 3.0 to the entire user base.
Thank you very much for your massive contributions in web-betterment.
Enjoy your sabbatical :)
> When multiprocess support became mandatory, users didn’t notice – job well done.
I wouldn’t wish to get into a huge back and forth over this, but I just wanted to point out that the main reason for this is precisely because it never really became “mandatory” from the users’ perspective; up until 56, there were still people using addons that forced them into singleprocess mode, and after upgrading to 57 they came into the Firefox IRC channel(s) asking “why does Firefox suddenly have five processes instead of one?”.
I feel like this is a huge problem with “gradual rollouts”, where some users end up getting worse performance/responsiveness in the product than others because they don’t realize that they are using addons that are disabling or crippling their experience in some way; users aren’t experts in XUL/XPCOM or how it works, their intuition seems to be that if they are experiencing a problem in Firefox, that all users are experiencing the same thing. I can’t count how many times people have come into the IRC channel asking for help, only to be told “did you try with addons disabled?” (which in the mozilla support community has almost become an inside joke like the IT Crowd’s “have you tried turning it off and on again?”), and then of course we find out that it was an addon, and then the user is left embarrassed regarding their former diatribes regarding Mozilla’s alleged shortcomings.
In any case, I hope there are no hard feelings in anything I’ve said. I probably wouldn’t have even left a comment if not for the response you wrote to the other commenter; it just felt like a weird comparison to me given that WebExt in part is precisely aimed at addressing the delays caused by e10s, I would even go as far as to say e10s delays were likely the straw (or bale of hay) that broke the camel’s back and resulted in Mozilla saying “enough is enough”, so referring to the delays in a positive context seemed awkward to me.
Happy Holidays, and enjoy your break, you deserve it. =)
Thank you very much for the great work.
I’ll never forget the beginning: Adblock Plus 0.6 drama and the cockroach icon ! :-)
GL in your future projects.