最近,Stanislas Polu发布了Breach的第一个公开测试版(Alpha版),这是一个基于Chromium和Node.js构建的模块化浏览器。
在文章“构建下一代Web浏览器的实验平台”中,Polu简要介绍了引发Breach的实验性项目。在他看来,“一直延续下来的Web浏览的方法”从未改变,而且浏览器从未针对这样的Web场景进行针对性设计:它“永远处于打开并且联网的状态”。
Polu表示:
ExoBrowser的目的,是在Web渲染引擎之上嵌入Node.js。其主要目标在于,把绝大部分浏览器代码从C++迁移到JavaScirpt(借助特定的JavaScript闭包和语法,以及Node.js的原生能力——例如网络能力)。
ExoBrowser背后的基本动机来自这样一个现实情况:在构建浏览器的过程中,我们能够随心处置JavaScript引擎和HTML渲染引擎。那么,为什么我们要忍受使用C++构建浏览器本身所经历的那些痛苦?为什么不“启动它”并使用它自己拥有的技术进行构建?而这正是ExoBrowser希望能够实现的。
之后不到一年的时间里,在ExoBrowser之上运行的Breach就诞生了。接受采访的过程中,Polu向InfoQ表示,Breach让开发者只靠Web技术,就能够打建出全新的浏览体验。
在发行公告中,Polu宣称,尽管Breach还很年轻,但是他相信Breach将允许其使用者“破解”其代码并改变其行为,从而为浏览器带来新的、有趣的方向。
他说:
我们设计并完整地编写了向模块提供的Breach API。这些API可以用来实现完整的模块化浏览器的愿景——在这样的浏览器中,功能是由简单、独立的Web应用提供的。我们融合了至少四个Chromium内容API的主流版本,并使Breach核心引擎始终追随最新的HTML5标准。此外,我们还修订了大量的Bug,让Breach足够稳定,从而能够胜任作为我们日常主要使用的浏览器所肩负的重大职责。
Breach中有一些涉及到mode_strip(在打包的时候已经安装的默认模块)的重要特性,包括:
Polu表示,这些实验性质的特性将提供有趣的浏览体验,但是Breach将赋予开发者“彻底修改其外观和行为并(更重要地是)对其进行扩展的自由”。
对于Breach的反响褒贬不一,部分开发者和JavaScript社区表达了对Breach这个名字的疑虑。Hacker News上,在黑客新闻展播(Show HN):Breach——一个基于Chromium和Node.js构建的模块化浏览器及相关讨论中,WeSawIt.com的首席技术官Christopher Elwell对Breach评价道:“我可能会通过浏览器发送几乎全部个人数据。对于应用来说,这个名字(Breah,意为‘攻破’)感觉并不可靠。”
在Reddit的讨论Breach,使用JavaScript编写的可破解的浏览器中,用户640*480表示:
面对“Breach”这样一个名字,“可破解”这个说法会引导我进行负面解读。
这个项目的思路听起来很酷,但是与其他浏览器(比如Firefox)相比,它到底有何不同?Firefox拥有许多扩展,它们同样能够完全改变浏览器工作方式。
社区里,其他人也依旧并不清楚Breach到底能够提供什么新东西。用户Shawnz询问道:“Breach身上有什么Firefox并不具备的东西?Firefox也是开源、模块化的,而且同样使用JavaScript编写(尽管是与XUL而不是HTML结合,并且使用Gecko而不是Webkit内核)。”
Polu给出的回答如下:
我们的平台要更进一步:它不向浏览器直接提供任何功能,从而保证浏览器完全基于模块构建。同时,我们基于Chromium Content模块完成这一切。Breach与Firefox的根本动机相同,但我相信,基于Breach来重新编写整套Web浏览体验或许会更简单。
除了名字方面的问题,以及一些对于Breach能够提供什么的困惑外,试用过这个浏览器的用户们的反馈是正面的。在Hacker News上,用户Paul Sawaya表示:
这是个伟大的理念。我曾经想要构建一些类似的东西,但从未付诸行动。我认为这里的许多评论并没有准确领会Breach的目的。Firefox和XUL同样是在浏览器之上叠加的可以使用JS脚本描述的UI,但它是个糟糕的工作环境。
UI是区别不同Web浏览器的主要因素。我们使用的选项卡风格的浏览器外观,已经许多年没有变过了。而Breach将支持各种有意思的实验和定制。对于能够看到这样的项目不断前进,我感到非常兴奋。
Polu表示,在未来的几个月中,Breach还有大量技术栈上的工作以及面向模块开放的API有待完成。他表示,这些工作的目标是让Breach足够可靠,以成为其他开发者构建工作的有力基础。Polu相信,Breach还将在聚合原生应用和HTML5 Web应用方面扮演重要的角色,同时他对于目前Google Chrome应用的模型并不满意。
Breach将基于MIT协议发布。InfoQ读者可以通过构建新模块或参与当前工作的方式,为该项目贡献自己的努力。不过,Polu表示,他已经被最近的贡献和反馈淹没了,因此他正计划围绕着项目创建一个社区,从而推动Breach不断前进。
查看英文原文:Breach: Hackable Browser Built on Chromium and Node.js