BT

您是否属于早期采用者或者创新人士?InfoQ正在努力为您设计更多新功能。了解更多

Breach:基于Chromium和Node.js构建的“可破解”的浏览器

| 作者 James Chesters 关注 1 他的粉丝 ,译者 李彬 关注 0 他的粉丝 发布于 2014年7月28日. 估计阅读时间: 6 分钟 | ArchSummit社交架构图谱:Facebook、Snapchat、Tumblr等背后的核心技术

最近,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(在打包的时候已经安装的默认模块)的重要特性,包括:

  • 标签页遵循FIFO原则;
  • 标签页能够嗅探页面的颜色;
  • 在URL地址栏输入时,Breach将对标签页进行动态筛选。

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

node-webkit 用户表示情绪稳定 by wen bob

看起来这是一个高度类似于 node-webkit 但目的完全不同的项目。 nw 的目的是提供一个通用的 App 开发环境,主要着力于解决通用的开发需求。 Breach 看起来像是给 nw 加了一个高度定制 chromium 细节的 node扩展。我认为 Breach 项目可以做成基于 nw 的 C++ node模块,不需要从头练级。

Re: node-webkit 用户表示情绪稳定 by Hu Yaowen

Atom这个Github放出的编辑器思路很相似,也是高度模块化、可订制、可“破解”的。

re by 李 彬

感觉breach更加强调ui/ue的问题,堆这方面的定制提供更多支持。另外它使用js而不是c++,不知是否有点为了js而js?

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT