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)

MIT/Apache

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