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:
- The global stylesheet could not consider exceptions, such as websites where a particular rule should not apply — we had to implement a complicated mechanism to make sure that the rule didn’t have any effect in such cases, and on some websites there still were side-effects.
- Changing a single element hiding rule caused the global stylesheet to apply again to all open tabs, this could cause significant delays.
- With multiprocess Firefox coming up and sandboxing enabled on some platforms, we could no longer rely on being able to access that file.
Luckily, Firefox implemented better mechanisms to apply stylesheets to documents a while ago and as of Adblock Plus 188.8.131.5206-beta 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:
- New element hiding rules will no longer apply immediately, just like blocking rules they now require the document to be reloaded (can actually be seen as a good thing because consistent). This also affects Element Hiding Helper extension which will need to be updated.
- We are no longer able to count hits for element hiding exception rules (issue 4509). We simply don’t know any more whether the rule that the exception applies to would have matched anything.
- Element hiding rules apply with a slight delay which in theory might cause some ads being shown and then flashing out. In practice, I haven’t seen this yet.
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.
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
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 184.108.40.20602 for Firefox and Adblock Plus 220.127.116.115 for Google Chrome, Opera and Safari) 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).
Edit (2016-09-22): This post was originally suggesting specifying both
other options on one filter. This approach will not work in Adblock Plus versions without support for the
websocket option because filters with unknown options are ignored.
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 18.104.22.16823-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.
Diagnostics 1.3 for Adblock Plus release candidate · 2015-12-08 10:58 by Wladimir Palant
Diagnostics extension stopped working with the recent Adblock Plus development builds due to significant architectural changes in the latter. This has been fixed in Diagnostics 22.214.171.124, it is compatible to the Adblock Plus 126.96.36.19990 development build and also to the upcoming Adblock Plus 2.7 release. It is not compatible to older Adblock Plus versions however. We plan to release Diagnostics 1.3 next Tuesday (December 15), on the same day as Adblock Plus 2.7.
Diagnostics had to be changed significantly in order to match the new architecture of Adblock Plus:
- 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).
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 188.8.131.5285 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 for Internet Explorer 1.5 release candidate available · 2015-09-09 15:35 by Oleksandr Paraska
We are planning to release a new version of Adblock Plus for Internet Explorer next Tuesday, September 15th, 2015. The release candidate is available here.
This release includes improvements for the large scale deployments. Here is the list of changes since the last release:
Element Hiding Helper's support for multiprocess Firefox · 2015-07-31 21:38 by Wladimir Palant
Multi-process Firefox is coming, and many people are already testing it with the Firefox nightly builds as well as Firefox Developer Edition. Mozilla went out of their way to make sure that most extensions continue to work unchanged but very often things break nevertheless. So recently Element Hiding Helper’s integration with the Inspector tool broke in Firefox 42 because the Inspector tool was made aware of multiple processes and functionality that Element Hiding Helper relied on went away.
Starting with Element Hiding Helper 184.108.40.2067 this issue is resolved. Fixing it required extensive changes to the entire functionality of Element Hiding Helper, not just the Inspector integration. So we would appreciate your help testing Element Hiding Helper both in multi-process Firefox and in the “old” single-process setup.
Better support for upcoming Firefox versions · 2015-07-22 11:33 by Wladimir Palant
The Adblock Plus 220.127.116.1163 development build is a release candidate, Adblock Plus 2.6.10 for Firefox will be released next Tuesday is everything goes well. We implemented a bunch of improvements and fixed several issues affecting newer Firefox versions (especially multi-process Firefox). The most important changes are:
- Fixed a syntax error breaking Adblock Plus in Firefox 41 and above (bug 1176702)
https://subscribe.adblockplus.org/?location=http://example.com/as an alternative to
abp:subscribe?location=http://example.com/links (issue 2211).
- Fixed subscribe links in multi-process Firefox (issue 1730).
- Made the comment page of the issue reporter more compact so that the report data field has more space (issue 344).
- Fixed share dialog on the first-run page, it was broken starting with Firefox 38 (issue 2710).
Adblock Plus for Internet Explorer with support for administrator install · 2015-07-08 18:09 by Oleksandr Paraska
Going in line with our Chrome and Firefox versions of Adblock Plus, it is now possible to suppress the first run page, and disable the automatic updates in Adblock Plus for Internet Explorer. This feature is now available in the latest devbuild 1.4.796
Adblock Plus for Internet Explorer 1.4 release candidate available · 2015-02-19 09:29 by Oleksandr Paraska
We would like to announce that the current devbuild 1.3.763 is going to be the basis for the release of Adblock Plus for Internet Explorer 1.4, which we are planning to release on Wednesday the 25th of February.
Here is a list of all improvements since version 1.3.
New in this release is the addition of the installer for Active Directory installs, which we really hope network administrators would appreciate.
Also, this version is the first version that will perform queries for notifications like all other ABP versions.