1 个不稳定版本

0.0.3 2022年2月3日

#10 in #cef


2 个 crate 中使用 (通过 zaplib_cef)

MIT/Apache

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