随笔分类 - chromium
2次开发
摘要:1. 搭建上网环境 2. 同步依赖库 接着,下载并配置depot_tools 3. 同步代码 4. 构建测试镜像 若上述操作成功,使用以下命令构建测试类型镜像并关闭开机验证,这样即可自由修改root文件系统内容。如果构建的是test这种类型的镜像,当使用SSH登陆装载此镜像的虚拟机时,密码统一为te
阅读全文
摘要:gclient 是由 Google 用 Python 开发的一套跨平台的git仓库管理工具,它的作用类似 git 的 submodule,用来将多个git仓库组成一个solution进行管理,比如chromium项目是由80多个独立的git仓库构成的。这样的好处是,一个git仓库可以被多个solut
阅读全文
摘要:1. VIZ的三个端 在设计层面上 viz 的架构如下图所示: 在设计上 viz 分了三个端,分别是 client 端, host 端和 service 端。 client 端用于生成要显示的画面(CF)。应用中至少有一个 root client,可以有多个 child client,它们组成了一个
阅读全文
摘要:在 Chromium 中 viz 的核心逻辑运行在 GPU 进程中,负责接收其他进程产生的 viz::CompositorFrame(简称 CF),然后把这些 CF 进行合成,并将合成的结果最终渲染在窗口上。 可以将这个过程拆解成以下几个步骤来分析: viz 的初始化; viz 的架构设计; CF
阅读全文
摘要:blink 中实现了2种 canvas,分别是 blink::HTMLCanvasElement 和 blink::OffscreenCanvas ,前者对应 html/dom 中的 canvas,后者对应 js 中的 OffscrenCanvas。 html canvas 有两种模式,一种是常规模
阅读全文
摘要:1. Chromium 的渲染流水线 Blink —> Paint -> Commit -> (Tiling ->) Raster -> Activate -> Draw(Submit) —> Viz Blink 对接 cc 的绘制接口进行 Paint,Paint 生成 cc 模块的数据源(cc::
阅读全文
摘要:1. Trace chromium 在 base 库中提供了 base::trace_event::TraceLog 类,该类是 TRACE_EVENT* , TRACE_COUNTER* 等宏的底层实现,关于这些宏定义见 base/trace_event/common/trace_event_co
阅读全文
摘要:Command Buffer 是支撑 Chromium 多进程硬件加速渲染的核心技术之一。它基于 OpenGLES2.0 定义了一套序列化协议,这套协议规定了所有 OpenGLES2.0 命令的序列化格式,使得应用对 OpenGL 的调用可以被缓存并传输到其他的进程中去执行(GPU进程),从而实现多
阅读全文
摘要:资源共享指的是在一个 Context 中的创建的 Texture 资源可以被其他 Context 所使用。一般来讲只有相同 share group Context 创建的 Texture 才可以被共享,而 Chromium 设计了一套允许不同 share group 并且跨进程的 Texture 共
阅读全文
摘要:Chromium 中的多线程机制由 base 库提供,要理解 Chromium 中的多线程机制,首先要理解的概念就是 base::MessageLoop 和 base::TaskScheduler ,它们两个是 Chromium 多线程的基础 1. MessageLoop详解 base::Messa
阅读全文
摘要:默认新标签页修改方法: 1. 找到chrome/browser/ui/browser_tabstrip.cc文件 找到变量NavigateParams params: 1 NavigateParams params(browser, url.is_empty() ? browser->GetNewT
阅读全文
摘要:基于chromium103版本 1. 自定义扩展API接口 chromium默认扩展api接口中有chrome.runtime.*,和chrome.send.*等,现在我们就仿照chrome.runtime方式来定义自己的接口,供给插件或者网页使用。 其实chromium 增加自定义 api 接口,
阅读全文
摘要:Mojo 是一个跨平台 IPC 框架,它诞生于 chromium ,用来实现 chromium 进程内/进程间的通信。目前,它也被用于 ChromeOS。 在我们代码应用中,如何使用Mojo来作进程间的通信呢,下面就手把手教你怎么使用Mojo! 1. 初始化 Mojo 初始化Mojo有两种方式,一种
阅读全文
摘要:1:用gn来生成xcode project文件 gn gen out/sln --ide=xcode 2:用xcode打开all.xcodeproj文件 3:给工程添加一个scheme name:随意 3.1:选择Target为chrome_app Name:随意 4:设置all工程属性 点击All
阅读全文
摘要:1. 创建扩展的web资源文件 在src\chrome\browser\resources\myapi文件夹下,其中manifest.json文件的“key”的来源:通过载入一个自定义的crx插件然后在chromium的appdata下找到该插件的key,该key可能被用于计算extension-i
阅读全文
摘要:1、一些信息 Chromium 的官网是 https://www.chromium.org/ Git 仓库是 https://chromium.googlesource.com/chromium/src.git 版本分支说明 https://chromiumdash.appspot.com/bran
阅读全文
摘要:
1:下载CLion 2021.1.3(网上有破解版) 2:选择File->Open 导入chromium源码 3:在Src同级目录新建一个CMakeLists.txt 4:点击clion编译按钮左边Edit Config按钮 5:添加Build Target,Building, Debugging
阅读全文
