编译 CEF

项目与分支

内容来自官方文档BranchesAndBuilding

背景

CEF 是 Chromium 项目的一个扩展,跟踪其分支。可通过自动工具或手动编译。

开发

CEF 的 master 分支跟踪 Chromium 的 master 分支,不建议用其产品化。

下载开发版 CEF

CEF3 - https://bitbucket.org/chromiumembedded/cef/src?at=master

CEF1 已不再支持。

发布(Release)分支

CEF 的发布分支跟踪 Chromium 的 release 里程碑(milesone)MXX 分支,推荐使用其产品化:

  • 基于 Chromium release
  • 更好的测试
  • CEF API 维护不变,仅做 bug 和安全修复
  • CEF 必要时可包含 Blink 补丁
  • 不受 CEF master 分支推进影响

CEF 版本 X.YYYY.A.gHHHHHHH

  • X:主版本号(当前为 3)
  • YYYY:Chromium 分支
  • A:自增值,反映当前分支的版本值。可表示基于同一分支,各版本的顺序,用于修复 bug 等的版本提升
  • gHHHHHHH:7位字符反映 git 提交哈希,便于定位 git 历史

版本的详细信息保存在 include/cef_version.h 头文件中,也可以通过生成的应用访问 about:version 查看。

CEF release 分支下载规则,YYYY 对应4位 Chromium release 分支号:

比如: https://bitbucket.org/chromiumembedded/cef/src/2623?at=2623

编译 CEF

下载文档

首先要下载文档仓库

1
git clone https://bitbucket.org/chromiumembedded/cef.git/wiki

然后将文档检出到需要编译的版本,比如 2623

1
git checkout 0625af2618b7f15660146acd769142144e5a48c9

生成项目文件

1
2
cd src\cef 
create.bat

编译

1
2
cd src 
ninja -C out\Release

运行测试

编译成功之后,运行 out\Release\cefclient.exe

打包导出

执行打包脚本

1
2
cd src\cef\tools
make_distrib.bat --ninja-build

打包成功后,在 src/cef/binary_distrib 目录会生成二进制的包

常见问题

NPAPI 启用情况

查看当前版本 NPAPI 是否已经启用,可以打开 Dev Tools -> Console 执行:

1
navigator.plugins

检查每个插件的情况,一般 NPAPI 插件会以 np 开头。

附录