12月07, 2018

[译] 微软Edge与开源Chromium:我们的愿景

关于本文档

过去几年,微软有意加大对开源软件社区的贡献,成为开源最大支持者之一。我们正准备在桌面Edge浏览器开发中采用开源Chromium,成为其更大贡献者和用户。这样一来,我们浏览器的兼容性会更好,用户和开发者也会有更一致的体验。

本文档是为了澄清我们推进这一行动的思路和实施计划。目标读者是(1)Chromium的支持/维护者、该项目领导者和(2)其他浏览器开发者中对我们未来贡献感兴趣的人,以及(3)外围的Web开发者、Windows及微软IT经理及合作伙伴。当然,我们和这些目标读者全都关注最终用户,他们是这项工作的预期的最终受益者。

TL;DR

Edge团队向开源靠拢已经有一段时间了。一年前,我们的移动浏览器就是在开源项目基础上起步的。桌面Edge中的很多特性也使用了开源代码(比如ANGLE、Web Audio、Brotli)。为了推动在新的ARM平台Windows设备上的应用,我们开始向Chromium提交代码。在此期间,我们就产生了在桌面Edge开发中采用Chromium开源项目的想法,以便给用户提供更好的Web兼容性,也减少开发者层面的割裂成本。现在,我们准备让这个想法落地了。

我们计划拥抱多年来行之有效的开源运作机制,让建设性、积极的社区贡献与长远规划的架构协同起来。最重要的是我们,会跟社区一道,向在各种设备上使用我们浏览器的用户提供最好的产品。

微软和今天的Web

我们的愿景完全取决于我们所处的大环境。过去,微软主要聚集三个方面:终端用户、开发者和企业/组织。这些目标群体决定着我们过去对IE的投入,如今也在决定我们对Edge的投入。几年来,我们的客户一致反馈自己所处的环境越来越复杂了,他们期盼统一、简单、可靠、兼容。

实际上,我们已经同谷歌及其他浏览器组织合作多年。首先是W3C,眼下与WHATWG直得更近,旨在制定Web平台的公共标准,降低复杂性,提升整体上网体验。虽然业内的浏览器厂商都在努力向Web标准看齐,但不同的底层实现及不协调的发版计划给开发者带来了麻烦,让我们对开放Web的承诺打了折扣。

我们发现了一个从深层次推动Web平台进步的机会,如果实现可以让微软的客户更满意,让Web开发者社区更满意,同时还能维持浏览器生态的竞争多样性。对不同的用户群体,我们认为有以下机会:

  • 终端用户。虽然Edge高度兼容HTML标准以及Chrome等大用户量浏览器的能力,但我们特有的实现偶尔也会碰到兼容性问题。因为开发者很少关注HTML标准,而是更关心基于用户广泛使用的平台比如Chrome来开发并验证各自用户的体验。尽管为解决这些问题我们一直在升级和修复,但独立发布的Edge实现作为Windows操作系统的一个组件,拖慢了我们升级的速度,导致了平台割裂,暴露了兼容沟壑。我们认为更好地使用开源项目可以改进终端用户的体验。
  • Edge浏览器外围,Windows PC上其他浏览器的用户时常会遇到不一致的特性及不同设备上的性能问题。有些浏览器不能及时跟进新Windows特性,比如触摸和ARM处理器。大家知道,我们最近向基于Chromium的浏览器提供了对此类硬件的支持,我们觉得这种做法可以通用化:我们可以推动Web及用户体验升级,只要给Chromium贡献支持新特性的代码即可,这样可以让所有浏览器用户受益。
  • 开发者。随着上网用户越来越多,设备也千奇百怪,测试一个网站的复杂性和成本也急剧增加。由于开发者,特别是一些小公司的开发者要测试那么不同的系统,几乎不可能保证有意思的网站兼容所有设备和浏览器。我们希望减轻开发者的工作量,让Edge的Web引擎与其他Chromium浏览器保持一致,同时也让Windows的能力可以在任何浏览器上发挥出来。
  • IT公司。IT经理需要面对不同设备条件下涌现的复杂性,既有新网站也有旧网站,既有个人设备也有公司设备。同样,我们看到了让不同的浏览器在Web平台上保持一致的价值。

所有这些用户都将可以享有这种双向好处,只要我们(1)向共享的开源项目贡献有价值的新特性供多个浏览器使用,并且(2)我们自己也越来越多地使用开源代码。这两方面我们都想做。

近期在Web开源项目上的投入

过去一年,我们参与了Chromium和WebRTC(以及其他微软相关的)开源项目,而且随着设备类型增多,我们投入也逐步加大。下面仅举几例。

  • 将Chromium移植到ARM64上。为了让基于Chromium的浏览器很快就能在ARM设备的Windows上编译运行,我们跟谷歌的工程师合作做了很多事。在这些投入的基础上,Chromium浏览器很快就可以面向ARM设备的Windows发布原生实现。这样可以显著提升性能、减少耗电。这是我们通过投入Chromium在多设备上推动Web体验升级的最好例证。
  • 让Web RTC能与Winodws UWP应用协同。我们花了一年多时间,打通了Web RTC跟UWP(Universal Windows Platform)。这让我们Windows 10平台的开发者有了Web RTC方案可用,包括桌面、Xbox、Holoens/VR及IoT。上周,我们宣布同意谷歌把Web RTC的UWP分支推回到WebRTC.org仓库。
  • 改进ANGLE。之前,我们对ANGLE的D3D11后端进行了改进,提升了性能。最近,我们与英特尔及ANGLE团队合作,让ANGLE成为Edge中WebGL的官方后端。

以上是我们对Web相关开源项目值得一提并且也有意义的贡献。这为我们提供了极富价值的角度,让我们明确了如何以健康的方式协作使用及对Chromium继续做出贡献。在整个微软公司内部,我们对开源的经验以及关注点越来越多,我们的Web团队也非常高兴可以利用这些经验,推动数百万人的Web体验升级。

Edge+开源:微软的新方向

实事求是……我们决定公布这份文档,让开源贡献者及合作伙伴了解我们的愿景。

Edge浏览器中使用开源代码的情况

移动Edge从一开始就使用开源代码,桌面Edge中一些组件也是开源代码。我们决定用开源代码替代更多桌面Edge的组件,同时也更多回馈社区。

与Edge相关的进程包括以下几方面。

  1. 桌面Edge会采用Chromium作为Web平台。出发点是让Edge的Web平台既与(a)Web标准看齐(b)也与其他基于Chromium的浏览器看齐,从而提升兼容性,减少开发者测试的工作量。
  2. 改进Edge应用的架构,支持Windows 7/8/10。同时也考虑将Edge移植到其他桌面平台,比如macOS。改进终端用户和开发者的体验(更好的兼容性及更少的割裂),需要尽可能一致及广泛使用的Web平台。为此,我们会使用Chromium的跨平台技术,并对我们的分发模式做出改变,以便Edge可以跑在所有支持的操作系统上。
  3. 我们会利用Windows平台的经验改进Windows上Chromium浏览器的体验。我们要深入参与Chromium开源项目,贡献新技术,通过上述工作提升一致性。我们深知让用户更好地在Windows中上网是件好事,对用户对合作伙伴,对我们的业务都好。我们会积极行动,以实现这个目标。我们期待与Chromium社区更多的合作机会,包括电池寿命、触摸、无障碍、安全和其他共同感兴趣的领域。

我们的贡献:原则与期待

对团队和已经参与Chromium开源贡献的人发布这份文档,主要目的是表明我们加大贡献力度的决心,以促使必要的开发计划提上日程,从而为Chromium浏览器带来更多有价值的新技术。

我们非常愿意深入参与Chromium项目。这是决定一言九鼎,是我们下一步正确的方向。即使如此,我们也会本着学习的精神去做事。我们知道,用的越多,贡献越多,要学的也越多。我们期待以协作方式回馈社区。我们也希望随时间推移改进我们投入的性质及范围。

我们针对Edge的开源思想

  1. 我们决定出于长远考虑。我们希望我们的工程师可以不断学习,假以时日能成为Chromium项目的专家,并成长为社区中活跃且承担责任的成员。我们急切希望对Chromium做出贡献,并会持续维护我们提交的所有代码。
  2. 在企图改进Web平台时,我们会从贡献出发考虑问题。我们希望通过Edge,通过它不同的用户体验及连接的设备,打造一款世界级的浏览器。但具体到新的平台能力,我们会寻找一种多赢的途径。我们会从修罢格儿开始,会从提交有价值的代码开始(比如ARM64支持),还有其他Windows平台的无障碍、安全、触摸及电源管理。
  3. 我们认可并尊重Web开源项目的架构需求及工程手段是让Chromium成功的关键。影响Chromium及其他项目的因素很多,比如支持多设备、多OS、严格的实时工程,等等。虽然我们公司过去一直专注于Windows PC,但我们相信自己可以改进Windows上的浏览器。我们也理解Web开源项目涉及各类设备,包括安卓,而贡献也必须考虑这种设备的多样性。我们会基于符合Chromium跨平台、跨设备需求的一致的架构设计来贡献代码。
  4. 我们认为开放Web的发展最好由标准社区主导,而开放Web能够从不同观点的对角中受益。我们会持续深入活跃地参与标准讨论,包括W3C、ECMA和WHATWG。这些标准组织会听从浏览器厂商和Web社区的声音。

贡献:初期重点

既然我们已经迈出了开源的步伐,思考了可以为用户和开发者做出最大改变的角色,我们也可以给出一份初期贡献的“重点区域”。

我们想强调的是,这个清单只是一个起跑线,由此开始我们学习、练习,以及为Chromium提交有价值代码的进程。

  • ARM64。计划是继续/完成移植工作,让Chromium支持ARM-64,这样浏览器自然也会支持相关设备。
  • 无障碍。为满足所有用户的需求,我们想在Chromium基础上添加UIA(微软UI Automation)接口,以支持Narrator及其他Windows上的辅助技术,与Windows “轻松访问”(Ease of Access)设置集成,比如高对比度和标题样式,改进对无障碍功能的控制,支持光标移动浏览。
  • PC硬件针对现代输入方法的演化(如触摸)。我们可以帮助改进桌面触摸、手势识别及滚动/平移的顺畅性,特别是在较新、较现代的Windows设备上。
  • 安全。当然,对所有浏览器而言,保证Web用户尽可能安全可靠都是最重要的。为支持这个共同的目标,我们期待与Chromium安全团队密切合作,贡献我们在软件安全方面的经验,特别是Windows平台上的经验。

未来展望

无论对微软还是Edge团队,这都是一大步。我们相信对Chromium项目同样也是一大步。我们对此举能够给Web社区带来的好处坚信不移。我们热切盼望与谷歌相关团队及Chromium项目的其他贡献者立即开始合作,包括整个Chromium项目,包括如何共同推动Web平台发展。与此同时,我们也认同竞争的价值,并愿意把对Edge的最好设计变成现实,但是诉诸Chromium开源项目这个载体,提供差异化的用户体验特性及可连接设备类型。

借助我们在标准主体中的工作,以及先前共同的工程努力,我们已经与很多Chromium贡献者建立了良好的合作关系。我们期望在这些合作关系之上,连干边学,争取为开放Web这一目标的实现做出最大贡献。

为了让大家对我们下一步具体干什么有一个明确了解,我们总结了几点:

  1. 与Chromium项目不同部分的所有者联系,尽快梳理出对前述各领域加以贡献的清单。包括谷歌和其他公司的同行。
  2. 通知我们的重要合作伙伴,比如WHATWG、W3C,以及OEM厂商,密切来往的开发团队等。
  3. 通过博客正式宣布,以便外部社区和用户及时了解Edge的这一策略变化。
  4. 把这份文档发布到Github,让关注我们的开发者或社区成员可以直接看到我们的计划。

欢迎大家的留言和建议,也希望在我们共同参与Chromium项目时给我们反馈。

本文链接:http://lisongfeng.cn/post/Microsoft-Edge-and-Chromium-Open-Source.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。