QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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

  • 2014-07-27
  • 本文字数:2025 字

    阅读完需:约 7 分钟

最近,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

2014-07-27 11:362711
用户头像

发布了 256 篇内容, 共 74.9 次阅读, 收获喜欢 10 次。

关注

评论

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

三年开发,头铁面试阿里4面技术+1面HR,终获offer

Java 程序员 后端

阿里 P8大牛的 Maven学习笔记,在 GitHub上仅一天就获赞 上万

Java maven 编程 程序员

三面微软,四面雅虎,外企面经复盘总结,那些你不知道的面试技巧

Java 程序员 后端

不要再本地启动项目调试了,试SpringBoot远程调试你会发现新大陆!

Java 程序员 后端

不错,这么好的东西不白嫖也太可惜了!阿里内部首发“Springboot成长笔记”

Java 程序员 后端

两道面试题,带你解析Java类加载机制

Java 程序员 后端

为了加快速度,Redis都做了哪些“变态”设计(1)

Java 程序员 后端

一文带你快速搞懂动态字符串SDS,面试不再懵逼

Java 程序员 后端

一文彻底帮你打通SpringAOP的任督二脉,大厂高薪指日可待,建议收藏!!!

Java 程序员 后端

学会了axios封装,世界都是你的

CRMEB

为了加快速度,Redis都做了哪些“变态”设计

Java 程序员 后端

一文快速搞懂Redis的几种数据类型

Java 程序员 后端

三分钟:极速体验JAVA版目标检测(YOLO4)

Java 程序员 后端

《Linux一学就会》第三章:文件系统的管理方法和xfs文件系统备份恢复

侠盗安全

Linux linux运维 云计算架构师

不是吧!你还不会在微服务中如何设计一个权限授权服务?

Java 程序员 后端

一文参透:缓存一致性策略以及雪崩、穿透等问题

Java 程序员 后端

架构实战营 模块四作业

felix

架构实战营

不就是Redis吗?竟让我一个月拿了8个offer,其中两家都是一线大厂

Java 程序员 后端

三种常见的限流算法

Java 程序员 后端

上线GitHub七天后就标星87

Java 程序员 后端

东汉末年,他们却把「服务雪崩」玩到了极致(干货

Java 程序员 后端

万字长文!从底层开始带你了解并发编程,彻底帮你搞懂Java锁!

Java 程序员 后端

移动千牛开放体验治理实践与防治方案

阿里巴巴终端技术

ios android 用户体验 舆情分析 移动端

两年CRUD,没料到我这渣二本,备战两个月面试阿里,居然侥幸拿下P6的offer

Java高级开发

七年阿里升级路,熬到P7,想给正在成长的Java程序员一点建议

Java 程序员 后端

两年JAVA程序员的面试总结

Java 程序员 后端

一文看懂 Redis 的持久化

Java 程序员 后端

一文看懂mybatis底层运行原理解析

Java 程序员 后端

WeTest六周年|质领未来,向新而行

WeTest

个性化推荐系统设计(3

Java 程序员 后端

中高级开发面试必问的Redis面试题,看这篇就够了!

Java 程序员 后端

Breach:基于Chromium和Node.js构建的“可破解”的浏览器_JavaScript_James Chesters_InfoQ精选文章