为什么我们最终抛弃 Chromium 选择了 Firefox ?
来源:CSDN 浏览器是用来显示在万维网或局域网等内的文字、图像及其他信息的软件,它还可以让用户与这些文件进行交互操作。本文中将介绍为什么我们认为有必要创建自己的浏览器,为什么我们选择了 Firefox 以及为什么我们认为这是正确的决定。 译者 | 弯月 责编 | Elle 出品 | CSDN(ID:CSDNnews) 以下为译文: 2015 年,我们公司发布了在 Firefox 基础之上构建的桌面 Web 浏览器。在那之前,我们发行了多个作为 Firefox 插件的搜索和隐私产品。在本文中,我们将介绍为什么我们认为有必要创建自己的浏览器,为什么我们选择了 Firefox 以及为什么我们认为这是正确的决定。 为什么创建自己的浏览器? 搜索是 Web 浏览体验不可或缺的一部分,几乎每个浏览会话都从搜索开始。所有现代浏览器用户界面都将搜索直接集成到地址栏中。因此,浏览器是发行搜索产品的主要方式,2000 年的时候,Google 通过创建 Chrome 浏览器推动他们的搜索产品时就意识到了这一点。如今我们也意识到了这一点,因此我们希望创建一款浏览器,并通过它发行我们的搜索产品,展示我们的愿景。 此外,拥有平台对于维持用户体验的控制非常重要。回顾我们的亲身经历也证明了这一点:当初我们的 Firefox 浏览器扩展使用的是旧的扩展 API,这些 API 拥有很强大的修改浏览器 UI 方面的功能,我们利用这些功能构建了搜索下拉菜单。2017 年的时候,由于这些 API 被弃用,我们也无法再通过 Firefox 发行该功能。幸运的是,这一次我们有了自己的浏览器。 其次,我们可以通过发行浏览器控制更多的用户体验。以前,主流浏览器对用户隐私的关注十分有限。根据构建 Web 搜索的经验,我们发现用户的数据被收集,然后再由他人放到 " 自由市场 " 上出售。我们希望保护用户,让他们免受这种剥削,并在浏览器中贯彻应用隐私设计。 我们认为浏览器是用户代理," 用户代理是代表用户实际动作的软件(软件代理)" 。浏览器代表互联网上的用户,因此我们有责任保护他们的隐私。我们在 Firefox 插件中实现了反跟踪和反钓鱼技术,这些技术可以直接集成到我们的浏览器中。 为什么从其他浏览器上建立分支? 由于上述种种原因,我们决定构建和发行自己的浏览器。而且很显然,我们无需更改现有浏览器运行良好的功能,而且在渲染性能和安全性方面,与现有浏览器竞争也没有任何价值。相反,我们想在这些浏览器的基础之上构建新功能。因此,我们不得不以现有的某个引擎为基础建立分支(fork)。我们的思路是将该浏览器作为我们自己的新功能的平台。 从长远来看,这项决策可以让我们的工作更加轻松。浏览器的发展非常迅速,我们必须经常更新,才能确保及时发行重要的安全补丁。在这种情况下,维护某个分支是非常艰难的工作,而且我们了解到,持续做好这项工作的唯一办法是尽量减少与上游项目的差异。 最后,我们选择以 Firefox 为基础建立分支,因为我们的大部分代码都是 Firefox 扩展,而且为了跟上 Firefox 上游的变动,我们将尽可能多的代码封装在扩展中了。 为什么我们没有选择 Chromium ? 如今,以 Chromium 为浏览器的基础已成大势所趋。Opera、Yandex、Brave 以及最近的微软等众多公司都朝着这个方向发展。对于我们而言,由于种种原因导致我们不清楚应该做怎样的选择: • 与 Google 相比,我们更认可 Mozilla 的生存信念。我们与 Mozilla 的大部分价值观都很接近,所以我们认为 Mozilla 是我们的盟友。在进行分支时,我们需要承担风险, 比如上游维护者终止或修改我们所依赖的功能。我们认为 Mozilla 比 Google 更值得信赖,Mozilla 终止或修改某个功能的可能性更小; • 考虑到垄断的问题,我们认为支持 Firefox 更有意义。Blink / Gecko(Web 渲染器)的市场份额并不是一件小事。如果所有浏览器最终都使用 Blink(Google),则 Web 将会受到重创,因为开发人员只会优化和测试 Blink 渲染引擎。Web 刚刚失去了一个独立引擎(EdgeHTML),进一步加剧了这个问题。 还有技术上的原因: • Firefox 提供了浏览器方方面面的开放 API,大部分 Firefox 的 " 应用程序 " 代码都是用 JavaScript 编写的。相反,Chromium 不会暴露某些 Google 业务敏感的区域。最著名的例子就是地址栏。Google 不愿意为其他人控制地址栏提供方便;他们只想保护默认搜索引擎(Google)的流量。当然,我们也可以创造新 API,但这意味着我们需要自己编写源代码。创造 API 不是大问题,我们已经创建过一个原型,但接下来的维护才是大问题; • 维护任何分支都是一场噩梦,因为项目的所有者(对于 Chromium 来说,大多数代码都来自 Google 员工)可能激进地更改代码,有时甚至破坏已有的集成,强迫他人跟上他们的步伐; • Chromium 不够 " 稳定 "。API 的更改以及对旧 API 的支持缺乏持续性和一致性。以 Manifest v3 为例,它的安全、隐私和性能的基础都不牢靠,因此很有可能会淘汰加强隐私的插件所依赖的一些强大且实用的 API,最终会影响到这些插件本身。他们回溯了做出这些更改的初衷,但仍打算将改动继续到底,对依赖这些 API 的人来说,这就是一场浩劫; • Chromium 自带很多无法轻易删除的 Google 服务。微软和 Brave 为了删除这些服务,投入了大量资源。而一些其他的 API,如屏幕阅读器集成等 API 都是闭源的。 Chromium 是一款出色浏览器,带有快速的渲染引擎,但维护它的分支需要投入大量资源。我们没有这些资源,也不愿意付出这些代价。事实证明,选择 Firefox 的决定是正确的,因为随着时间的流逝,集成我们的功能越来越容易,而 Chromium 已经弃用了对我们的项目至关重要的一些 API。 我们的新浏览器的功能 我们的新浏览器自带一些自家打造的功能,可以帮助用户享受安全的私人 Web 体验。以下是一些最重要的功能: • 下拉列表:我们的搜索就在地址栏中。搜索结果会根据用户类型显示在下拉列表中,所以可以为你节省搜索结果页面的时间。显示的结果由我们的独立、私有的搜索后端提供; • 反跟踪:我们实现了识别并阻止跟踪器以及反复尝试指纹识别的算法,并根据数据不断更新; • 广告拦截:通过高效的广告拦截,为用户打造快速、无广告和烦扰的 Web 体验; • Cookie 弹出窗口阻止程序:帮助用户处理网站上弹出的强制同意窗口,自动处理模棱两可的 UX。我们会阻止数据的收集,而不仅仅是隐藏弹出窗口; • 自动 " 忘记窗口 ":对于敏感链接,我们的浏览器将会自动使用 " 忘记窗口 " 打开,即使是从普通窗口启动链接时也是如此;用户还可以将 URL 列入黑名单,从而确保始终在 " 忘记窗口 " 中打开它们; • 反网络钓鱼:防止用户陷入钓鱼网站,时刻确保用户的安全; • 用户仪表板:显示隐私状态,例如阻止了多少广告以及删除了多少私人数据点。此外,还提供精选新闻,并包括一些实用小程序,例如访问次数最多的网站和书签。 Firefox 是一个伟大的平台 我们建立 Firefox 分支已有四年多了,我们发现 Firefox 非常适合进行分支。它有一系列对分支非常友好的属性: • 该浏览器的 UI 能够通过 CSS 定制主题,因此 Web 开发人员可以轻松地设计和调整 UI; • 该浏览器是模块化的,基于 pref 的体系结构非常易于配置; • 该浏览器建立在 Web 技术之上。开发人员可以更迅速地适应并开展工作。你还可以利用开发者工具调试整个浏览器; • 该浏览器对于重新打包发行有着一流的支持,因此很容易在其之上建立其他品牌的游览器; • 该浏览器支持非常强大的扩展,尤其是特权上下文,你甚至可以利用它深入浏览器的内部; • 该浏览器允许你通过强大的配置脚本进行深度定制。 通用代码库 (编辑:应用网_阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |