Chrome

A collection of 4 posts
Chrome

Chromium源代码学习之版本号

版本号是如何定义、输出的? 版本号规则、迭代周期 Chrome版本号规则分为四部分: major-version.minor-version.build-version.patch-version,可以通过地址栏输入 chrome://version/ 获得。 版本号的源头 Chrome基本是一个月更新一个大版本,每次更新版本号是通过LUCI (Chrome源代码的一个版本机器人)提交commit变更,变更文件为 chrome/VERSION ,详细的变更记录可以参见: src/+log/main/chrome/VERSION。这个文件只是一个文本文件,是获取版本号最最原始的配置。 数据调用过程 通过从UI层的版本号写入,我们追一下这里面的调用关系、数据源、配置构建是如何发挥作用的。 举例说明,chrome://version/ 中的版本号UI层是预置的HTML文件 components/version_ui/resources/about_version.html ,通过模版替换对应的HTML字符串占位符 $i18n{version} ($
2 min read
Chrome

Blink内核相关术语、映射关系

在读Adblock Plus for Chrome插件的源代码时,拦截入口处有几个判断非常重要,这涉及到当前打开Tab的URL、来源、打开方式等概念,对应到Blink中术语有page、main frame、iframe、document等,翻阅一下Blink的README文档,找到官方的介绍在此做一下记录。 Page 一个Page对应于一个Tab,当然前提时OOPIF(Out-of-Process iframes)没有开启。每一个渲染进程可能包含多个Tab。 Frame Frame对应于HTML中的frame,可能是主frame或者iframe,每个Page在树形结构中可能包含一个或者多个frame。 DOMWindow 一个DOMWindow对应Javascript中的一个window对象,每个Frame有一个DOMWindow。 Document 一个Document对应Javascript中的一个window.document,每个Frame有一个Document。 ExecutionContext 一个ExecutionContext是一个抽象概念,在渲染进程的主线程
1 min read
Chrome

Chromium Android工程迁移编译过程

本文从Chromium编译的中间产物入手深入分析、学习Chromium Android版本的工程化定制流程。初始工作依赖于Chromium的ninja、GYP构建系统,在构建完成后基于编译中间产物,迁入Android Studio作为新的构建工程,测试编译发布的过程。 注:这种编译过程除了资源文件外其他编译中间产物,都不可修改,不具备大规模定制化的可能性,仅作为熟悉编译过程和代码结构的学习、测试使用。 前提 Chromium代码结构、Android开发、Android Studio使用 编译Chromium 编译步骤可以参考Chromium团队的文章 [https://chromium.googlesource.com/chromium/src/+/master/docs/android_build_instructions.md] ,可以选择编译目标为chrome_public_apk、content_shell_apk,本文以chrome_public_apk为例。 编译结果APK 在以chrome_public_apk为编译目标后,在经历一段时间后编译完成,在out/**
5 min read
Chrome

Google Chrome:如何变得更快,更强,更智能

如果你还没有用过Chrome这款浏览器,抓紧安装体验一下吧。在这个比拼浏览器速度的年代,Google完胜Mozilla、微软,特别是JavaScript的性能方面。即便如此,如果你对Chrome做一些额外的调整将会让它更快。 为了我们 To help with that effort, we've gathered for your consideration a few of our favorite free Google Chrome. Experience the power enhancements they provide, and in a few days you'll wonder how you ever survived online with a bare-bones browser. 如果你是Geek,
7 min read