@lsmn
2015-05-15T14:07:23.000000Z
字数 1173
阅读 3358
开源
浏览器
嵌入式
Chromium
嵌入式浏览器引擎可以嵌入其它应用程序,像常规Web浏览器一样展示内容,并允许开发者自定义用户体验。Servo是一个由Mozilla基金会和三星共同推动的开源嵌入式浏览器引擎项目,旨在为开发者提供最大的灵活性。
嵌入式浏览器引擎可以嵌入其它应用程序,像常规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。这种实现方式主要包含两个方面的工作:
目前,Servo尚处于起步阶段, 团队还非常小,项目还面临着一些问题,比如借助CEF提供的C++扩展跟踪C API执行。因此,Mike希望,感兴趣的开发者能够加入他们。更多信息请查看GitHub页面。