作者:Microsoft Edge团队上次更新:2018-12-06
在过去的几年中,微软有意义地增加了对开源软件(OSS)社区的参与,成为世界上最大的OSS项目支持者之一。我们正在从台式机上的Microsoft Edge开发中采用Chromium开源的途径,成为其开源的更大贡献者和用户,以便我们可以为客户创建更好的Web兼容性,而对于所有人来说,Web的分散较小网络开发人员。
本文档的存在是为了阐明我们对这项工作将如何进行的思考:我们想解释与Microsoft Edge和Chromium开源项目有关的计划和意图。我们认为的受众会发现该文档最相关和有用的是(a)从事铬的人作为批准者/维护者并领导该项目(b)(b)建立其他浏览器的公司和工程师,并将对我们计划的贡献感兴趣和(c)我们在Windows和Microsoft Edge上与之合作的Web开发人员,公司IT经理和合作伙伴的更广泛的社区。当然,我们和所有这些观众主要关心最终用户,最终是听众,这项工作旨在受益。
对于Microsoft Edge来说,使用开源并不是什么新鲜事。我们的新移动浏览器从一年多以前就基于开源。我们还使用了开源量表的台式机上的Microsoft Edge的各种功能(例如Angle,Web Audio,Brotli),我们已经开始对Chromium项目做出贡献,以帮助将浏览在新的基于ARM的Windows设备上向前浏览。在这种情况下,我们一直在考虑采用Chromium开源项目的计划,以开发桌面上的Microsoft Edge,以为我们的客户创建更好的Web兼容性,并为所有开发人员提供更少的网络分散性,而我们是我们现在准备前进了。
作为其中的一部分,我们希望并打算以一种不仅可以使Microsoft Edge的方式成为Chromium的重要贡献,而且可以使其他浏览器在PC和其他设备上都更好。我们已经写下了下面的“ Microsoft Edge的OSS原则”和“接下来发生的事情”,以清楚概述我们的贡献方法。
我们的计划是采用一种包含多年来有效工作的良好开源模型的方式:有意义和积极的贡献,这些贡献与长期存在的经过深思熟虑设计的建筑,协作工程以及我们一起牢记,我们一起牢记我们一起牢记作为一个社区,请为所有在许多设备上使用网络的人寻求最佳结果。
我们的背景深刻地了解了我们的意图。从历史上看,微软一直专注于三个主要选区:最终用户,开发人员和企业/组织。这些受众群体已经告知我们过去在Internet Explorer中进行的投资,现在告诉我们在Microsoft Edge上进行的投资。在过去的几年中,我们听取了这些客户的倾听,他们回应的一个一致的主题是他们环境的复杂性的增加,以及对一致性,简单性,可靠性,兼容性的渴望。
多年来,我们已经有效地与Google和其他浏览器供应商合作,首先在W3C中,现在更紧密地通过Whatwg建立了Web平台的共同标准,以降低这种复杂性并改善整体网络体验。尽管整个行业的浏览器供应商在与这些共同标准保持一致方面取得了重大进展,但基本的实现和不同的发布时间表为我们的开发人员带来了困难,以使我们的开发人员完全受益于开放网络的承诺。
我们现在看到了一个机会,可以在一个通用的兼容网络平台上以更深入的方式前进,该平台将为微软的客户提供良好的服务,并将为较大的网络社区提供互惠互利的利益,同时维持浏览器生态系统中竞争性多样性的市场收益。考虑到以下机会在我们的客户群中查看以下机会:
最终用户- 尽管Microsoft Edge在基于标准的HTML和Chrome等高通用浏览器添加的功能方面具有很高的Web兼容性,但我们唯一的Web-Platform代码库仍然面临偶尔的兼容性问题,因为Web开发人员少于HTML标准标准和HTML标准和理性地关注Chrome等广泛使用的平台,以开发和验证客户的体验。尽管我们努力进行更新并连续解决这些问题,但我们将Microsoft Edge的实现作为一个组件,该组件仅按照与完整的Windows操作系统相同的时间表,使我们的更新能力放慢了能力,导致平台碎片化并揭示了兼容性差距。我们认为,更多使用开源软件(OSS)可以为我们的最终用户改善这种体验。
在Microsoft Edge浏览器之外,Windows PC上的其他浏览器的用户有时会在设备类型上面临不一致的功能集和性能/电池寿命。一些浏览器的过程较慢,可以采用新的Windows功能,例如触摸和手臂处理器。如您所知,我们最近开始做出为基于铬的浏览器提供此类硬件支持的贡献,我们相信这种方法可以概括:我们认为我们可以帮助加速网络和用户的经验。为所有这些浏览器和用户的利益,为铬开源提供了新的功能。
开发人员- 随着网络在不断扩大的设备类型阵列中的使用情况下,测试网站测试的复杂性和间接费用已经爆炸。由于Web开发人员(尤其是小型公司的Web开发人员)需要测试许多不同的系统,因此几乎不可能确保有趣的网站在所有设备类型和所有浏览器中都能很好地运行。我们希望通过将Microsoft Edge Web平台与其他Chromium-Browser对齐,并在Windows上提供有意义的,对齐的功能,从而简化Web开发人员的此矩阵。
公司IT-管理人员在个人和公司拥有的设备上都面临着使用新的和旧站点的许多不同设备类型的用户的下游复杂性。无论设备平台如何,我们都会看到有意义的价值在创建更好的Web兼容性和跨浏览器的对齐Web平台。
在所有这些受众中,我们认为我们(a)(a)(a)工程师有价值的新功能将它们带入共享开源项目时,我们可以将它们带给他们的双向利益,以实现多个浏览器,以及(b)越来越多地使用共享的共享,开放源代码在我们大规模分发的浏览器中。我们打算做这两个。
在过去的一年中,我们开始从事铬和WEBRTC开源项目(以及Microsoft更广泛的其他OSS地区),随着我们考虑更广泛的设备类型,我们的努力一直在加剧。一些例子包括…
将Chromium移植到ARM64 :我们已经与Google工程师合作完成了重要的工作,以使基于铬的浏览器能够在ARM设备上的Windows上进行编译和运行。由于我们的工程投资,基于铬的浏览器将很快能够为基于ARM的Windows PC运送本地实施,从而大大提高了其性能和电池寿命。这是一个很好的例子,表明我们对Chromium进行投资,以在这些新型PC上的一系列浏览器中移动网络体验。
使WeBRTC可以为Windows UWP应用程序工作:一年多来,我们一直在为通用Windows平台(UWP)开发WEBRTC。这为开发人员提供了所有Windows 10平台的WEBRTC解决方案,包括桌面,Xbox,Hololens/VR和IoT。上周,我们宣布与Google达成协议,将Webrtc Lib的UWP叉子推回Webrtc.org repo。
改进角度:过去,我们对Angle的D3D11后端进行了改进,并提高了其性能。最近,我们与Intel和Angle团队合作进行了其他改进,以使Angle成为Microsoft Edge中WebGL的官方后端。
我们认识到,这些是面向Web的开源贡献的谦虚但粘稠的例子。两者都为我们提供了关于我们如何以健康的方式进行协作并为铬做出贡献的宝贵观点。在Microsoft中,我们的OSS专业知识和重点都在增长 - 我们的网络团队很高兴能参加这些课程,并为数百万人前进的网络体验。
到达黄铜钉...我们将此文档放在一起,以与相关的OSS贡献者和合作伙伴有关我们的意图透明。
虽然我们一直是Chromium开源的消费者,用于运送Microsoft Edge移动浏览器和Microsoft Edge桌面的某些组件,但我们决定将更多的Microsoft Edge Desktop移动以使用Chromium开源并增加我们的贡献回到这个社区。
Microsoft Edge方向发展的关键方面是:
我们将采用铬作为Microsoft Edge桌面的网络平台。我们在这里的愿望是将Microsoft Edge的Web平台(a)与Web标准相结合,并且(b)与其他基于铬的浏览器相结合,以改善兼容性,并为开发人员提供更简单的测试矩阵。
我们将进化Microsoft Edge App Architecture,使所有受支持版本的Windows版本(包括Windows 7和Windows 8)以及Windows 10 。改善最终用户的网络体验(更好的兼容性)和开发人员(较少分裂)需要尽可能广泛地提供一致的Web平台。为此,我们将使用Chromium的跨平台应用程序技术以及我们的分销模型的更改,以便在所有支持的操作系统中可用Microsoft Edge Experience和Web平台。
我们将提供Windows平台专业知识,以改善Windows上所有基于铬的浏览器的体验。我们更多地参与铬开源的理念将包含有益的新技术的贡献,这与我们上面描述的一些工作一致。我们认识到,在Windows上更好地使网络对我们的客户,合作伙伴和我们的业务有益 - 我们打算积极地为此做出贡献。我们欢迎有机会在电池寿命,触摸,可访问性,安全性和其他相互兴趣领域与Chromium社区合作。
将本文档提供给团队和已经沉浸在Chromium OSS的人的关键目标是指出我们计划如何贡献并启动将有价值的新技术带入Chromium浏览器所需的工程计划。
我们很高兴能更深入地参与更广泛的铬项目。这是一个巨大的决定,我们认为这是正确的下一步。也就是说,我们正在迈向学习精神。我们知道,随着我们增加对铬的使用和贡献,我们需要学习很多东西,我们期待以协作方式参与并为更广泛的社区做出贡献。我们期待着随着时间的流逝而不断发展我们参与的性质和范围。
从长远来看,我们正在做出这个决定。我们希望我们的工程师学习并随着时间的流逝而成为Chromium项目的专家,并成长为社区的积极和负责任的成员。我们渴望增加对Chromium项目的贡献,并将继续维持我们做出的任何贡献。
在寻求Web平台的改进时,我们的默认位置将是贡献。我们专注于通过其不同的用户体验功能和连接服务来提供带有Microsoft Edge的世界一流浏览器,但是如果新的平台功能涉及新的平台功能,我们将寻求“浮动所有船只的涨潮”。我们将开始在ARM64支持,可访问性,安全性,触摸输入和窗口上的功率增强等领域中的错误修复和有意义的贡献。
我们认识并将尊重Web开源项目中固有的体系结构要求和工程方法,并使Chromium成功。有许多方面控制了Chromium OSS和其他项目:多设备支持,多OS支持,严格的实时工程等。尽管我们公司历史上一直专注于Windows PC,我们相信我们可以做出贡献,改进Windows上的浏览器,我们还了解Web OSS项目包含了包括Android在内的各种设备类型,并且该贡献必须适应此设备的多样性。我们将以与满足Chromium跨平台和跨设备需求的建筑设计相一致的方式做出贡献。
我们认为,从标准社区和开放的网络上,从各种各样的角度来看,开放网络的演变最能得到服务。在W3C,ECMA和Whatwg的背景下,我们将保持深入而大力参与标准讨论,其中可以听到和考虑开发竞争浏览器的供应商的观点,并考虑更大的网络社区。
当我们进步OSS的工作并考虑了我们的工程专业知识可以对用户和开发人员带来最大差异的地方,我们将最初的贡献列表汇总在一起“重点领域”。
我们想强调,我们将此列表视为起点 - 在某些领域,我们可以一起学习/练习并在其所有消费者的Chromium代码库中创建有意义的价值。
ARM64-我们在这里的计划是继续/完成移植工作,该工作将Chromium Codebase带来支持ARM -64,因此可以运输浏览器,从而在本地支持这些设备。
可访问性- 为了满足所有客户的需求,我们打算通过添加Microsoft UI自动化(UIA)接口来支持Chromium Codebase的可访问性,以支持Windows上的叙述者和其他辅助技术,并与Windows的易于访问设置集成,例如高对比度和字幕样式,改善控制能力和支持CARET浏览。
现代输入类型(例如触摸)的PC硬件演变- 我们可以帮助改善桌面触摸,手势识别和滚动/平板平滑度,尤其是在更新的,更现代的Windows设备上。
安全性- 当然,对于所有浏览器供应商而言,Web用户都尽可能安全,安全。为了支持这个共同的目标,我们期待与Chromium Security团队紧密合作,并在一般建立安全软件方面贡献我们的经验,尤其是我们在Windows平台上的专业知识。
对于Microsoft Edge团队来说,这是微软的重要一步,我们认识到这也是Chromium项目的重要一步。我们对我们认为这将带来更大的网络社区带来的好处充满热情。我们渴望开始与Google和Chromium项目的其他贡献者一起开始与我们的同行交流,并且在Chromium项目中,我们如何在公共网络平台上如何一起前进。同时,我们认识到竞争的价值,并打算为Microsoft Edge浏览器带来我们的最佳愿景,该浏览器通过差异化的用户体验功能和连接的服务在Chromium开源基础上建立。
根据我们在标准机构和先前的共同工程工作中的工作,我们已经与许多铬贡献者建立了积极的工作关系。我们期待建立这些关系和学习 - 我们如何最好地为开放网络的实现做出贡献。
为了更具体地了解我们将采取的措施和之后的备忘录,这是一个入围名单:
当我们开始与您参与Chromium项目时,我们会邀请您的评论,建议和反馈!