Adblock Plus and (a little) more
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 2.7.0.4123-beta 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:
- Element hiding functionality isn’t working on Mac OS X when multi-process is enabled (bug 1187099). Mozilla is fixing this, we might also implement our own workaround however.
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.
Adblock Plus 1.10 for Chrome, Opera and Safari released · 2016-01-05 13:44 by Dave Vandyke
Install Adblock Plus 1.10 for Chrome
Install Adblock Plus 1.10 for Opera
Install Adblock Plus 1.10 for Safari (Safari 6 or higher required)
This update adds the new CSS property filter syntax which should give filter list authors an additional tool against the circumvention of Adblock Plus. We have also created a page which will be shown when Adblock Plus is uninstalled. We are hoping to gain insight into the overall user experience and what we can improve.
Changes
- Added support for the new CSS property filter syntax (issue 2397).
- Improved how the first run page looks on smaller screens (issue 1292).
Chrome/Opera-only changes
- Added a feedback page that is displayed when Adblock Plus is uninstalled (issue 3269).
- Reintroduced the $ping filter option (issue 3452).
- Adapted for changes in Chrome 49 which allows for the context of web requests to be matched more reliably (issue 3453).
- Changed the way we detect the browser name and version (issue 3415).
Safari-only changes
- Avoid matching web requests with the type
OTHER
when using the$font
filter option (issue 3454).
Element Hiding Helper 1.3.6 for Adblock Plus released · 2016-01-05 13:15 by Wladimir Palant
Install Element Hiding Helper 1.3.6 for Adblock Plus
This is a minor update, removing non-standard JavaScript syntax, which caused warnings in Firefox Aurora and Nightly builds (issue 1434, issue 3260, issue 3418, issue 3421, issue 3430). It also slightly improves support for multi-process Firefox (issue 3431, issue 3443).
Customizations 1.0.4 for Adblock Plus released · 2016-01-05 13:10 by Wladimir Palant
Install Customizations 1.0.4 for Adblock Plus
This is a minor update, removing non-standard JavaScript syntax, which caused warnings in Firefox Aurora and Nightly builds (issue 1434, issue 3260, issue 3418, issue 3421). There are also a few additional changes:
- References to “add-on bar” have been replaced by “toolbar” (issue 1140).
- Displaying toolbar icon as text has been disabled in latest Firefox versions, Australis theme doesn’t support it (issue 1155).
- Fixed: “Toolbar item display” option keeps switching to default rather than showing the selected value (issue 1156).
- The special icon for “whitelisted” websites has been updated to better match the current Adblock Plus icon (issue 2269).
Diagnostics 1.3.1 for Adblock Plus released · 2016-01-05 13:07 by Wladimir Palant
Install Diagnostics 1.3.1 for Adblock Plus
This is a minor update, removing non-standard JavaScript syntax, which caused warnings in Firefox Aurora and Nightly builds (issue 1434, issue 3260, issue 3418, issue 3420, issue 3421).
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.
Diagnostics 1.3 for Adblock Plus released · 2015-12-15 13:12 by Wladimir Palant
Install Diagnostics 1.3 for Adblock Plus
Diagnostics 1.3 has seen significant changes in order to support Adblock Plus 2.7 which we released today. Due to the extent of the changes it is no longer compatible with older Adblock Plus versions, unfortunately. We will publish Diagnostics on AMO now in order to have signed development builds but it’s still an internal helper, so use at your own risk.
Changes
- The confusing “ignore early returns” checkbox is gone — Diagnostics is no longer able to track low-level actions, so it generally cannot detect low-level calls that aren’t being forwarded to the upper level. However, there are relatively few such cases remaining in Adblock Plus now.
- The columns Context, Document and Additional have been removed as well — this kind of low-level context information is no longer available to Diagnostics (and neither to Adblock Plus when it is making decisions).
- On the other hand, the Request origin data has been extended. The tooltip will now show the entire frame hierarchy for a request, not only the location of the frame immediately responsible.
- There is also a new column called Private. This one will indicate whether a request is associated with a private browsing window.
- The Type column will no longer attempt to localize the type, instead the internal type identifier will be displayed (corresponds with filter options).
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.