It's interesting how Firefox Focus on iOS also acts as a Content Blocker for Safari, but I find AdGuard to be more comprehensive on iOS.
It is funny that Android has better adblock features (uBO on Firefox).
(Edit since I can’t reply): Firefox Focus does appear to implement iOS content blocker since it appears as an option under Safari settings for content blockers.
Firefox (standard and Focus) and other iOS browsers can block ads and trackers, but not as comprehensively as that API can. That API is limited to Safari due to platform restrictions, which I hope get removed in the future.
Firefox Focus appears under Safari settings > content blockers, along with more typical blockers like AdGuard. I think they both implement Content Blocker API.
WKWebView does not support the Content Blocker API. Ad blocking apps that use the Content Blocker API are only compatible with Safari and the SFSafariViewController component, which is very feature-limited and not suitable for a full web browser app:
- https://www.wwdcnotes.com/notes/wwdc20/10188/
- https://developer.apple.com/news/?id=trjs0tcd
As a workaround, Firefox Focus uses script injection to block ads and trackers within the browser part of itself, but the Content Blocker part of Firefox Focus only affects Safari:
- https://github.com/mozilla-mobile/focus-ios/blob/main/Blockz...
- https://github.com/mozilla-mobile/focus-ios/blob/main/Blockz...
- https://github.com/mozilla-mobile/focus-ios/issues/1761
However, both Firefox Focus and Safari (with the Firefox Focus Content Blocker enabled) score 78% on that test, so Firefox Focus might be good enough for web browsing on iOS if you're comfortable with its feature set and don't need the additional filter lists or custom rules that another third-party Content Blocker would offer.
Apple should still allow third-party browsers to use third-party Content Blockers, since this restriction is an unnecessary handicap for any non-Safari browser on iOS.
And unfortunately, on iOS the alternative isn’t ublock origin.
If you run your own server, you can get to 100% by turning on blocking for a couple of hosts not in standard blocklists that this test has highlighted.
The DNS setting applies to most or all apps, as far as I can see, as it's applied as a system level provisioning setting. iOS 15 gives more visibility of this in the UI, but it works in iOS 14.