You can write your own rules for most Safari content blockers. But if I don’t trust websites not to invade my privacy, why would I trust a third party ad blocker that has access to my entire browsing history as opposed to the Apple method where the content blockers just give Safari a list of rules?
The difference is that ad blockers traditionally intercepted your web requests to block ads meaning they had both network access and access to your browsing history.
Content Blockers in Safari submit a list of rules to Safari and Safari blocks the requests. No third party has access to your browser history.
Does that let the extension intercept the browsing history or just allow the extension to get information about a page after the user pulls up the share sheet and chooses to send the page to the extension?
That would be amazingly slow to call an out of process function on each match when the page renders. Extensions run as a separate process. I would be amazed if Apple would allow something that inefficient as careful as it is about battery and memory efficiency.
Why would Safari be doing any communication with the content blockers? The content blockers are submitting JSON one time to iOS Safari and aren’t running at all.
You’re talking about MacOS and not iOS? As far I know, the only time Safari or any other app on iOS calls an extension is when the user chooses to “share” with that extension
Yeah, I think this API is only available on macOS. On iOS this would require keeping the extension alive in the background, which Apple seems largely opposed to allowing.