原标题:为什么 uBlock Origin 在 Firefox 上运行效果最好?
喜欢就 关注我们吧!
文 | 局长
出品 | OSC开源社区(ID:oschina2013)
uBlock Origin 作者 Raymond Hill 解释 了为什么他开发的广告屏蔽扩展插件(以下简称 uBO)在 Firefox 上的运行效果最好,主要原因包括支持使用 CNAME 记录、独家支持webRequest.filterResponseDataAPI、可靠地阻止预取,以及使用 WebAssembly 作为核心的过滤代码路径等。

支持使用 CNAME 记录
Firefox 支持曝光利用 CNAME 记录 (CNAME record ) 伪装成第一方的第三方服务,这样做的效果是使 Firefox 上的 uBO 相对于其他其他同类浏览器而言,可最有效地阻止第三方跟踪器。

HTML 过滤
仅 Firefox 支持的webRequest.filterResponseDataAPI 让它可以在解析 HTML 文档前过滤响应体。因此, 这允许 HTML 文档中的特定标签在被浏览器解析和执行之前删除,而这在其他浏览器中是不可能实现的。
浏览器启动时支持等待 uBO 准备就绪
Firefox 支持在 uBO 启动后发送网络请求,这也是 Firefox 独家功能。对于 Chromium 系浏览器而言,跟踪器/广告负载在 uBO 启动前可能就已进入打开的选项卡,同样的情况却不会发生在 Firefox 中,因为它支持等到 uBO 正常运行后再发送网络请求,这样就能对广告内容进行正确过滤。
预取
Firefox 能够可靠地阻止预取,而基于 Chromium 的浏览器无法这么做,因为当决定是否禁用预提取功能时,这些浏览器给予网站的优先权高于用户设置。
WebAssembly
Firefox 版本 uBO 支持使用 WebAssembly 作为核心的过滤代码路径。详情点此查看 。
存储压缩
默认情况下,Firefox 版本 uBo 使用 LZ4 压缩算法将原始过滤器列表、已编译列表数据和内存快照存储到磁盘存储中。LZ4 压缩算法需要使用IndexedDB,这在基于 Chromium 浏览器的隐身模式下是有问题的——IndexedDB实例始终被重置,导致 uBO 总是低效启动并影响过滤列表的加载。
为什么Python是机器学习的最佳选择? 2021-04-18
yyds!用深度学习框架玩明日方舟,高端! 2021-04-17
Rust引入Linux内核开发?Google:支持! 2021-04-16
责任编辑: