写点什么

Servo:开源嵌入式浏览器引擎

  • 2015-06-01
  • 本文字数:1040 字

    阅读完需:约 3 分钟

嵌入式浏览器引擎可以嵌入其它应用程序,像常规 Web 浏览器一样展示内容,并允许开发者自定义用户体验。Mike Blumenkrantz 是 Enlightenment 的发布经理,同时也是 EFL 工具包的核心开发者。近日,他撰文介绍了由Mozilla 基金会和三星共同推动的开源嵌入式浏览器引擎项目Servo。

许多公司都使用了Web 内容嵌入技术。比如,Rhythmbox、Kate、Eclipse 等流行Linux 应用程序、Microsoft Entourage、Apple Mail for Mac、Adobe 的产品以及Valve 的 Steam 客户端等等。然而,向应用程序嵌入 Web 内容的 API 却很少, WebKit 是最流行的一个。但它的问题是不稳定,开发者经常会因为需要与它的更新保持同步而不得不修改应用程序。 Blink 是 WebKit 的一个分支。它也有稳定性问题,而且只能用于 C++。要解决这些问题,可以使用 Chromium 嵌入式框架(CEF)。该框架基于 Blink 浏览器引擎,但它实现了用户与底层引擎变化的隔离,并提供了基本的 C API 以及 C++ 扩展。目前,Valve 的 Steam 客户端以及 Adobe 的多种产品都使用了该 API。

Servo 浏览器引擎的目标是为开发者提供最大的灵活性。为了实现这个目的,它必须提供稳定的 API 和 ABI 。它使用 Rust 编写,这使它可以提供能够从 C 语言中直接调用的 API。考虑到重新设计一个嵌入式 Web API 非常复杂,比如需要编写大量的文档,测试大量的框架以及大力的推广应用等,所以他们采用了一种不同的方式。

Servo 实现了 Chromium 嵌入式框架的 API。这意味着,正在使用 CEF 的开发者不需要对应用程序做任何修改就可以比较 Blink 和 Servo 引擎的性能,未来的开发者也不需要考虑另外一种浏览器 API。这种实现方式主要包含两个方面的工作:

  • 确保“符号(Symbol)”完全覆盖:Servo 嵌入式库可以钩连每个 CEF 函数调用。同时,任何时候分配的供外部使用的 struct,其大小和成员位置必须与真正的 CEF 所分配的 struct 类似。符号列表可以借助 Linux 工具 nm 取得。
  • 尽可能准确的模拟每个方法调用的功能:这需要完全了解 CEF 的每个函数以及它如何连接到浏览器引擎。

目前,Servo 尚处于起步阶段, 团队还非常小,项目还面临着一些问题,比如借助 CEF 提供的 C++ 扩展跟踪 C API 执行。因此,Mike 希望,感兴趣的开发者能够加入他们。更多信息请查看 GitHub 页面


感谢崔康对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-06-01 09:497758
用户头像

发布了 1008 篇内容, 共 393.1 次阅读, 收获喜欢 345 次。

关注

评论

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

【分布式技术】分布式锁和ID

L L

分布式技术 Java 技术栈

WorkPlus AI助理,为企业提供智能化客户服务,助力企业发展与竞争力

WorkPlus

Bridge 2024 for Mac(BR) v14.0.3激活版

iMac小白

RAW Power for Mac(强大的raw图像处理软件) v3.4.20中文激活版

iMac小白

Cookie for Mac(浏览器缓存清理工具) v7.2.6免激活版

iMac小白

WorkPlus一站式的企业IM系统,推动企业协作与创新发展

WorkPlus

Airfoil 5 for mac(高品质音乐播放器) v5.12.0激活版

iMac小白

Programming Abstractions in C阅读笔记:p338-p346

codists

c 数据结构与算法

[每日秒懂] DDD落地微服务架构

dinstone

微服务 DDD

释放预测分析的力量:企业的未来体验之旅

智达方通

企业管理 财务分析 预算管理 预测分析 财务预测

WorkPlus一站式IM即时通讯解决方案,提升企业沟通效率与协作能力

WorkPlus

4K Video Downloader Plus Pro for Mac(4K视频下载器) v1.5.1激活版

iMac小白

Fork for Mac(Git客户端) v2.41.1激活版

iMac小白

私有化视频会议的重要性与优势,WorkPlus Meet助您安全高效沟通

WorkPlus

RPC 快速入门

蔡农曰

程序员 后端 软件开发

iOS自定义应用设置页面

珲少

JetBrains pycharm pro 2023 for mac(Python编辑开发) v2023.3.5中文激活版

iMac小白

4K YouTube to MP3 for Mac(在线视频转Mp3软件) v5.2.1中文激活版

iMac小白

WorkPlus领先的局域网通讯软件,打造高效快捷的内部通讯平台

WorkPlus

光伏逆变器在环测试解决方案

芯动大师

光伏发电 变流器

All to MP3 Audio Converter for Mac(mp3音频格式转换器) v5.2.0直装版

iMac小白

成长-最佳实践-程序员如何应对焦虑

南山

程序员 最佳实践 成长 焦虑

WorkPlus提供高效统一门户平台,助力企业信息管理与工作协同

WorkPlus

Luminar Neo for mac(图像编辑软件) v1.18.3中文激活版

iMac小白

ARTS 打卡第1周

AI帅辉

ARTS 打卡计划

人生使命

南山

程序人生 成长 价值观 焦虑 使命愿景

CancellationToken:程序员必读的悬空指针灾难案例

CnosDB

开源 时序数据库 tsdb CnosDB

人性的撕裂与重生

少油少糖八分饱

小说 推理小说 悬疑 绝叫

Servo:开源嵌入式浏览器引擎_语言 & 开发_谢丽_InfoQ精选文章