MiniBlink

Miniblink 简介

Miniblink 是一个独立的、追求极致小巧的浏览器内核项目。它保持了约 10M 的极简大小,是所有同类产品中最小的体积,同时支持 Windows XP 和 NPAPI。

市面上可用的浏览器内核组件主要有以下几种:WebKit、CEF、NW.js、Electron。让我们来看看它们各自的优缺点:

CEF

优点:

  • 集成 Chromium 内核,对 H5 支持全面
  • 用户群体大,教程、示例和资源丰富

缺点:

  • 体积过大(最新版本超过 100M)
  • 需要携带大量文件
  • 新版本不支持 Windows XP(Chromium M49 之后)
  • 多进程架构导致资源消耗大

NW.js 和 Electron

优点:

  • 可以使用 Node.js 资源
  • 自带各种 API 绑定
  • 基于 JS 的开发方案,前端开发友好
  • 周边资源丰富

缺点:

  • 与 CEF 类似,体积过大
  • 资源消耗大

原版 WebKit

缺点:

  • Windows 版本更新缓慢
  • 体积超过 20M
  • 周边资源稀少
  • 无法使用 Safari 的开发者工具

WKE

  • 老旧的 WebKit 内核裁剪版
  • 体积小但 bug 较多

1. 极致精简

  • 严格限制大小
  • 移除不必要的功能(如音视频)
  • 专注于网页排版和渲染
  • 使用 VC6 CRT 运行

2. 技术先进性

  • 紧跟最新 Chromium
  • 可利用 Chromium 相关资源
  • 计划支持 Electron 接口
  • 支持无缝替换 Electron

Miniblink 提供了以下接口:

  • Electron 接口
  • WKE 接口

注意:早期版本提供的 CEF 接口已被废弃。

示例项目

  • Brackets(基于 CEF 的开源编辑器)
  • VS Code(通过 Electron 接口运行)

技术实现

如何实现极致精简?

主要通过以下方式:

  1. 从 Chromium 中抽离 Blink
  2. 补充 CC 层(硬件渲染层)
  3. 重写复杂的渲染架构

相比 WebKit 的优势

  • 支持多线程解析 HTML token
  • 内置 Blink GC 回收器
  • 多线程录制回放渲染机制
  • 更快的解析渲染速度

即将开源 Blink GC 组件,这是一个在 C++ 中实现的垃圾回收机制,让 C++ 开发更接近 Java 的体验。