首页
/ CefSharp v134.3.60版本发布:全面转向Chrome架构的重大升级

CefSharp v134.3.60版本发布:全面转向Chrome架构的重大升级

2025-06-06 22:20:08作者:卓艾滢Kingsley

CefSharp是一个基于Chromium Embedded Framework(CEF)的.NET开源项目,它允许开发者在.NET应用程序中嵌入现代Web浏览器功能。该项目通过提供WinForms和WPF控件,让.NET开发者能够轻松地将Chromium浏览器引擎集成到桌面应用中。

版本核心变更

本次发布的v134.3.60版本是一个重要的里程碑,主要基于CEF 134.3.6和Chromium 134.0.6998.118构建。最显著的变化是彻底移除了Alloy Bootstrap,全面转向Chrome bootstrap架构。这一架构变更带来了显著的性能提升和更好的兼容性,但也意味着一些行为上的变化需要开发者注意。

关键升级要点

  1. 架构迁移影响

    • 由于从Alloy迁移到Chrome bootstrap,旧版本的cookie将无法自动继承,因为加密密钥发生了变化。开发者需要为应用设计适当的cookie迁移策略。
    • Chrome bootstrap提供了更接近原生Chrome的行为和性能特性,特别是在多进程管理和资源隔离方面。
  2. 进程单例模式

    • CEF现在支持Chromium进程单例模式,这对CachePath和RootCachePath在多进程间的访问方式产生了影响。开发者需要重新评估缓存管理策略,特别是在多实例场景下。
  3. 运行环境要求

    • 最低要求升级为Microsoft Visual C++ 2019 Redistributable,不再支持VC++ 2015。这一变更反映了底层Chromium引擎对现代运行时的需求。

技术细节与注意事项

  1. 路径处理规范

    • 所有路径参数(CachePath、BrowserSubProcessPath等)现在必须使用绝对路径,使用相对路径将抛出异常。这一变更提高了路径解析的确定性和安全性。
  2. 缓存管理

    • 当使用RequestContext时,必须确保RequestContextSettings.CachePath是CefSettings.RootCachePath的子路径或相同路径。这一限制确保了缓存管理的统一性。
  3. 媒体支持限制

    • 由于许可限制,默认构建不支持H264/AAC等专有编解码器,影响Netflix、Twitter等服务的音视频播放。MP3音频仍然支持,但MP4视频播放受限。
  4. 图形渲染问题

    • 在WPF环境下,某些Intel集成显卡(特别是11代Iris Xe)可能遇到浏览器停止重绘的问题。建议用户更新到最新的Intel显卡驱动以获得最佳兼容性。

开发者建议

对于正在升级的项目,建议:

  1. 全面测试cookie处理逻辑,确保用户会话在升级后能够正确保持或迁移。
  2. 重新评估多进程场景下的缓存管理策略,特别是当应用需要同时运行多个浏览器实例时。
  3. 确保目标部署环境已安装VC++ 2019或更高版本运行时,或考虑将运行时与应用程序一起部署。
  4. 对于依赖专有编解码器的应用,考虑使用CEF提供的商业许可选项或替代解决方案。

这次升级代表了CefSharp项目向更现代、更稳定的架构迈进的重要一步,虽然带来了一些兼容性挑战,但为未来的功能扩展和性能优化奠定了更好的基础。

登录后查看全文
热门项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
32
16
pytorchpytorch
Ascend Extension for PyTorch
Python
746
927
flutter_flutterflutter_flutter
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.02 K
267
docsdocs
暂无描述
Dockerfile
771
5.03 K
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
867
1.97 K
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
70
22
atomcodeatomcode
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get Started
Rust
1.94 K
202
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
694
1.36 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
465
456
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
C
458
5.25 K