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 this week.
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 restarts?
As far as I know, you need to set the rules every time the extension starts up.
Setting the content blocker is a somewhat expensive operation. The compiler needs to run over the extension and optimize it, which can take some time.
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 an empty JavaScript object to effectively clear the current rules. 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 setContentBlocker().
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.
Benjamin _______________________________________________ webkit-help mailing list [email protected] https://lists.webkit.org/mailman/listinfo/webkit-help
