Adblock Plus and (a little) more
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 2.7.0.4099 for Firefox and 1.9.4.1508 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.
New CSS property filter syntax · 2015-12-16 17:42 by Dave Vandyke
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 1.9.4.1500 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 https://example.com/example.html
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:
example.com##[-abp-properties='width: 32px;']
Wildcards are also supported, so any of these would work as well:
example.com##[-abp-properties='width: *px;']
example.com##[-abp-properties='*: 32px;']
example.com##[-abp-properties='width: 3*px;']
They can also be combined with selector matching. This rule would hide just the child paragraph tag:
example.com##[-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:
example.com##.foobar
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.
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.
Acceptable Ads evolves, transparency too · 2015-12-16 15:35 by Job Plas
Today, we are announcing updates to the Acceptable Ads criteria while keeping the core values. The idea is to make Acceptable Ads easier to understand, even if you don’t have a background in ads, while providing a perfect starting point for the Acceptable Ads Committee which will take over in 2016. Finally, transparency is critical for us so we are releasing more public information on how we monetize with Acceptable Ads.
Adblock Plus 2.7 for Firefox released · 2015-12-15 12:42 by Wladimir Palant
Install Adblock Plus 2.7 for Firefox
This release addresses most of the issues affecting Adblock Plus in the latest Firefox pre-release builds, particularly when multi-process mode is enabled in Firefox settings. While Adblock Plus was mostly working in multi-process mode before, it was also very slow — this is not a user experience we want our users to have when Mozilla starts rolling out multi-process mode to Firefox Beta users today. In order to support multiple processes properly we had to implement massive changes to the core functionality of Adblock Plus. These changes should have almost no visible effect other than improved performance however.
Visible changes
- If pop-ups are blocked after the redirect, the pop-up window will actually be closed and not merely prevented from loading (issue 443).
- The diagnostic page under
chrome://adblockplus/content/errors.html
has been removed, it was of very limited use (issue 3357).
Known issues
- Element hiding functionality isn’t working on Mac OS X when multi-process mode is enabled (bug 1187099). Given the lack of progress on Mozilla’s side, we will have to come up with some work-around later on.
- Issue reporter doesn’t create screenshots when multi-process mode is enabled (issue 3375). To be addressed in the next release.
- “Unsafe CPOW usage” warnings will still show up in Error Console sometimes when multi-process mode is enabled, most prominently when using the list of blockable items (issue 3407). To be addressed in the next release.
- Selection in the list of blockable items isn’t remembered reliably when multi-process mode is enabled (issue 3259). To be addressed in the next release.
Vastly improved support for multi-process Firefox · 2015-12-02 14:05 by Wladimir Palant
Firefox is switching to a multi-process architecture, it might be switched on by default once Firefox 45 is released. The current Adblock Plus releases mostly work in the multi-process mode but cause slowdowns and other issues. We’ve known that for a long time, but supporting the new multi-process architecture properly required massive changes to how Adblock Plus works. Today, I am happy to announce that the main part of this work is done and ready to be tested.
The current 2.6.13.4085 development build is a release candidate for Adblock Plus 2.7 which we plan to release on December 15, 2015. The extension core has been split up into two parts: the “parent” part which is loaded only once and the “child” part which is loaded into each Firefox process. This split affects almost all of the Adblock Plus functionality, so please report any issues you notice – both with multi-process enabled and without it.
There is a number of known issues:
- Element hiding functionality isn’t working on Mac OS X when multi-process is enabled (bug 1187099). Given the lack of progress on Mozilla’s side, we will likely have to come up with a workaround, not for this release however.
- Issue reporter hangs up when multi-process is enabled (issue 2809), we will address this issue in the next release.
- Selection in the list of blockable items isn’t remembered reliably when multi-process is enabled (issue 3259), we will address this issue in the next release.
- Diagnostics for Adblock Plus is broken (issue 3225). We should be able to address this before Adblock Plus 2.7 is released.
Adblock Plus 2.6.13 for Firefox released · 2015-11-25 17:43 by Wladimir Palant
Install Adblock Plus 2.6.13 for Firefox
The release announcement yesterday already mentioned an upcoming change that will break Adblock Plus in Firefox nightly builds. However, at that point we didn’t know the scope of the issue and didn’t have a simple solution. Turned out, Adblock Plus isn’t merely broken itself but breaks the browser’s user interface as well. Luckily, Nils Maier provided us with a simple work-around for the issue, so we could push out a new release quickly.
Adblock Plus 2.6.12 for Firefox released · 2015-11-24 12:13 by Wladimir Palant
Install Adblock Plus 2.6.12 for Firefox
We are aware of an issue breaking Adblock Plus user interface in the latest Firefox nightly builds, this will be fixed in the next release. There is also an issue related to element hiding functionality in Firefox 43 and above, this one will also be addressed in the next release.
Changes
- Added $generichide and $generic block filter options (issue 647, issue 616).
- Improved first-run display on small screens, especially on mobile devices (issue 2018).
- Fixed: Findbar in Filter Preferences is being triggered when trying to edit filters (issue 3129, issue 3144).
- Fixed: Ctrl+F wasn’t working as expected when the findbar was already open (issue 2580).
- Fixed: Filter composer’s “Advanced view” button was broken in Firefox nightly builds (issue 3263).
- Fixed: Anti-Adblock warning shouldn’t show up when Adblock Plus is disabled (issue 3254).
- Fixed: Anti-Adblock warning shouldn’t be triggered by frames (issue 3253).
New filter options $generichide and $genericblock · 2015-11-17 12:18 by Dave Vandyke
We have added two new filter options, $generichide
and $genericblock
which are already available in development builds and will be included in Adblock Plus 2.6.12 for Firefox and 1.9.4 for Chrome, Opera & Safari. They allow exception rules to be written that disable generic hiding or blocking rules for a given website whilst leaving site-specific rules intact.
This is an experimental feature that is still subject to change.
Some websites detect Adblock Plus by testing whether a certain generic rule is in effect. For example, if a file called “ads.js” isn’t loaded they might guess that the client is blocking adverts. The new options have been added to give filter authors more power to combat this, they provide a simple way to disable all generic rules for any websites that are found to be using this technique.
Here is an example rule that will disable generic hiding rules for the website adblockplus.org: @@||adblockplus.org^$generichide
.
What counts as a generic rule? Currently, we define a generic rule as one that either applies to all domains, or all domains with a few exceptions. As long as a filter contains at least one domain or sitekey to match we consider it to be specific.
(Note that by this definition the blocking rule ||example.com^
is generic whereas */ads/*$domain=example.com
is site-specific.)
Support for other platforms such as Internet Explorer is still in progress.
Adblock Plus 2.6.11 for Firefox released · 2015-09-24 01:07 by Wladimir Palant
Install Adblock Plus 2.6.11 for Firefox
Changes
- Fixed: Findbar in Filter Preferences was slightly broken when using Firefox 42 and above (issue 2832).
- Fixed: Notification pop-up shouldn’t disappear if somebody clicks outside it (issue 3060).
- Fixed: Toolbar icon broken in SeaMonkey 2.40 and above (issue 3072).
- Added promotional message for Adblock Browser to the first-run page (issue 3031).
Adblock Plus for Firefox and Element Hiding Helper development builds now hosted on AMO · 2015-09-04 16:42 by Wladimir Palant
Mozilla is starting to enforce their signing on all add-ons: Firefox 40 already warns about unsigned add-ons, Firefox 41 Beta outright disables them. This isn’t a big issue for our add-on releases as these are signed by addons.mozilla.org (AMO) automatically. However, the development builds were hosted on our own servers until recently, no such signing there.
Because of that, a few weeks ago we moved our development builds to AMO to have them signed automatically. You can also download them from AMO directly (see Development Channel section in the extension description). Anybody who installed development builds from our website should be upgraded to the AMO-hosted builds automatically.