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 上。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Hexo Fluid 博客主题更新 1.9.3 版本
主要更新内容 许可协议可以被隐藏 TOC 支持自定义配置 优化重载事件触发 修改文字计数逻辑 略微缩短导航栏二级菜单的宽度 关于 Fluid Fluid 是一款基于 Hexo 框架的 Material Design 风格主题。 该主题相较于其他主题的优势: 1. 优雅的颜值,使用 Material Design 风格突出层次感,但又不失简约,让用户能专注于写作; 2. 提供大量定制化配置项,使每个用户使用该主题都能具有独特的样式; 3. 响应式页面,适配手机、平板等设备,包括极端的分辨率都能轻松应对; 4. 主题中少有的整合了 LaTeX 和 mermaid 的支持 目前具有的功能特性: 图片懒加载 自定义代码高亮方案 内置多语言 支持多款评论插件 支持使用数据文件存放配置 自定义静态资源 CDN 无比详实的用户文档 内置文章搜索 页脚备案信息 网页访问统计 支持脚注语法 支持 LaTeX 数学公式 支持 mermaid 流程图 暗色模式 详情查看:https://github.com/fluid-dev/hexo-theme-fluid
- 下一篇
TiDB监控节点扩缩容操作(是否保留历史数据)
作者: Liuhaoao 原文来源:https://tidb.net/blog/adb8242d 最近在扒官方文档的时候,发现只有扩缩容tikv/pd/tidb/tiflash/ticdc的步骤,并没有讲扩缩容Prometheus/alertmanger/grafana的操作步骤,就想到凭借自己的经验写一篇文章出来,供大家参考。由于本人学识浅薄,难免会有疏漏或错误的地方,还望各位路过的大佬不吝赐教(抱拳!) 缩容监控节点,会涉及到一个问题:是否保留监控数据。至于监控数据存存放位置、怎么保留这部分内容我先单独拿出来讲讲,以防后续在看具体操作步骤的时候会有很凌乱的感觉。 1、监控数据存放位置查看方法: 数据存放位置(因为我集群是默认部署,所以存放位置也是默认位置。如果自定义部署目录的话,数据存放位置也会变,不同的集群会有很大的区别,所以这里主要是讲方法): 1.1、查看Prometheus部署路径: tiup cluster display test1 ,包含三大操作系统的最全安装
- 2048小游戏-低调大师作品
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池