当前位置: 首页 > news >正文

Chromium项目相关

Chromium项目相关

Chromium 是一个开源浏览器项目,旨在为所有用户构建一种更安全、更快速、更稳定的方式来体验 Web。
自 Google 在 2008 年宣布 Chromium 项目以来,他们一直很高兴能够在开源 Web 浏览器的良好基础上进行构建,并为富 Web 平台的持续开发做出贡献。如今,Chromium 被全球数百个不同的项目使用,包括 Chrome 等大型浏览器、LG 的家用电子产品、Electron 等应用程序框架,甚至是 Bloomberg 终端和 SpaceX 太空舱控制软件等自定义应用程序。

Chromium项目官网

  • Chromium 官方网站:https://www.chromium.org/ 这里是 Chromium 项目的核心信息源,提供了项目的介绍、开发文档、源码下载、开发流程等详细内容,对于想要深入了解 Chromium 架构、开发机制的人来说是必不可少的资源。
  • https://www.chromium.org/chromium-projects/
  • Getting Around the Chromium Source Code Directory Structure
  • Multi-process Architecture
  • How Chromium Displays Web Pages
  • Out-of-Process iframes (OOPIFs)
  • Chromium Blog
  • https://www.chromium.org/Home/
    下面是一个略显过时的Chromium依赖关系图。特别是WebKit 被 blink/renderer 所取代。较低的模块不能直接包含来自较高模块的代码(即内容不能包含来自 chrome 的头文件),但使用嵌入器 API 与之通信。
    Chromium原始代码层次图

Chromium源代码

  • chromium: https://source.chromium.org/chromium
  • chromiumos: https://source.chromium.org/chromiumos

Chromium
ChromiumOS
Chromium 源代码仓库:https://chromium.googlesource.com/chromium/src 可以直接访问 Chromium 的源代码,通过阅读代码能深入了解其内部实现细节。可以需要科学上网才能稳定的访问和下载。
Chromium源代码的目录结构如下:

  • android_webview:为了与Android framework层对接,对content层的代码进行了封装;
  • apps:Chrome packaged apps的代码,我们可以不用关注这部分;
  • base:提供给所有子工程使用的通用代码,相当于是一个基础库的实现,例如字符串处理、智能指针等等,只有当代码需要共享给其他顶级目录工程时,才能添加到这里面;
  • breakpad:google的一个用于处理程序奔溃的开源项目,它是直接从GoogleCode的svn拉过来的;
  • build:所有工程共用的编译配置;
  • cc:Chromium合成器的实现;
  • chrome:Chromium浏览器;
  • components:给content层调用的一些组件模块;
  • content:content模块的实现,多进程沙盒浏览器的核心代码;
  • devices:通用底层硬件api的跨平台抽象;
  • ipc:IPC通信模块
  • media:多媒体相关的模块
  • net:为Chromium开发的一个网络库,在运行webkit下的test_shell时可以单独使用,可以参考chrome/common/net;
  • out:编译生成的目录
  • sandbox:沙箱项目,用来防止被黑客攻击的渲染器修改系统;
  • skia:google为Android开发的图形库,直接从Android代码树中复制过来的,在ui/grx之后增加了一些对skia进行封装的类;
  • sql:SQLite数据库方面的模块;
  • testing:google开源测试工具GTest,用来进行单元测试
  • third_party:一些第三方库,比如图片解码、压缩算法库,在chrome/third_party中也有一些chrome专用的第三方库,包括blink渲染引擎;
  • ui/gfx:共享图形库,这是渲染chromium ui图形的基础;
    ui/views : 进行ui开发的简单框架,提供了渲染、布局、事件处理机制。大部分的浏览器 ui 都基于这个框架来实现。这个目录下包含了基本对象,还有一些浏览器特定的对象位于chrome/browser/ui/views
  • url:google开源的URL解析和标准化库;
  • V8:google开发的V8 JavaScript引擎,这是从google code的svn中直接拉取的。

华为维护的openharmony-tpc/chromium_chrome项目

GitCode上华为维护的openharmony-tpc/chromium_chrome开源仓,下载代码开始学习,如下图所示:
openharmony-tpc/chromium_chrome
不同的分支
git clone源代码
下载完后的chromium_chrome项目的master分支目录结构大致如下图所示:
chromium_chrome项目的mater分支

Chrome和Chromium 官方资源

  • Chrome 开发者文档:https://developer.chrome.com/docs/ 提供了关于 Chrome 浏览器各种特性和功能的开发文档,包括 Chrome 扩展开发、Web API 使用、性能优化等方面的内容。
  • Chrome 官方博客:https://blog.chromium.org/ 会发布 Chrome 浏览器的最新功能、更新动态、安全公告等信息,有助于及时了解 Chrome 的发展方向和新特性。
  • Chromium 开发者论坛:https://groups.google.com/a/chromium.org/g/chromium-dev
  • Chromium docs
  • Blink (Rendering Engine)

书籍和教程

-《Chromium 浏览器开发实战》:这本书详细介绍了 Chromium 的架构、编译、开发流程等内容,结合实际案例帮助读者掌握 Chromium 开发技术。

参考资料

  • 怎样阅读 Chromium 源码?
  • 在中国使用chromium镜像
  • How Blink Works 中文译文
  • How cc Works
  • How cc works
  • How Blink works
  • Chromium网页加载过程简要介绍和学习计划
  • 【Chromium系列】多进程架构
  • Chromium Viz 浅析 - 介绍篇
  • 【Chromium 系列】Renderer
  • 【Chromium系列】Navigation
  • Chrome浏览器引擎 Blink & V8
  • Chromium源代码目录结构
  • Chroium 源码目录结构分析(3):目录和模块总结(src根目录部分)
  • Chromium的IPC消息发送、接收和分发机制分析
  • Android WebView加载Chromium动态库的过程分析
  • Chromium网页输入事件捕捉和手势检测过程分析
  • Chromium网页滑动和捏合手势处理过程分析
  • Chromium插件(Plugin)执行3D渲染的过程分析
  • Chromium插件(Plugin)模块(Module)加载过程分析
  • Chromium扩展(Extension)机制简要介绍和学习计划
  • Chromium扩展(Extension)通信机制分析
  • Chromium扩展(Extension)的Content Script加载过程分析
  • Chromium网页DOM Tree创建过程分析
  • Chromium为视频标签渲染视频画面的过程分析
  • Chromium为视频标签创建播放器的过程分析
  • Chromium分发输入事件给WebKit处理的过程分析

相关文章:

  • 增强for循环
  • 基于yolov8的糖尿病视网膜病变严重程度检测系统python源码+pytorch模型+评估指标曲线+精美GUI界面
  • 15.12 LoRA低秩适配微调:微软的高效微调革命
  • 计算机网络基础:揭开网络世界的神秘面纱
  • Word 插入图片会到文字底下解决方案
  • 浅谈流媒体协议以及视频编解码
  • python秒杀活动支撑方案教程
  • MRI学习第一章-核磁共振物理基础(一)
  • c++ 中的 auto 与 const 关键字
  • Go Channel 高级模式实战:超时控制与广播机制的深度解析
  • Android 端侧运行 LLM 框架 MNN 及其应用
  • C++内部类用法介绍
  • EasyRTC:支持任意平台设备的嵌入式WebRTC实时音视频通信SDK解决方案
  • [Java基础] JVM常量池介绍(BeanUtils.copyProperties(source, target)中的属性值引用的是同一个对象吗)
  • 处理DeepSeek返回的markdown文本
  • springboot集成onlyoffice(部署+开发)
  • Python--内置模块和开发规范(下)
  • Node.js定义以及性能优化
  • Coze/Dify/Ollama在玩ai时候的用途
  • 2025 GDC开发者先锋大会“人形机器人的开源之路”分论坛 | 圆桌会议:《开放协作:开源生态如何解锁人形机器人与具身智能的未来》(上篇)
  • 义乌缔造网络科技有限公司/seo关键词排名技术
  • 可以做游戏的网站有哪些内容/石家庄网络推广优化
  • 学做效果图的网站有哪些/网络营销策略理论有哪些
  • 个人模板网站/产品推广策划
  • 国外打开国内网站慢/优化大师好用吗
  • 做博客用什么系统做网站好/seo培训一对一