下载编译Chromium

参考:Mac上本地编译Chrome浏览器踩坑笔记(2021.02最新) - 掘金

For Mac:

一**、****下载编译工具链:**deptool

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

export PATH="$PATH:/Users/yumlu/code/depot_tools"

(不过为了后续操作方便,可以将其加入到你的 ~/.zshrc 里)

完成后,在命令行里测试下 fetch 命令是否可用:

which fetch

二**、下载Chromium****项目代码**

git config --global http.postBuffer 524288000

git config --global core.precomposeUnicode true

下载源码:新建一个文件夹,进入后执行:

fetch --no-history chromium

也可以使用这种方式下载源码:

git clone --depth 1 -b 114.0.5735.134 https://chromium.googlesource.com/chromium/src.git src

gclient sync

(gclient runhooks)

cd /Users/yumlu/code/src/build/util/ && ./lastchange.py LASTCHANGE

gclient runhooks

http_download.py文件中加入如下两行:(否则会出现https链接的文件下载失败)

import ssl

ssl._create_default_https_context = ssl._create_unverified_context

如发现ssl报错

经常会遇到请求某个https或wss地址会校验ssl证书失败的情况。

报错类似:

ssl.SSLCertVerificationError:SSL: CERTIFICATE_VERIFY_FAILED

certificate verify failed: unable to get local issuer certificate(_ssl.c:1056)

与 wss://xxxxxx 的网络连接断开,请检查客户端与网络是否正常

在windows上和linux服务器上都没有问题,也就只有Mac会遇到。

在StackOverflow上找到了彻底解决这类问题的办法:

>cd /Applications #从根目录进入应用子目录

>cd Python\ 3.7/ #我的Python版本是3.7,大家根据情况弄

>sudo ./Install\ Certificates.Command #进入目录后,可以ls一下,看一下都有哪些,找那个对的

输入密码,就开始自动安装证书。

安装好后,去测了下,就发现没问题了。

后面想获取最新代码,执行 cd src && git rebase-update && gclient sync 即可

三**、**有关编译

cd src

使用gn 工具根据当前系统环境生成合适的ninjaFile,此后使用autoninja进行编译时就不用设置任何参数了,直接基于ninjaFile配置文件进行编译:

gn gen out/Default

现在会在out目录下生成编译Chrome所需的一系列参数和配置

编辑out/Default/args.gn文件添加如下内容:

Set build arguments here. See `gn help buildargs`.

is_debug = false

enable_nacl = false

target_cpu = "x64"

proprietary_codecs = true

ffmpeg_branding = "Chrome"

#media_use_ffmpeg = false

然后开始编译(整个过程大概耗时7-10个小时):

autoninja -C out/Default chrome

编译完成后,你会看到在out目录下出现了

./out/Default/Chromium.app/Contents/MacOS/Chromium 这样一个可执行文件,直接命令行执行即可,就会打开你自己本地编译的Chromium了

清理:gn clean out/Default

一些编译失败的处理:

Mac_sdk.gni 修改当前os版本

BUILD.gn 文件中加上 cflags += "-Wno-deprecated-declarations"

启动编译好的chromium:

/Users/yumlu/code/src/out/Default/Chromium.app/Contents/MacOS/Chromium --enable-logging=stderr --v=1 >chromium.log 2>&1

/Users/yumlu/code/src/out/Default/Chromium.app/Contents/MacOS/Chromium --force-fieldtrials="WebRTC-SpsPpsIdrIsH264Keyframe/Enabled/" --enable-logging=stderr --v=1 >chromium.log 2>&1

哪里执行这个命令log就在哪里

拉取指定版本,如版本111.0.5563.110

git fetch origin tag 111.0.5563.110

git checkout -b branch_111.0.5563.110 tags/111.0.5563.110

gclient sync --with_branch_heads --with_tags

或者gclient sync -D --with_branch_heads --with_tags

查看xcode路径:xcode-select -p

设置xcode路径:sudo xcode-select -s /Users/yumlu/Downloads/Xcode.app



For Windows:

  1. 安装Visual Studio(需要参考chromium版本要求的VS版本),安装完成后配置环境变量:

vs2022_install=C:\Program Files\Microsoft Visual Studio\2022\Community

WINDOWSSDKDIR=C:\Program Files (x86)\Windows Kits\10

2、下载depot_tools

3、下载指定版本chromium源码

git clone --depth 1 -b 114.0.5735.134 https://chromium.googlesource.com/chromium/src.git src

4、gclient sync

5、gn gen out\Default

6、编辑out/Default/args.gn文件添加如下内容:

Set build arguments here. See `gn help buildargs`.

is_debug = false

is_clang = false

target_cpu = "x64"

enable_nacl = false

proprietary_codecs = true

#media_use_ffmpeg = false

ffmpeg_branding = "Chrome"

7、autoninja -C out\Default chrome

然后启动编译后的exe,log在C:\Users\luyum\AppData\Local\Chromium\User Data\chrome_debug.log

相关推荐
草根大哥1 天前
08-横向扩容与突发高并发:加机器到底买到了什么
运维·webrtc·srt·横向扩容·whip·自建cdn
草根大哥1 天前
07-P2P 直连与节点池调度
webrtc·p2p·srt·whip·whep·自建cdn
草根大哥1 天前
06-可观测性:端到端延迟、稳定性与画质
webrtc·srt·whip·自建cdn·ppcdn
大文说跨境1 天前
用 Python 自动化检测浏览器环境指纹:WebRTC 泄露、Canvas 哈希与时区一致性校验
python·自动化·webrtc
EasyDSS2 天前
基于WebRTC的视频会议系统:私有化视频会议平台EasyDSS视频会议到底能干什么
音视频·webrtc·easydss
福大大架构师每日一题5 天前
RustDesk 1.5.0发布:WebRTC、HDR 色调映射、剪贴板同步与百余项修复全面汇总
webrtc
福大大架构师每日一题10 天前
webrtc-rs/webrtc v0.21.0发布:API 可扩展、异步集成、确定性时间、ICE 重启与 SCTP 全面修复
webrtc
智联视频超融合平台11 天前
WebRTC + AI:实时音视频中嵌入神经网络推理的架构设计
人工智能·webrtc·实时音视频
P1Browser11 天前
换了 IP 还是被关联:WebRTC 泄露本地 IP 的三种触发路径
网络协议·tcp/ip·webrtc
福大大架构师每日一题12 天前
pion/webrtc v4.2.22 最新发布:TCP mux 写缓冲区调整至 4 MB,补齐缺失媒体方向处理
tcp/ip·webrtc·媒体