定制自己的chromium浏览器-linux版

文档说明: 只记录关键地方; 文档发布时间:2022-08-11

为什么自己构建呢

公开的chromium 不包含专有视频解码器
比如播放bilibili网站、ixigua网站视频,播放不了
自己定制浏览器,比如开启某些新特性,比如HTTP3 QUIC强制开启,同时也可以研究浏览器对用户的跟踪
chromium 源码和linux 源码 ,很优秀,值得学习

公开的 chromium 镜像下载地址

阿里云 chromium 镜像
获取最新版的 chromium下载地址 github python 脚本
获取最新版的 chromium下载地址 gitee python 脚本
官方 chromium 镜像下载地址

第一步:准备 chromium构建的 官方文档 和 快速下载chromium源码

  1. www.chromium.org
  2. chromium.googlesource.com
  3. 浏览chromium 源码
  4. 快速下载chromium源码
  5. 如果你因网络原因,不能方便的看chromium 源码,我提供了一个chromium扩展

用于查看chromium源码的浏览器扩展包,源码包需要自己git clone
用于查看chromium源码的浏览器扩展包,已经打包成了extension-v3-test.zip

第二步: 构建linux版 chromium 脚本一: 安装必要依赖

进入已经下载好的chromium 源码目录
还没下载源码,请进这里chromium源码下载

apt update -y && apt install -y git curl python3 python3-pip python3-dev wget ninja-build ffmpeg sudo file
apt install -y libssl-dev ca-certificates  make cmake gcc g++ zip
apt install -y lsb-release locales
apt install -y tcpdump nmap traceroute net-tools dnsutils iproute2 procps iputils-ping rsync

test -f chromium/chromium/src/build/install-build-deps.sh &&  bash chromium/chromium/src/build/install-build-deps.sh  --no-chromeos-fonts --no-arm


第三步:构建linux版 chromium 脚本二:执行构建


__DIR__=$(cd "$(dirname "$0")";pwd)
cd ${__DIR__}

export PATH=${__DIR__}/depot_tools:$PATH

chromium_build_dir=${__DIR__}/chromium/chromium/src/build/Default/

rsync  --delete-before   --progress --stats  -d   ${__DIR__}/blank/ $chromium_build_dir


cd ${__DIR__}/chromium/chromium/src/

# 参考文档 https://chromium.googlesource.com/chromium/src/+/main/docs/linux/build_instructions.md#Smaller-builds

gn gen $chromium_build_dir  --args='is_debug=false symbol_level=0 enable_nocompile_tests=false target_cpu="x64" target_os="linux" ffmpeg_branding="Chrome" proprietary_codecs=true dcheck_always_on=false is_official_build=true is_component_build=false enable_nacl=false   blink_symbol_level=0 v8_symbol_level=0'


ninja  -C $chromium_build_dir chrome

第四步: 构建完毕,打包成chrome.zip

__DIR__=$(cd "$(dirname "$0")";pwd)
cd ${__DIR__}

test -d ${__DIR__}/blank/ && rm -rf ${__DIR__}/blank/

mkdir -p ${__DIR__}/blank/
rsync  --delete-before   --progress --stats  -d   ${__DIR__}/blank/ ${__DIR__}/Default/


chromium_build_dir=${__DIR__}/chromium/chromium/src/build/Default/

sourcefolder=${__DIR__}/chromium/chromium/src/build/Default/
destinationfolder=${__DIR__}/Default/
thefoldertoexclude=obj


rsync -av --progress $sourcefolder $destinationfolder --exclude obj --exclude gen --exclude thinlto-cache

rm -rf ${__DIR__}/Default/*.runtime_deps

zip -r chromium.zip Default/


第五步: 运行 chromium浏览器

set -exu

__DIR__=$(cd "$(dirname "$0")";pwd)
cd ${__DIR__}

uuid=$(cat /proc/sys/kernel/random/uuid)
dir="/tmp/${uuid}"
if [ ! -d $dir ] ;then
  mkdir $dir
fi
export GOOGLE_API_KEY="no"
export GOOGLE_DEFAULT_CLIENT_ID="no"
export GOOGLE_DEFAULT_CLIENT_SECRET="no"

#加载浏览器扩展
extensions=`${__DIR__}/extension-v3-test,${__DIR__}/ReplaceGoogleCDN/extension`



${__DIR__}/Default/chrome \
--user-data-dir=$dir \
--show-app-list \
--start-maximized \
--enable-remote-extensions  \
--enable-extensions \
--remote-debugging-port=9222 \
--enable-logging=stderr --v=1 \
--load-extension="$extensions" \
chrome://version/


# 浏览器自动打开调试窗口
# --auto-open-devtools-for-tabs 
# 浏览器使用http代理
# --proxy-server="http=127.0.0.1:8016;https=127.0.0.1:8016"
# 浏览器使用socks5代理
# --proxy-server="socks5://127.0.0.1:1080" --host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE 127.0.0.1"
# 浏览器使用pac代理 
# --proxy-pac-url="http://localhost:8000/proxy.pac"

参考文档

  1. chromium默认支持的音频、视频编解码
  2. Get the Code: Checkout, Build, & Run Chromium
  3. preview chromium source code
  4. download chromium source code docs
  5. view chromium source code
  6. linux下编译chromium参考文档
  7. chromium自定义启动参数 和 启用远程调试
  8. 快速下载chromium源码
  9. 下载最新已经编译好的二进制 chromium
  10. 编译chromium浏览器-win64版
  11. 容器中运行chromium
posted @ 2022-08-11 13:04  jingjingxyk  阅读(2792)  评论(0编辑  收藏  举报