1 个不稳定版本
0.0.3 | 2022年2月3日 |
---|
#10 in #cef
在 2 个 crate 中使用 (通过 zaplib_cef)
10KB
107 行代码(不包括注释)
即时生成 CEF 的绑定。需要在 deps/
中存在提取的 CEF "最小化" 目录,这通常通过 scripts/install_deps_macos.sh
安装。有关详细信息,请参阅 build.rs
。
关于旧版本的说明(Chrome 91)
我们目前卡在了 CEF/Chromium 91,因为在那之后单进程模式下发送消息会被破坏。在那之后的版本中,我们有时会卡在一个看似未连接的框架上,这导致所有消息都卡在这个队列中:[链接](https://github.com/chromiumembedded/cef/blob/a7bbd8a62bfc91b0d53eeef8d07b64a5ed719a5f/libcef/browser/frame_host_impl.cc#L559)。我们在这里提交了一个错误报告:[链接](https://bitbucket.org/chromiumembedded/cef/issues/3191/renderer-stopped-getting) 并且这可能与以下内容相关:[链接](https://magpcss.org/ceforum/viewtopic.php?f=6&t=18659)。TODO(JP):深入研究这里发生的事情,并根据根本原因向 CEF 或 Chromium 提交一个更具体的错误报告。
调试
要使用符号调试,请运行 scripts/install_deps_macos_cef_symbols.sh
。要在调试期间查看实际的 CEF 源代码,请将 CEF git 仓库放在 ~/cef
,并确保检出匹配的提交。(不建议链接 CEF 源代码,因为 VSCode+lldb 不总是正确地跟随符号链接。)例如:
settings set target.source-map /Users/spotify-buildagent/buildAgent/work/CEF3_git/chromium/src/cef ~/cef
此路径是通过运行 drawfdump
并查看路径获得的;例如,通过运行
dwarfdump zaplib/main/bind/cef-sys/deps/cef_binary_93.1.11+g9e254fa+chromium-93.0.4577.63_macosx64_minimal/Release/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework.dSYM
当使用 VSCode 时,您可以使用 CodeLLDB 扩展,并使用以下配置
{
"type": "lldb",
"request": "attach",
"name": "Attach to running 'test_suite'",
"program": "target/debug/test_suite",
"sourceMap": {
"/Users/spotify-buildagent/buildAgent/work/CEF3_git/chromium/src/cef": "${env:HOME}/cef",
},
"sourceLanguages": ["cpp", "rust"]
},
TODO(JP):也许还可以显示 Chrome 的源代码;例如,请参阅 [链接](https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart)
发布
发布此 crate 时,请确保您设置了 CEF_ROOT
环境变量,并带有 Cef 框架的完整路径。
CEF_ROOT=`pwd`/zaplib/main/bind/cef-sys/deps/cef_binary_91.1.23+g04c8d56+chromium-91.0.4472.164_macosx64 cargo publish -p zaplib_cef_sys
依赖项
~0–1.8MB
~34K SLoC