El Capitan: a breakthrough or a blow to ad blockers?

Apple is working on its soon-to-be-released new versions of operating systems – Mac OS X El Capitan and IOS 9. This release will significantly change the approach to the browser extensions for Safari. Now the browser introduces the feature of ad blocking with the help of innovative Safari’s own tool, which allows to filter content with the set of certain rules. At the same time the old ways to block ads would not be available – the only possible will be filtering by the new Apple’s method. Apple itself won’t be engaged in making of extensions with such a mechanism, there are independent developers who will.
So let’s compare how ads are blocked in Safari now and figure out what to expect from this innovation.

How ads are blocked now

Let’s start with how the browser extension are working today.

A browser extension uses several methods for ad blocking:
1. Ads and tracking requests blocking
2. CSS injection and Javascript
3. Post-processing of the page

Details of each of these methods are described in this article “How ad blocking works?“.

All these methods are applied in accordance with the filter rules that are compiled manually.
These rules have quite complex syntax, you can have a look at it in this article.

What will happen next

Apple introduced a new content filtering mechanism. This mechanism is also built based on a compiled specific list of filtering rules and its application to all web requests.

Let’s analyze the new mechanism point by point.

1. Ads and tracking requests blocking

Request blocking will still be possible. In fact our task here is to convert our existing rules to the new syntax used by Apple.

There is one problem here: Apple’s mechanism is less flexible than the existing one and the syntax we use. As a matter of practice, this means that we can not convert some of the rulesб and they will be ignored by the new extension. According to our estimates about 5-10% of the rules can not be converted.

2. CSS injection and Javascript

Injection is still possible, though capabilities are somewhat limited. We will be able to convert all the rules of hiding elements, but there can be problems with Javascript-rules. It will take some time to sort out how to apply them.

3. Post-processing of the page

The need for post-processing of the page depends on how exactly will Safari apply the rules of request blocking. If the browser itself will hide blocked elements then there is no need for this. Nevertheless, we hope that this issue can be resolved, and we can do something with this “filtering stage”.

Conclusion

As a result, with the release of a new Safari version, we will be able to transfer most of the functions of our browser extension on a new track. Unfortunately, some functions will be lost, so that the filtering quality will be slightly lower.

Is it a breakthrough or not? We think that this is definitely a breakthrough. Finally Safari for IOS users will have access to the ad blockers. In order to keep them (users), other mobile browser developers such as Google, will need to catch up with Apple and implement support for ad blockers in their applications.

Nevertheless, we think that this technology needs to be developed further. The current functions are sufficient for now, but we need much more for a really high-quality filtering.

All these innovations will not affect Adguard for Mac which works on a different level, and does not depend on the opportunities offered by the browser.

Best regards,
Adguard team

Mr. Adguard

Wow... you got us! We really can't remember who wrote this article... So, here I am - Mr. Adguard tidying up after someone else.

Subscribe to AdGuard Blog

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!