微软

2 月 27 日,微软周四披露了为所有 Windows 10 设备中共同采用的 Project Spartan 浏览器专门设计的新渲染引擎。微软同时还证实,Windows 10 操作系统中的 IE 浏览器也将会采用这一新渲染引擎。Windows 10 操作系统的 IE 浏览器,用户主要为仍需要使用该款浏览器的企业用户。

微软在周四详尽解释了开发这一新渲染引擎背后的动机等等。微软发现,该公司此前太过于关注“网络顶端”(即全球占据了大约 88% 流量的 9000 家网站),而不太关注“长尾”(即所有网站)。据微软表示,打造全新渲染引擎的动机,以及停止继续再为 IE 修修补补的根本原因——从简说,是因为后者陈旧的 Trident 引擎存在太多对新技术的阻碍,既要保证对过去非标准(IE 友好)代码的兼容性,又要满足新开放网络标准的规定,只会导致 IE 代码 Bug(漏洞、错误)不断增多。尤其是 HTML5 新标准的推广,让 Trident 引擎彻底成为了发展的绊脚石。微软最终选择“与过去分手”,并且从零开始编写了被用于 Windows 10 新浏览器 Spartan 的渲染引擎。

微软的查尔斯·莫里斯(Charles Morris)表示:“修复长期以来与其他浏览器之间的互通性漏洞将会使某些网站的显示遭到破坏,被破坏的正是那些包含专为 IE 优化过代码的网站。”

最近几个版本的 IE 浏览器支持多种后向兼容模式,迫使新版 IE 重复以往版本的错误。不过对微软而言,同时维持两款浏览器导致该公司无法赶上网页标准发展的速度。

微软的解决方案就是 Project Spartan。这一全新的渲染引擎将被用在所有版本的 Windows 10 中,无论是 PC 还是移动设备。Spartan 丢掉了 IE 以往的包袱,这一渲染引擎主要专注于对标准的兼容。

以往的 IE 渲染引擎,即 MSHTML.dll 或 Trident,仍将可以使用,但只提供给依靠 IE 浏览器非标准行为的网站,使得这些网站上的错误可以正确显示。

微软解释了新渲染引擎在兼容性上解决的四项主要问题:

  • 传承与现代。过去 Trident 渲染引擎内的文件兼容模式具有局限性,且不能够得到保证。这对长期存在的 IE 特有行为提供了持续性的障碍。通过其它先进的浏览器修复长期存在的兼容漏洞,事实上就相当于把站点代码告知给 IE 特有行为。
  • 兼容性视图列表。兼容性及格率此前依赖于兼容性视图列表(Compatibility View list),它能够让微软把网站代码转变为模仿传统 IE 行为的旧文档模式。不过这一做法需要经过大量的测试和维护,不可能良好的覆盖顶级网站之外的网站。
  • X-UA-Compatible。通过此前的文档兼容模式X-UA-Compatible,一些网站被强迫使用了旧文档模式,但这并非临时性权宜之计。通过X-UA-Compatible,网站此前必须让旧版本的网站能够在未来版本的 IE 上运行,同时还需要为其它先进的浏览器开发适当的版本。
  • 专注于标准。在微软过去专注于新 HTML5 格式的同时,由于有时对标准文档的解释是多样的,导致浏览器之间的互用性存在隔阂。这也导致开发者需要修复更多的漏洞,以及用户无法登陆更多的网站。

鉴于此,微软决定必须“摆脱历史”,实质上也就是摒弃 IE 的 Trident 渲染引擎。虽然许多业内人士都曾建议微软采用已被苹果 Safari 以及谷歌 Chrome 采用的开源渲染引擎 WebKit,但是基于下述两点原因,微软决定不效仿苹果和谷歌:

首先,网络以不受约束为基础,微软认为网络标准的相互兼容非常重要,有助于对抗网络标准单一性的问题。

其次,考虑到技术工作的需求,如果微软从一开始就使用自有渲染引擎开发浏览器,开发速度要比围绕着开源引擎开发新浏览器更快。

根据莫里斯的说法,对于开发 Chrome 和火狐的竞争对手,微软目前非常认真。微软曾考虑,基于已有的开源代码库,例如 WebKit,来开发新的 HTML 渲染引擎。WebKit 是苹果 Safari 浏览器的核心,而谷歌也使用 WebKit 一个版本,即 Blink,作为 Chrome 的渲染引擎。不过莫里斯表示,微软很快就放弃了使用开源代码的想法,因为微软希望自行控制代码。

他表示:“考虑到所需的工程开发工作,我们发现,相对基于开源引擎开发新浏览器,我们可以更快地推出一款基于自主引擎、专注于互操作性的浏览器。”此外,微软担心,其他浏览器厂商对 WebKit 的依赖将导致“网页单一性”,而这是微软目前所反对的。

莫里斯表示,微软将定期发布 Spartan 引擎的更新,因此其浏览器将可以跟上网页标准的最新发展。

微软决定让新渲染引擎与 Trident 分离,这也就意味着微软在仍将会对 Windows 平台进行大笔投入的同时,消除一些文档模式和其它的旧 IE 行为。这同时也意味着旧渲染引擎在企业市场仍将会保持不变,但更将会继续获得安全和“其它高级优先”补丁。微软同时还修复了如何发现、追踪和修复小网站问题的方式。