[webkit-help] A few questions about Content Blocking Extensions in Safari 9
benjamin at webkit.org
Tue Jun 16 15:08:52 PDT 2015
On 6/16/15 10:03 AM, Brent Montrose wrote:
> I've been reading the article on newcontent blocking mechanism,
> introduced with Safari9
> (https://www.webkit.org/blog/3476/content-blockers-first-look/), and
> the emails regarding the subject. The article and email response was
> helpful, but I have a few additional questions.
Brian, who works on the Safari part of Content Blockers, is on vacation
I'll try to answer but he will have better information next week.
> 1. Does an extension need to set the rules each time the browser /
> extension starts up? Or, will Safari 9 cache the rules between
As far as I know, you need to set the rules every time the extension
Setting the content blocker is a somewhat expensive operation. The
compiler needs to run over the extension and optimize it, which can take
You only pay that cost the first time the extension is set. The compiled
version is cached and is reused if you set the same extension a second time.
> 2. Is there a easy way to pause content blocking & hiding for a
> short period time? Or rather, what is the recommended approach to
> pause content blocking? For example, a user navigates to a web site
> and wishes to view all of the content on that page without
> white-listing the specific site. If I understand correctly, to pause
> content blocking, the extension would currently need to set / submit
> Then, later, when the user wishes to enable content blocking again
> (un-pause), the extension would need to set all of previous rules
> (which could be expensive).
You can disable your own content blocker by passing null to
I have to say it is not the ideal scenario for power usage. When you
will re-enable your extension, it will go through the compiler again.
Can you please file a bug report on http://bugreport.apple.com
explaining the use cases you have in mind? You can send me the bug
number and I'll CC the team.
We should see what is the best way to handle that, it could be as simple
as keeping the last compiled version when removing a content blocker.
More information about the webkit-help