AICon 北京站 Keynote 亮点揭秘,想了解 Agent 智能体来就对了! 了解详情
写点什么

浏览器市场再起波澜:Google 和 Opera 支持 Blink,Samsung 联合 Mozilla 推动 Servo

  • 2013-04-07
  • 本文字数:2502 字

    阅读完需:约 8 分钟

近日有两则与浏览器开发相关的重要新闻:一个是 Google 和 Opera 支持 WebKit 的分支 Blink ;另一个是 Samsung 将与 Mozilla 合作,共同推动 Servo 。Blink 和 Servo 均以并行架构为目标。

不久之前,Opera 宣布放弃自己的浏览器引擎 Presto,拥抱WebKit 。当时有人还担心,少了一种多样性对Web 会有何种不利影响。现在他们不必烦恼了,因为Google 从WebKit 创建了一个分支——即名为 Blink 的抽象浏览器引擎,其开发会与 Chromium 结合在一起,由后者提供该平台的一种实现。Opera 的 Web 布道师 Bruce Lawson 宣布, Opera 将与 Google 一起开发 Blink

WebKit 渲染引擎现在势头很猛,而且或许有机会成为最重要的引擎,那 Google 为什么要创建一个分支呢? Google 认为,尽管“只有一种选择看上去对开发者的效率有利”,但从长期来看,“只有一种选择不可避免地会导致停滞不前”,而“如果有更多的渲染引擎可以选择,这会带来更多创新,也会使 Web 生态系统更健康”。

据 Google 介绍,之所以创建 WebKit 分支,有两个主要的技术原因:

  • 与其他基于 WebKit 的浏览器相比,Chrome 使用了与众不同的多进程架构。此举给 WebKit 和 Chrome 都带来了一定的复杂性,延缓了创新的步伐。
  • Blink 提供了一种选择,Google 可以根据自身需要改进其浏览器性能,引入并行处理机制也是一个主要方向。

简而言之,Google 希望“像 V8 对 JavaScript 所做的改进一样,改进网络、渲染和布局。还记得 V8 之前的 JS 引擎吗?我们希望带来同样健康的创新,让使用各种浏览器的 Web 用户都能受益”。

看来 Google 希望能够根据自己的需要自由推动 WebKit 的开发,不必遵守 WebKit 的开发协议,而且能增强自己控制力更强的 Chromium。要成为 Blink 的提交者( Committer )或所有者( Owner ),其他开发者必须遵从 Google 制定的指导原则。

Google 的第一步是重新组织所继承的 WebKit 代码,“移除了 7 个构建系统,删除了 7000 多个文件——包含的代码超过 450 万行”。从长期来看,Google 希望向 Blink 中引入一系列改进,包括:

  • 进程外的 iframe ,支持在单独的沙盒进程中运行不同的页面组件。
  • 更快、更简洁的网络,目前受限于“旧的 Mac WebKit API 条款而无法修改”。
  • 将文档对象模型(DOM)整个移到 JavaScript 中。这有可能大大加快 JavaScript DOM 访问速度。

Google 还考虑了如下可能的改进

  • 让 WebCore 了解多个进程内的历史记录信息(目前假定的是同步访问同一进程内的历史记录信息)
  • 删除 Widget 树(原来受到 Mac WebKit1 的限制)
  • 将 WebCore 分到多个模块中
  • 尽可能让代码直接使用沙盒 Platform API,代替 WebCore/Platform API
  • 建立一种更简洁、更严格的 tree-gardening 系统,避免每天需要两个全职工程师参与的情况
  • 尝试把 DOM 移到 JS 堆中
  • 增加对多核的利用(比如,改进 HTML 解析器、样式引擎和 JavaScript 解析器等模块)
  • 去掉 DOM 中不够清晰的部分,这些部分可以做一些向后不兼容的修改,这样有利于提高性能或降低复杂性
  • 在 Mac Chrome 中全部使用现代的、速度更快的 tcmalloc
  • 尝试增量式布局或并行布局
  • 因为现在只有一个 JavaScript 引擎,所以可以移除 ScriptValue/ScriptState 等抽象概念,以此来修复内存泄漏问题
  • 使用 WebIDL 替换 WebKitIDL,移除定制的 JavaScript 绑定代码
  • 改进 WebCore,使之赶上 DOM3 Event/[DOM]UI Event

新浏览器引擎的出现引发了 Web 开发者的担忧,他们必须确保其代码能在新的浏览器上正确运行。为缓解开发者的焦虑,Google 引入了与 Mozilla 开发 Firefox 类似的机制。

我们的目标是推动创新,改进兼容性,开放 Web 平台,同时避免加入很多特性,避免破坏与其他浏览器的兼容性。关于新特性的添加厂商前缀(Vendor Prefix)的使用,以及新特性何时才算足够稳定进而可以交付等问题,我们面向开发者引入了强有力的策略。

Firefox 今天所用的 Gecko 引擎并不是基于 WebKit 的,不过二者高度兼容。我们会采用与 Mozilla 类似的方式,提供一个独特但兼容的开源引擎。我们也会继续开放 Bug 跟踪和实现状态,开发者随时可以看到我们在干什么,并做出自己的贡献。

另一个重要策略与厂商前缀有关,Google 不打算将其用于新特性中了:

与之相反,我们会暴露一个设置入口(在about:flags 中),以便支持实验性的DOM/CSS 特性,用户可以在此看到新添加的特性,进而加以试用并提供反馈,很像目前使用的“Experimental WebKit Features”标记。只有当我们想看看这些特性能否稳定交付时,才会在dev/canary 版本中默认启用。

对于遗留的与厂商前缀有关的特性,我们会继续使用-webkit- 前缀,因为重命名所有前缀会给开发者带来不必要的麻烦。我们已经着手研究实际中应用的HTML5 和CSS3 特性,借助调研数据,可以更好地指导我们如何可靠地弃用相关前缀所指定的属性和API。至于从WebKit 继承而来的任何非标准特性(如-webkit-box-reflect),我们希望具体问题具体分析,随着时间的推移,将其标准化或是弃用。

至于一般性的Android 和移动开发,Google 希望“整个移动Web 平台与Blink 同步,甚至走在Blink 的前面”。

之后WebKit 就主要由Apple 掌控了,这是Blink 带来的副作用之一。Apple 能否快速推进WebKit,使其跟上其他浏览器的步伐?我们拭目以待。

就在Google 宣布Blink 几小时前, Mozilla 宣布与 Samsung 合作,共同推进 Servo 的开发。这是用 Rust 开发的一个并行浏览器项目,作为“利用明天速度更快的多核异构计算架构”的一种尝试。Servo 是“完全从头开始重新构建的 Web 浏览器”,纳入了安全机制,并支持高度并行的硬件。

第一步是让它运行在 Android/ARM 上,到目前为止,Samsung 的主要贡献是“Rust 的 ARM 后端,以及支持 Android 交叉编译所必需的构建基础设施”。

目前,Servo 是运行在 Mac OS X 和 64 位 Linux 上的一个原型浏览器引擎,因为它所用的编程语言尚未成熟,很可能还要承受成长之痛。Mozilla 在同一天宣布了 Rust 0.6 ,但该语言要达到稳定,至少还需要一年的时间。在此期间,他们要“争取完成 Rust 的第一个主要版本——完成库的清理、扩充和文档化,构建改进用户体验的工具,增强性能”。

查看英文原文 Google, Opera Fork WebKit. Samsung Joins Firefox to Push Servo

2013-04-07 04:215968
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 143.4 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

基于训练和推理场景下的MindStudio高精度对比

华为云开发者联盟

人工智能 华为云 12 月 PK 榜

从一个 issue 出发,带你玩图数据库 NebulaGraph 内核开发

NebulaGraph

图数据库 开源贡献

埃文科技完成数千万A轮融资

郑州埃文科技

网络安全 企业融资 数据服务

福利Day | KaiwuDB 邀你相约 DTCC 2022,文末免费抢价值3200元大会门票!

KaiwuDB

数据库

找运营商电商化运营突破口的九个策谋

鲸品堂

12 月 PK 榜

学习java参加培训哪个比较好呢?

小谷哥

前端培训学习需要什么条件?

小谷哥

TDH 社区版上新宽表数据库 Hyperbase,轻松实现海量数据的毫秒级精确检索

星环科技

数据库

智慧交通的待解谜题,中科视语在首届昇腾AI创新大赛交出金奖答案

脑极体

go实现类似spring BeanUtil工具

Z.K

30个编程小技巧,提高代码性能

千锋IT教育

SoviChart数据可视化:条形图(Bar chart)

2D3D前端可视化开发

数据分析 数据可视化 可视化图表 sovitchart 条形图

小游戏的前世今生

FinFish

微信小程序 休闲游戏 小游戏 H5小游戏

Gin路由添加流程

Z.K

微服务开发平台 Spring Cloud Blade 部署实践

北京好雨科技有限公司

Kubernetes 微服务 云原生 Spring Cloud

网络安全之从原理看懂XSS

网络安全学海

黑客 网络安全 安全 信息安全 渗透测试

王者荣耀商城异地多活架构设计

Jack

架构实战训练营9期

web前端培训应该怎么做

小谷哥

直播预告丨泛CG元宇宙分会场云桌π—从NVIDIA XR到云渲染,如何构建元宇宙虚拟场景生态闭环

3DCAT实时渲染

CG 渲染 虚拟现实 元宇宙 元宇宙开发

Spring 事务失效的六种情况

江南一点雨

spring 事务

微服务中的鉴权该怎么做?

江南一点雨

SpringCloud Gateway openfei

学习web前端培训怎么样呢

小谷哥

FFA 2022 收官总结|活动报告出炉,实时即未来!

Apache Flink

大数据 flink 实时计算

Getaverse - 基于Web3.0数字认证引擎协议的元宇宙生态服务平台

Geek_Web3

Web3 Daily #区块链# did web3

笔记2022-12-06

mklop

学习笔记 构架

大数据培训学习方法有哪些

小谷哥

制定数据战略的三大要素和五个步骤!

用友BIP

消息队列跨区域协同方案的演进

移动云大数据

kafka pulsar

Getaverse测试网即将上线,节点销售火爆,是否成为下一个GALA?

Geek_Web3

区块链 Web3 Daily #区块链# did web3

Getaverse月报 - 11月

Geek_Web3

区块链 Web3 Daily #区块链# did web3

艾瑞《政企数智办公平台行业研究报告》,政企数智办公「百宝书」

融云 RongCloud

办公 数智化

浏览器市场再起波澜:Google和Opera支持Blink,Samsung联合Mozilla推动Servo_开源_Abel Avram_InfoQ精选文章