Changes to parsing metadata from filter lists · 7 days ago by Sebastian Noack
Starting with Adblock Plus 3.4 (and developments builds as of 220.127.116.115), special comments must be given at the top of the filter list, right below the header, otherwise they will be ignored. Furthermore, the
Checksum special comment is no longer supported.
Rewriting URL instead of blocking · 129 days ago by Hubert Figuière
Starting with Adblock Plus 3.2 for Chrome, Firefox and Opera (and development builds as of 18.104.22.1683), there is a new
$rewrite filter option to rewrite the URL of a resource instead of blocking it.
Internationalized domains in filters are now expected to be encoded as Punycode · 129 days ago by Sebastian Noack
Starting with Adblock Plus 3.2 (and development builds as of 22.214.171.1240), domains given in filters are expected to be encoded as Punycode.
Pre-configurable preferences for system administrators on Firefox 57 and above · 156 days ago by Sebastian Noack
Starting with Adblock Plus 3.1 and Firefox 57, system administrators will be able to pre-configure Adblock Plus in order to suppress the first run page or to add additional default subscriptions through a managed storage manifest. This feature is now available in the developments builds as of 126.96.36.1998.
Added support for the $csp filter option · 156 days ago by Dave Barker
Starting with Adblock Plus 3.1 (and development builds as of 188.8.131.528) the
$csp filter option is supported. The
$csp filter option allows for the injection of additional Content Security Policies.
Adblock Plus development builds for Firefox moved to new location · 184 days ago by Sebastian Noack
Mozilla is going to drop support for beta versions from AMO, which means we’ll need to go back to distributing the development builds of Adblock Plus for Firefox ourselves. Furthermore, Mozilla will force existing beta users to be automatically updated to the stable version. So if you want to keep using the development build of Adblock Plus for Firefox you’ll need to re-install it from it’s new location.
Web Extensions builds are now the official Adblock Plus for Firefox development builds · 396 days ago by Wladimir Palant
A while ago we announced our plan to migrate to the Web Extensions platform. With the current Firefox nightly builds being incompatible to classic add-ons already, we need to move a bit prematurely. So starting with Adblock Plus 184.108.40.2064 development build, our development builds will be using the Web Extensions platform. If you are on Firefox 57, make sure to install the latest Adblock Plus development build and it will be working again.
There are some drawbacks here. Most notably, the user interface will be more limited than what you are used to. The work improving the options page is almost done and should land soon, other parts of the user interface will follow. Still, disabling individual filters won’t be back for a while, which is why we are re-enabling any filters you might have disabled in subscriptions. Disabled custom filters will be automatically replaced by comments. We also remove any automatic backups (not the manual backups) you might have, these degrade Firefox performance and currently cannot be recovered anyway.
The other important drawback is very limited Android support. There is ongoing work both on our and Mozilla’s side here, so things should improve very soon.
New #?# syntax for advanced element hiding rules · 462 days ago by Hubert Figuière
Starting with Adblock Plus 1.13.3 for Chrome and Opera (and development builds as of 220.127.116.112) there is a new and improved syntax which can be used for advanced element hiding filters. It allows for elements to be hidden based upon their contents using
:-abp-has. CSS property filters have also being adjusted to be consistent with the new syntax, so both those and
:-abp-has filters now use the
#?# option separator.
So for example here’s a standard element hiding filter:
Which with the new advanced syntax could be written as:
The overall syntax is the same, but
#?# filters have access to a few extensions implemented as CSS pseudo classes. This extra power comes with a cost however, the new
#?# filters are much slower and should only be used where necessary. The above example is bad therefore, since none of those extensions are being used. Filters using the new syntax must also be restricted to as few domains as possible, without any domain restrictions they are rejected outright.
So which CSS pseudo classes are supported?
:-abp-properties() (CSS property filters)
:-abp-properties() is a reworked syntax for the CSS property filter. The value of the
-abp-properties attribute becomes the argument passed to the pseudo-class selector. Your old filters will be converted automatically when loading the filter lists, and will work the same way. For example:
domain.com##[-abp-properties='background-color: rgb(0, 0, 0)']
domain.com#?#:-abp-properties(background-color: rgb(0, 0, 0))
Note the lack of quotes. As before, you can combine this into a more complex CSS selector.
With this change we introduced a new pseudo-class:
:-abp-has(selector). Inspired by the CSS Level 4 draft :has(), this pseudo-class selects an element if it contains something that matches the selector passed an argument.
domain.com#?#div.sidebar > div:-abp-has(> video.ad)
On the site “domain.com”, hide the element that has as direct descendant a
<video> element with the class “ad” and is a direct descendent of a
<div> that has the class “sidebar”. We want the enclosing element because it contain other things with want to hide.
domain.com#?#div.sidebar > div:-abp-has(> div.sidebartitle) > .adtext
On the site domain.com, hide the elements with the class “adtext”, that are direct descendent of a
<div> element that also has a direct descendent a
<div> with the class “sidebartitle”, and that is a direct descendent of a
<div> that has the class “sidebar”.
Note: It is recommended to not nest
:-abp-has() where possible, as that will further slow down element hiding. Also it is recommended that the selector inside a
:-abp-has() starts with a combinator like
~. Otherwise a lot of elements will be needlessly selected as more that one ancestor will match.
Fixing Adblock Plus 2.9 for Thunderbird and SeaMonkey users · 480 days ago by Wladimir Palant
Adblock Plus 2.9 introduced very significant changes to the data storage. The unfortunate side-effect was that Adblock Plus was broken for Thunderbird users as well as users on pre-release SeaMonkey versions, and nobody noticed before the release. After we discovered a problem with our original fix, as of Adblock Plus 18.104.22.16851-beta development build things should work correctly on all platforms. This being a rather non-trivial change, your feedback is appreciated. If no other issues pop up we plan to release Adblock Plus 2.9.1 next Tuesday, June 6.
New filter type option for WebRTC connections · 530 days ago by Dave Barker
Starting with Adblock Plus 1.13.3 for Chrome and Opera (and development builds as of 22.214.171.1241) the blocking of WebRTC connections is supported. Those connections will have the new request type of “webrtc” and so filters can be made to target them by adding the
$webrtc type option.
WebRTC is an experimental browser technology which is supposed to be used for things like video conferencing. Unfortunately despite still being in active development it’s already being misused to serve adverts! Since Chrome does not yet allow WebRTC connections to be blocked by extensions directly (Chromium issue 707683), we’ve had to implement a workaround to achieve this.
Support for other platforms such as Firefox should follow soon, we’ll keep you posted.