当前位置: 首页 > Linux

Chromiumheadless开发的一切

时间:2023-04-06 23:37:08 Linux

获取并编译chromiumLinux:https://chromium.googlesource...Windows:https://chromium.googlesource...Mac:https://chromium.googlesource...重要文档headless模式:https://chromium.googlesource...Vscode配置:https://chromium.googlesource...源码查看:https://source.chromium.org/c...GN构建参数:https://www.chromium.org/deve...linux安装要看安装,不安装会出现缺少库等问题。yum安装gitpythonbzip2tarpkgconfigatk-develalsa-lib-devel\bisonbinutilsbrlapi-develbluez-libs-develbzip2-develcairo-devel\cups-develdbus-develdbus-glib-develexpat-develfontconfig-devel\freetype-develgcc-c++glib2-develglibc.i686gperfglib2-develgtk2-devel\gtk3-develjava-1.*.0-openjdk-devellibatomiclibcap-devellibffi-devel\libgcc.i686libgnome-keyring-开发libjpeg-devellibstdc++.i686libX11-devel\libXScrnSaver-devellibXtst-devellibxkbcommon-x11-develncurses-compat-libs\nspr-develnss-develpam-develpango-develpciutils-devel\pulseaudio-libs-develzlib.i686httpdmod_sslphpphp-clipython-psutilwdiff\xorg-x11-server-Xvfb设置代理获取chromium代码git设置代理:gitconfig--globalhttp.proxyhttp://127.0.0.1:1080gitconfig--globalhttps.proxyhttps://127.0.0.1:1080gitconfig--global--unsethttp.proxygitconfig--global--unsethttps.proxy全局代理:exporthttp_proxy="http://127.0.0.1:1080"exporthttps_proxy="https://127.0.0.1:1080"Botoproxysetup:[Botofile]proxy=127.0.0.1proxy_port=1080然后设置:exportNO_AUTH_BOTO_CONFIG=/usr/local/dev/chromium/chromium_src/http_proxy.boto(linux)setNO_AUTH_BOTO_CONFIG=E:\chromium_src\httpproxy.boto(windows)参考文章:Windows源码下载编译:https://blog.berd.moe/archive...代理体验:https://blog.csdn.net/Vincent...Chromium默认编译不支持音视频播放为了避免授权和专利问题,音视频解码器不能直接内置到Chromium中,所以默认编译的Chromium不能播放音视频解决方法是在args.gn文件中加入编译参数proprietary_codecs=trueffmpeg_branding="Chrome"。这在官方Chromium文档中有解释GNFlags有一些GN标志可以改变Chromium的HTML5音频/视频实现的行为。与GoogleChromeChromium一起使用的编解码器(MP3等)-构建默认的编解码器集proprietary_codecs更改Chromium声称支持的编解码器列表,这会影响和canPlayType()行为默认值:0(gyp)/false(gn)值:0/false-和canPlayType()假定默认的编解码器集1/true-和canPlayType()假定它们支持额外的专有编解码器以加速编译Chromium的官方文档提供了一些GN编译项,可以加快编译。symbol_level=0blink_symbol_level=0enable_nacl=false一些重要的编译参数引入is_debug。此选项值可以是true或false。true时编译debug版本,false时编译release版本。is_component_build。此选项值可以是true或false。true时将chromium代码编译成多个小dll,false时将代码编译成单个dll。一般我们在编译debug版本的时候,设置is_component_build=true,这样每次编译链接的时间就会大大减少。在编译release版本的时候,设置is_component_build=false,这样所有的代码都可以编译成一个dll。target_cpu。这个选项的值是一个字符串,它控制着我们编译的程序匹配的cpu。编译32位x86版本并设置target_cpu="x86",编译64位x64版本并设置target_cpu="x64"。如果我们不显式指定target_cpu的值,那么target_cpu的值就是编译时所在计算机使用的cpu类型。通常target_cpu的值为x86,会比x64编译得更快,并且支持增量编译。另外,如果设置了target_cpu="x86",还必须设置enable_nacl=false,否则编译速度会慢很多。启用_nacl。此选项值可以是true或false。控制是否开启NativeClient,一般我们不需要。所以设置它的值为enable_nacl=false。is_clang。此选项值可以是true或false。控制是否启用clang进行编译。目前m63clang编译不稳定,所以这个选项设置为is_clang=false。m64开始支持clang编译。ffmpeg_branding=”Chrome”proprietary_codecs=true。这两个选项是控制代码编译支持的多媒体格式,和chrome一样,支持mp4等格式。symbol_level。它的值是一个整数。当该值为0时,不产生调试符号,可以加快代码编译和链接速度。当该值为1时,生成的调试符号不包含源代码信息,不能进行源代码级调试,但可以加快代码编译和链接速度。值为2时,生成完整的调试符号,编译链接时间比较长。is_official_build。此选项值可以是true或false。控制是否启用官方编译模式。官方编译模式会进行代码编译优化,非常耗时。仅在发布时设置is_official_build=true以启用优化。gn编译命令#生成编译目录gngenout/Default#设置编译目录编译参数gnargsout/Default#查看编译目录编译参数gnargs--listout/Default#开始编译ninja-Cout/Default#headless_shell编译ninja-Cout/Releaseheadless_shellheadless_shell编译参数#####debugimport("//build/args/headless.gn")is_component_build=trueis_debug=truesymbol_level=0blink_symbol_level=0blink_symbol_level=0enable_nacl=falseproprietary_codecs=trueffmpeg_branding#="Chrome"releaseimport("//build/args/headless.gn")is_component_build=falseis_debug=falsesymbol_level=0blink_symbol_level=0enable_nacl=falseproprietary_codecs=trueffmpeg_branding="Chrome"Chromium不会自动播放chromuim版本66或更高版本中的视频,默认