SerenityOS 作者新作品:跨平台 Web 浏览器 Ladybird


SerenityOS 系统的作者 Andreas Kling 近日介绍了他开源的跨平台浏览器项目: Ladybird。

Ladybird 浏览器于今年 7 月 4 日诞生,最初 Ladybird 的开发是作为 SerenityOS 系统的  “ LibWeb”  浏览器引擎调试工具,随后 Andreas 想给它构建一个简单的 GUI 。随着 Ladybird 的不断完善,两个月后,Andreas 发现自己完成了一个 Web 浏览器的大部分开发工作, Ladybird 已经算是一个跨平台的 Web 浏览器。

(Ladybird 浏览器视觉效果)

Ladybird 浏览器基于 SerenityOS 的 LibWeb 和 LibJS 引擎,LibWeb 于 2019 年开始开发,当时被称为 LibHTML ,其 JavaScript 引擎 LibJS 则于 2020 年开发。

基本架构

LibWeb 和 LibJS 都是新的引擎。作者有 Qt 和 WebKit 项目的开发历史,所以从中得到了一些灵​​感,但所有的代码都是新的,浏览器和库用则 C++ 编写。

这是当前浏览器堆栈的粗略细分:

  • Ladybird : 选项卡式浏览器 GUI 应用程序
  • LibWeb:Web 引擎,多种标准:HTML、DOM、CSS、SVG,……
  • LibJS:ECMAScript 语言、运行时库、垃圾收集器
  • LibGfx:2D 图形、文本渲染、图像格式(PNG、JPG、GIF,...)
  • LibRegex:正则表达式引擎
  • LibXML : XML 解析器
  • LibWasm:WebAssembly 解析器和解释器
  • LibUnicode:Unicode 支持库
  • LibTextCodec : 文本编码转换库
  • LibMarkdown : Markdown 解析器
  • LibCore:其他支持功能(I/O、日期时间、MIME 数据……)
  • Qt:跨平台 GUI 和网络

LibWeb 有一个Platform层,Ladybird 为事件循环、计时器、系统字体设置等注入 Qt 支持代码。目前 Ladybird 使用 Qt 进行网络任务,因为在 SerenityOS 之外还没有多进程 RequestServer 系统。同样,Ladybird 目前是单进程的,而 SerenityOS 浏览器是每个选项卡的进程。

完成度:较低

目前 Ladybird  可在 Linux、macOS、Windows (WSL) 和 Android 上运行,但它仍处于开发初期,许多网络平台的功能仍缺失或损坏,需要很长时间才能准备好进行日常浏览。

Ladybird 已经通过了经典的 Acid3 标准测试,它涵盖了一堆基本的 CSS 布局特性和各种 DOM/HTML API。

Acid3 测试是来自Web Standards Project的Web 测试页面,用于检查Web 浏览器是否符合各种Web 标准的元素,尤其是文档对象模型(DOM) 和JavaScript。

但该测试并未涵盖最新 Web 标准及功能,如 CSS flexbox、CSS Gird 等。这就导致它会出现很多布局和兼容性问题。例如用 Ladybird 浏览器浏览 Reddit 页面:

明显看到,还存在很多错位、换行等渲染问题。

 

目前 Ladybird 其 GUI 及引擎代码都在 BSD-2-Clause 许可证下开源,代码托管在 GitHub 上。


相關推薦

2022-10-13

据 SerenityOS 博客介绍:自 2018 年 10 月 10 日 SerenityOS  存储库迎来第一次提交 ,距今已满四周年。 SerenityOS 是一个类似 Unix 的操作系统,但是带有图形化界面,适合 x86 计算机。SerenityOS 结合了类 Unix 内核和 1990 年代生产力软

2024-08-09

关中小企业、创新团队、影视制作相关团队、数字艺术创作者以及对 AIGC 感兴趣的用户参与。 访问链接可即刻开启创作:https://developer.aliyun.com/plan/create/snbm 影视与科技的交汇点:阿里云函数计算的 AI 技术引领双领域创新 在

2022-09-16

地在 Firebase 中与开放生态圈内的工具协同工作,提升跨平台应用开发效率。 今年 Flutter 和 Firebase 协同支持与集成正式进入稳定版,同时 Firebase Crashlytics 也强化功能,帮助开发者根据对真实用户的影响

2022-12-22

iffusion 的图像数据基本都是直接从网上抓取收集,未经原作者的许可。 有人指出,Stability AI 这个”选择退出“的机制,不符合欧洲通用数据保护条例,该条例规定抓取信息需要原作者主动同意,而不是默认假定。沿着这些

2022-09-10

uBlock Origin 是一款适用于 Chrome、Firefox 等浏览器的广告/内容拦截扩展程序,其作者 Raymond Hill 近日发布了一款全新的实验性扩展 —— uBO Minus,该扩展目前仅适用于基于 Chromium 的浏览器。 uBO Minus 同样也是一款广告/内容拦截扩

2023-09-19

SR)、反应式组件和“同构”组合 ("isomorphic" combinations)。 作者表示,它就像 Vue.js、React.js 或 Svelte,但没有 hooks, effects, props, portals, watchers, provides, injects, suspension 这些抽象概念,开发者只需掌握 HTML、CSS 和 JavaScript 的基础知识,

2023-07-10

境中自由使用、修改和分发开源软件,同时保护了软件的作者和贡献者的权益。它鼓励开放合作和共享创新,促进了开源软件社区的繁荣发展(免费商用、二次开发) 系列产品 IoTOS [https://gitee.com/chinaiot/iotos] 综合后台管理

2022-09-05

Web 开发者。他们能够与 WebKit 项目更紧密地合作,以改进浏览器引擎。团队还提到,GitHub 的 API 让他们可以通过对现有基础架构进行相对较小的修改来构建高级的提交前和提交后自动化,并提供一个现代且安全的平台来审查和提

2023-12-05

用上新至deepin V23,上新的278款应用均为Linux应用,1款为浏览器扩展程序 其中,包括浩辰CAD(Linux版)V2023以及多款城市、主题大赛精美壁纸与主题; 应用更新185款:其中包含121款应用同步在deepin V23中进行了更新。更新的应用

2024-08-10

盒团队合作已有数年,但 Google 的这一决策可能会推迟跨浏览器关于替代第三方 cookies 的工作,对提升 Web 隐私的整体工作产生负面影响。因此,W3C TAG 更新了其意见,强调从 Web 中移除第三方 cookies 的重要性,并呼吁所有浏览器

2023-06-19

霞鹜文楷的作者最近发布了新作品:霞鹜新致宋,这是一款衍生于「IPAmj明朝」的中文宋体字型。 据介绍,「霞鹜新致宋」是一款基于「IPAmj明朝」的中文开源字体,是将日本写法的字体改造成中国大陆规范写法的尝试。 项

2024-07-13

GitHub 代码仓库来训练他们的 AI 系统,此举侵犯了大量创作者的合法权利,因为这些公开仓库大多数都采用了开源 License,这些 License 都明确描述了授予使用者的权利和义务,比如保留原作者的署名,而且原作者依旧拥有开源软

2022-12-14

在一个大版本发布前,Debian 项目通常会举行壁纸作品评选活动,让各位艺术家为其新版本操作系统设计壁纸主题,然后通过投票最终选出一款作品。不过对于预计在 2023 年夏天正式发布的 Debian GNU/Linux 12 "Bookworm",他们并没有开

2023-01-13

计师和 Ubuntu 粉丝在 Ubuntu 23.04 壁纸征集帖中提交其壁纸作品。 壁纸大赛是 Ubuntu 的老传统,Ubuntu 每个大版本都会给出一套特制的桌面壁纸,一般以代号中的动物为创作灵感,比如  Ubuntu 22.10 代号 “Kinetic Kudu - 活力