<div dir="ltr">Hi there,<div><br></div><div>I&#39;m from Adblock Plus, and just read the articleon the WebKit website [1] about the new content blocking mechanism, introduced with Safari 9. Thanks for providing some details. But I identified following shortcomings that would effectively make the new mechanism insufficient for us, or anybody supporting our filters [2], which are used by popular filter lists, including EasyList:</div><div><br></div><div>1. Most importantly, our exception rules are recursive. For example ||<a href="http://example.com">example.com</a>$document prevents not only documents loaded from <a href="http://example.com">example.com</a> being blocked. But also resources loaded as part of that document or in any of it&#39;s subframes or their subframes wouldn&#39;t be blocked either. However, this logic doesn&#39;t seem to be possible with the ignore-previous-rules action. A recursive flag would come handy here.</div><div><br></div><div>2. There doesn&#39;t seem to be a way to distinguish between document and subdocument requests. While Adblock Plus blocks frames, it never blocks the top level document, so that users can still access the resource that is blocked, when entering its URL in the address bar.</div><div><br></div><div>3. A dedicated resource-type for XMLHttpRequests, objects (requests loading a Flash element) and object subrequests (subsequent requests issued by a Flash object) would certainly be useful as well. EasyList has quite some filters specifically checking for those.</div><div><br></div><div>4. Adblock Plus uses filters subscriptions (periodically downloaded filter lists, like EasyList) as well as filters added by the user, to decide what to block. So we&#39;d need a way to dynamically configure block lists. I saw the pre-release announcements mentioning the new setContentBlocker API for this purpose. I couldn&#39;t find any details on that, but I assume that you can simply pass in a block list as JavaScript object? But note that we&#39;d need a way to invalidate previously set blocking rules when filters in Adblock Plus changed. However, a way to add new rules without flushing the previously set block list would be extremely useful in some cases as well. So ideally, this API should let you modify the block list in place.</div><div><br></div><div>[1] <a href="https://www.webkit.org/blog/3476/content-blockers-first-look/">https://www.webkit.org/blog/3476/content-blockers-first-look/</a></div><div>[2] <a href="https://adblockplus.org/filters">https://adblockplus.org/filters</a><br></div><div><br></div><div>Sebastian</div></div>