9 月 1 日,Mozilla 宣布为 iOS 版 Firefox 加入广告拦截功能。这项功能可以在页面加载前拦住大量第三方广告和广告相关的追踪器,默认处于关闭状态,需要用户自己去设置里打开。

开关在哪里
打开手机上的 Firefox,点击菜单按钮进入「设置」,选择「浏览」,然后打开「广告拦截器」。浏览网页时也可以通过站点菜单调用这个选项。Mozilla 表示该功能正在全球范围推送,如果设置里找不到,需要先把 Firefox 更新到最新版本。
功能默认关闭这一点是 Mozilla 有意为之。同一家公司的 Firefox Focus 多年来一直默认开启广告拦截,而主应用这次选择让用户自己决定。Mozilla 在公告中给出的理由是:广告为开放网络提供了资金支持,支撑着出版商、创作者和大量网站的运转;但广告有时确实会挤占屏幕、打断正在进行的操作,所以这项功能应该是可选的。
为什么以前做不到
这项功能来得晚,原因不在 Mozilla。App Store 要求所有第三方浏览器使用 WebKit 渲染引擎,Firefox 在 iOS 上一直无法像在桌面端和安卓端那样支持广告拦截扩展。App Store 里的那些内容拦截器应用只对 Safari 生效,帮不了 Firefox 的用户。过去 iOS 上想减少广告,要么装一个仅对 Safari 有效的内容拦截 App,要么使用 AdGuard、Magic Lasso 这类系统级 DNS 拦截方案。
Mozilla 这次的做法是把拦截能力直接内建进浏览器:底层使用苹果的 WebKit Content Blocker 技术,配合 EasyList 过滤列表决定哪些内容被拦下。前者正是 Safari 内容拦截扩展所依赖的同一套 API,只不过 Firefox 把实现放进了自己的应用里,不需要额外安装任何扩展。
新功能与 Firefox 原有的增强型跟踪保护协同工作,后者会拦截大量追踪器并限制跨站跟踪行为。
哪些广告拦不住
预期需要放低一些。开启之后能拦下的是第三方广告网络、广告相关追踪器、许多第三方网站广告,以及弹窗和浮层。以下几类不在拦截范围内:
网站自己直接投放的广告,也就是第一方广告,会照常显示。搜索结果页里的广告不受影响,包括 Google、Bing 和 DuckDuckGo 的搜索结果广告。Firefox 新标签页上的赞助快捷方式和其他赞助内容属于另一套机制,与网页广告分开处理,不会被这项功能拦掉,除非用户自行修改主页设置。
这些限制大多来自 iOS 平台本身的架构。苹果的 WebKit Content Blocker API 工作在一个较高的抽象层级上,iOS 上的拦截器只能依据预编译好的规则集运行,无法直接接触渲染引擎。而在桌面版 Firefox 上,用户几乎可以拦截任意网络请求或页面元素。第一方广告和直接写进页面 HTML 里的赞助内容,在 iOS 的机制下很难在不破坏网站功能的前提下过滤掉。
换句话说,同一个浏览器,同一个账号同步,iOS 端能拦下的广告数量会明显少于 Windows 和 macOS 端。
补齐了一块短板
对比之下,Brave 和 Vivaldi 在 iOS 上都默认开启原生广告拦截,Safari 用户则可以自行叠加第三方内容拦截器。Firefox 此前在主应用里完全没有内置选项,即使 Mozilla 在隐私保护上口碑不错、跨设备同步也做得成熟,对注重隐私的用户来说仍然缺了一环。
对于同时在 Windows、macOS 和 iPhone 上使用 Firefox 的人来说,这次更新的意义是广告拦截终于在所有平台都能用了——只是 iOS 版本受平台限制,拦下的广告数量会比桌面版少。Mozilla 表示,如果遇到本该被拦却仍然显示的广告,或者某个网站行为异常,可以通过 Mozilla Connect 反馈。







