New element hiding approach in Firefox · 2016-10-10 15:46 by Wladimir Palant

Traditionally, element hiding on Firefox worked quite differently from all other platforms supported by Adblock Plus. Rather than decide on the filters for each website individually, all element hiding rules would be written into a single elemhide.css stylesheet file that would apply to all websites unconditionally. This approach had a few disadvantages:

Luckily, Firefox implemented better mechanisms to apply stylesheets to documents a while ago and as of Adblock Plus development build we are now taking full advantage of these. We will now make a separate decision for each website, which (if any) element hiding rules should apply. And we don’t sacrifice performance for that because the majority of element hiding rules will go into a preloaded stylesheet with all the rules which apply unconditionally.

There are a few drawbacks here:

This is a huge change to the inner workings of Adblock Plus and while we tested it quite thoroughly some issues are expected — let us know if you notice any.

To the install page

Read more Comment [1]


New filter type option for WebSockets · 2016-09-21 14:30 by Wladimir Palant

Starting with Adblock Plus 1.12.2 for Chrome, Opera and Safari we can block connections initiated via WebSockets on all major platforms (this functionality was available on Firefox since the very start). However, we didn’t have a special type for these requests as these were listed with type “other” instead. The assumption was that the protocol ws:// or wss:// would be sufficient for filter list authors in order to target WebSocket connections specifically. However, we received feedback that this wasn’t the case.

So with the current development builds (Adblock Plus for Firefox and Adblock Plus for Google Chrome and Opera) WebSocket connections are listed with the new type “websocket.” Consequently, filters can be made to target such connections specifically by adding $websocket type option. Existing filters will have to be duplicated for now:


This syntax will support both new and old Adblock Plus versions as long as the versions without support for the “websocket” type are still common (these will ignore the first filter).

To the install page

Edit (2016-09-22): This post was originally suggesting specifying both websocket and other options on one filter. This approach will not work in older Adblock Plus versions because filters with unknown options are ignored.

Read more Comment [2]


Clearing up some things from this week! · 2016-09-16 17:37 by Rachel Brochado

There has been a lot of misinformation floating around these past few days about Adblock Plus and Acceptable Ads and the Acceptable Ads Platform, so let us try and clear up the most common ones.

Read more Comment [33]


Adblock Plus 2.7.3 for Firefox released · 2016-04-27 14:32 by Wladimir Palant

Install Adblock Plus 2.7.3 for Firefox

This release adds support for the experimental CSS properties syntax to Adblock Plus for Firefox (issue 2401, issue 3955). This support isn’t complete yet, most important issue being that hits are not counted for CSS properties filters (issue 3969).

Additional changes

Read more Comment [3]


Adblock Plus 2.7.2 for Firefox released · 2016-02-23 16:42 by Wladimir Palant

Install Adblock Plus 2.7.2 for Firefox

This release works around some obscure Firefox bugs which Adblock Plus has been triggering since Adblock Plus 2.7 release (visible for example as issue 3489, issue 3541, bug 1127744).

Additional changes

Read more Comment [10]


Adblock Plus now available for Samsung devices · 2016-02-01 13:57 by Job Plas

Samsung, the world’s largest mobile hardware manufacturer, today introduced content blocking functionality in the default Samsung Browser for all their devices.

Read more Comment [1]


Adblock Plus 2.7.1 for Firefox released · 2016-01-19 15:08 by Wladimir Palant

Install Adblock Plus 2.7.1 for Firefox

With this release Adblock Plus becomes fully compatible with the upcoming multi-process mode in Firefox, it no longer relies on backwards compatibility hacks in Firefox (issue 3259, issue 3407, issue 3449, issue 3465, issue 3486, issue 3494). This also means that the screenshot functionality in Issue Reporter is fully functional now (issue 3375), and also quite fast (issue 3504).

Additional changes

Regressions fixed

As the previous release changed Adblock Plus quite drastically, it inevitably introduced some issues. As far as we know, all of these have been resolved:

Known issues

Read more Comment [1]


Finished support for multi-process Firefox · 2016-01-11 12:58 by Wladimir Palant

We continued working on improving our support for multi-process Firefox. So far we have still been relying on backwards compatibility code in Firefox which is slow and error-prone. However, starting with Adblock Plus development build that backwards compatibility code no longer applies to Adblock Plus — now we are on our own. As far as I know, all issues have been resolved, with one exception:

This development build is a release candidate for Adblock Plus 2.7.1 which we plan to release on January 19, 2016. Please tell us if you notice any other issues, particularly around Blockable items list and Issue reporter.

To the install page

Read more Comment


Reintroducing the $ping filter option · 2015-12-23 16:59 by Sebastian Noack

Historically, there has been the $ping filter option in Adblock Plus, to limit request blocking filters to the URL given by the ping attribute on links. When such a link is clicked, the browser sends a request to that URL in the background. This technique is mostly useful for tracking. However, it has never been enabled by default in Firefox. Therefore, with Adblock Plus 2.0, $ping got deprecated and merged into $other.

But recently navigator.sendBeacon() got introduced, which is basically the JavaScript equivalent of the ping HTML attribute. And it is enabled by default. Moreover, on Chrome, <a ping> is supported by default too. And starting with Chrome 49, it’s possible to distinguish these requests from others.

Therefore, we are reintroducing the $ping filter option (issue 3452). Starting with Adblock Plus for Firefox and for Chrome/Opera, filters using the $ping option will only match requests that are either caused by <a ping> or by navigator.sendBeacon(). Note that the filter option $other won’t match these requests anymore.

To the install page

Read more Comment [1]


New CSS property filter syntax · 2015-12-16 17:42 by Dave Barker

We have created a new element hiding rule syntax which allows for the matching of elements based upon the rules applied to them from any stylesheets1. The new syntax is available now in development builds of Adblock Plus for Chrome, Opera and Safari as of and will be released early next year in version 1.10. Support in Adblock Plus for Firefox is under development and will follow.

This is an advanced and experimental feature that is still subject to change.

“the matching of elements based upon the rules applied to them from any stylesheets.” is quite a mouthful! What does that mean?

Well let’s say there’s a webpage that has the following stylesheet:

.foobar {
  width: 32px;

…and the following HTML fragment somewhere in the page:

<div class="foobar"><p>Hello world</p></div>

You could write a CSS property based element hiding rule to hide the div like this:[-abp-properties='width: 32px;']

Wildcards are also supported, so any of these would work as well:[-abp-properties='width: *px;'][-abp-properties='*: 32px;'][-abp-properties='width: 3*px;']

They can also be combined with selector matching. This rule would hide just the child paragraph tag:[-abp-properties='width: 32px;'] > p

Syntactically they are just like normal element hiding rules, the magic is in the special -abp-properties “attribute”2. Its value is checked against any rules from all stylesheets that apply to the element. For our examples the property width: 32px; of the rule in our stylesheet does match and so the element is hidden.

That all seems pretty convoluted, why couldn’t we just write a rule that matched for the foobar class directly?

It’s true that in the previous example we could have matched the foobar class much more easily with a rule like this:

The problem is that there is not always an easy way to match elements with a standard selector. Some websites have started to randomize their page structure in an attempt to circumvent ad blockers. The new CSS property filters should empower filter authors to hide adverts consisting of dynamically generated HTML and CSS as long as some of the values and/or properties of applied CSS rules are predictable.

Caution! CSS property filters are slower than normal filters and will slow down the page they are applied on. They must always be restricted to a domain and should only be used as a last resort.

To the install page

1 As originally given in the stylesheet. Not to be confused with computed styles as shown by the inspector.

2 Actually for older versions of Adblock Plus that don’t yet support CSS property filters this rule really will be interpreted as matching elements with a matching -abp-properties attribute. This way filter lists can contain CSS property filters whilst still being otherwise backwards-compatible with versions of Adblock Plus that don’t support them yet.

Read more Comment