Chrome最新版放弃webkit内核,改为blink

科学上网
Blink项目页面
Chromium项目(FAQ)

目录

  1. 为什么Chrome会产生新的浏览器引擎?

  2. 我应该从Chrome中获得什么样的东西?

  3. 这个新的浏览器引擎是否会更加分散Web平台的兼容性?

  4. 支持,是不是更多浏览器共享WebKit以获得兼容性?

  5. 这对Web标准有何影响?

  6. 我们现在会看到-chrome-供应商前缀吗?

  7. 那么我们有一个更加分散的移动WebKit故事?

  8. 什么阻止Chrome发布专有功能?

  9. 这只是谷歌开发技术的一个诡计吗?

  10. 在未来12个月内,我们应该从Chrome和Blink中看到什么?长期呢?

  11. 这是开源吗?

  12. Opera最近宣布他们的浏览器采用了Chromium。他们的计划是什么?

  13. 为什么这对我作为Web开发人员有好处?

1. 为什么Chrome会产生新的浏览器引擎?

我们做出这一改变有两个主要原因。

主要原因是Chromium使用与其他基于WebKit的浏览器不同的多进程架构。因此,多年来,支持多种体系结构导致WebKit和Chromium社区的复杂性日益增加,从而减缓了创新的集体速度。

此外,这使我们有机会对其他绩效改进策略进行开放式调查。我们希望Web应用程序尽可能快。因此,例如,我们希望尽可能多地使浏览器的职责并行运行,因此我们可以为您的应用程序代码保留主线程。我们已经在这里取得了重大进展 - 例如通过减少JavaScript和布局对页面滚动的影响,并使得越来越多的CSS动画可以以60fps运行,即使JavaScript正在做一些繁重的工作 - 但是这只是开始。

我们希望为V8为JavaScript做的网络,渲染和布局做些什么。还记得V8之前的JS引擎吗?我们希望在所有浏览器上实现同样的健康创新,使所有网络用户受益。

2. 我应该从Chrome中获得什么样的东西?

在Blink Architectural Changes部分中,我们列出了一些可以提高Chrome平台中网络平台速度和稳定性的更改。同时,还有更多改进,其可行性和性能优势我们很 高兴调查:

提供更快速的DOM和JS引擎

针对V8的多进程,以安全为中心,快速低开销的DOM绑定

V8中的JIT DOM属性getter。这将允许V8访问div.id,div.firstChild等,而无需离开JIT代码。Mozilla也在尝试JIT DOM属性getter

在JS中实现DOM。这有可能使JavaScript DOM访问速度更快,但是会涉及WebKit的DOM实现的大量重写。IE已经这样做了,总的来说,这有助于提高GC的速度,加快DOM绑定速度

支持V8中的快照。这可以让我们没有先前加载的页面的分析时间开销和近乎即时的启动。

保持平台安全

合成器线程更好的沙盒

进程外iframe。使用渲染器进程作为跨站点iframe之间的安全边界

重构性能

减少绑定层开销。通过简化在JavaScriptCore和V8之间共享代码的绑定层中的许多抽象(例如ScriptState,DOMRequestState等),我们可以使事情变得更快。

提高样式分辨率的性能。

提高多核的利用率。

启用更强大的渲染和布局

追求多线程布局

大修样式重新计算和选择器分辨率性能

停止为隐藏的iframe创建渲染器

当插件设置为display:none时,修复插件卸载等旧错误。

允许生成的内容可选择并可复制粘贴。

重写事件处理更加一致,并且具有更少的错误,包括焦点,鼠标,点击等。

Fire 卸载事件异步以使removeChild更快。 <iframe></iframe>

3. 这个新的浏览器引擎是否会更加分散Web平台的兼容性?

我们敏锐地意识到当今开发人员面临的兼容性挑战,并将与其他浏览器供应商密切合作,推动网络向前发展,并保持互操作性,使其成为一个成功的生态系统。在过去的几年里,我们还做了很多工作来减轻这种痛苦。获取Web标准社区的巨大成功之一:HTML5 Parser。所有主要的浏览器引擎现在共享完全相同的解析逻辑,这意味着诸如破坏标记,标签包装块元素和其他边缘情况之类的东西都在浏览器中一致地处理。这种互操作性对Chrome非常重要,我们希望为其辩护。

我们的团队定期为记录浏览器支持和差异的网站做出贡献,例如Mozilla的MDNWebPlatform.orgCan I Use。我们想要的最后一件事是让事情倒退。

我们将测试视为Web浏览器互操作性的关键部分。Chrome目前共享和运行由Opera,Mozilla和W3C工作组撰写的测试,我们将在未来做得更好。开发人员需要能够依赖Chrome的标准实施,这是我们非常重视的事情。有关我们的计划,请参阅测试部分。

4. 支持,是不是更多的浏览器共享WebKit更好的兼容性?

重要的是要记住,WebKit已经不是开发人员的同质目标了。例如,WebGL和IndexedDB等功能仅在某些基于WebKit的浏览器中受支持。了解WebKit for Developers有助于解释详细信息,例如,为什么 <video>,字体和3D转换实现因WebKit浏览器而异。</video>

今天Firefox使用Gecko引擎,它不是基于WebKit,但两者具有高度的兼容性。我们通过一个独特但兼容的开源引擎采用与Mozilla类似的方法。我们还将继续提供开放式错误跟踪和 实施状态,以便您随时查看并参与我们正在处理的工作。

从短期来看,单一文化似乎有利于开发人员的生产力。然而,从长远来看,单一文化不可避免地导致停滞不前。我们坚信,渲染引擎的更多选择将带来更多创新和更健康的网络生态系统。

5. 这对Web标准有何影响?

将新的浏览器引擎引入世界可以增加多样性。虽然这本身不是我们的目标,但它具有确保存在可接受标准的多个可互操作实现的有益效果。每个引擎都将从不同的方向处理相同的问题,这意味着Web开发人员可以对最终结果的性能和安全特性更有信心。它还使得一个实现的怪癖成为事实上的标准的可能性降低,这对于开放的Web来说是有益的。

6. 我们-chrome-现在会看到供应商前缀吗?

我们已经看到供应商前缀的激增如何给开发人员带来痛苦,我们不想加剧这种情况。截至今天,Chrome正在采用供应商前缀政策,这与Mozilla最近公布的政策类似。

简而言之:我们不会将供应商前缀用于新功能。相反,我们将公开一个设置(in about:flags)以启用实验性DOM / CSS功能,以便您查看即将发生的事情,玩游戏并提供反馈,就像我们今天使用“Experimental WebKit功能”/“ 启用实验性Web”一样平台功能“ 标志。只有当我们准备将这些功能发送到稳定版时,它们才会默认启用在开发/加拿大通道中。

对于传统的供应商前缀功能,我们将继续使用前缀,因为将所有这些前缀重命名为其他内容会导致开发人员不必要的痛苦。我们已经开始研究 HTML5和CSS3功能的实际使用情况,并希望使用这样的数据来更好地告知我们如何负责任地弃用前缀属性和API。至于我们继承的任何非标准功能(如),随着时间的推移,我们希望根据具体情况帮助标准化或弃用它们。-webkit--webkit-box-reflect

7. 那么我们有一个更加分散的移动WebKit故事?

我们真的不希望这样; 花在差异上的时间是建立应用程序功能所花费的时间。我们将注意力集中在使Chrome for Android成为最佳移动浏览器上。因此,您应该期望在桌面Chrome中获得相同的兼容性,快速发布计划和超高的JS和DOM性能。

您的网站或应用在移动网络上的成功取决于其运行的移动浏览器。我们希望看到整个移动网络平台与您的应用程序的抱负保持同步,甚至预期。Opera已经发布了基于Chromium的浏览器的测试版,其功能和功能与Android上的Chrome非常相似。

8. 是什么阻止Chrome发布专有功能?

我们的目标是推动创新并改进兼容的开放式网络平台,而不是增加大量功能并破坏与其他浏览器的兼容性。我们正在引入面向开发人员的强大政策,包括添加新功能使用供应商前缀,以及 何时应将功能视为足够稳定以便发布。这标准化了我们关于深思熟虑地扩展平台的政策,并且由于透明度是Blink的核心原则,我们希望这个过程对您来说同样可见。我们最近介绍的Chromium功能仪表板提供了许多已实现和计划的功能的标准和实施状态视图。

请随时通过Gitiles观看Blink的开发,点击blink-dev邮件列表,加入#blinkFreenode。

我们知道引入新的渲染引擎会对Web产生重大影响。在接下来的几个月里,我们希望通过让我们的行动胜于雄辩,赢得更广泛的开放网络社区的尊重。

9. 这只是谷歌开发技术的一个诡计吗?

不,完全没有!我们针对强调标准,互操作性和透明度的新功能制定了强有力的指导方针。我们希望能够保持所有新的发布功能,这些功能会影响开放网络上的Web开发人员,直至达到相同的审查级别。主要在Google内部开发的技术和标准将遵循与其他标准相同的指导原则。

10. 在接下来的12个月里,我们应该从Chrome和Blink中看到什么?长期呢?

我们的主要短期目标是改善我们发布Chrome的所有平台的性能,兼容性和稳定性。从长远来看,我们希望能够显着改善Chrome并激发所有浏览器制造商的创新。我们将增加对一致性测试的投资(与W3C工作组共享),作为我们致力于成为开放网络的优秀公民的一部分。

11. 这是开源的吗?

当然是。Chromium已经是开源的,Blink是该项目的一部分。透明度是我们的核心原则之一。开发Blink详细介绍了这一点。

12. Opera最近宣布他们为他们的浏览器采用了Chromium。他们的计划是什么?

正如Bruce Lawson在他的博客中提到的那样,Opera将采用Blink 。

13. 为什么这对我作为Web开发人员有好处?

改善用户体验的关键之一是为开发人员提供他们所需的工具,功能,兼容性和性能,以充分利用平台。虽然此举取决于架构的必要性,但它也使我们能够优先考虑在移动设备和桌面设备上构建下一代应用程序所需的功能。与V8的推出类似,我们希望这将刺激创新,您可以并且应该期望整个网络平台受益。

我们的雄心壮志,我​​们仍然需要反馈和贡献,使Chrome成为今天的浏览器。您还应该期望提高Blink开发过程的透明度,因此参与进来将比以往更容易。请查看Chromium功能仪表板,试用Dev / Canary中的未来功能并提交您找到的任何错误

〜由Paul Irish Relations团队的Paul Irish和Paul Lewis撰写的常见问题解答

推荐阅读更多精彩内容