3 个版本
0.0.3 | 2022年1月25日 |
---|---|
0.0.2 | 2022年1月13日 |
0.0.1 | 2022年1月12日 |
#8 in #wrflib
在 2 个 crate 中使用 (通过 wrflib_cef)
11KB
107 行
动态生成 CEF 绑定。需要将提取的 CEF "最小" 目录放置在 deps/
中,这通常通过 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 不总是正确地跟踪符号链接。)例如:[代码](git clone --branch 4472 https://github.com/chromiumembedded/cef.git ~/cef)。然后,使用以下源映射运行 lldb
settings set target.source-map /Users/spotify-buildagent/buildAgent/work/CEF3_git/chromium/src/cef ~/cef
此路径是通过运行 drawfdump
并查看路径获得的;例如,通过运行
dwarfdump wrflib/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`/wrflib/main/bind/cef-sys/deps/cef_binary_91.1.23+g04c8d56+chromium-91.0.4472.164_macosx64 cargo publish -p wrflib_cef_sys
依赖项
~0–1.8MB
~34K SLoC