【发布时间】:2013-08-09 18:12:25
【问题描述】:
2020 年更新,我在linked my article 比较了在基本 Windows 桌面应用程序中托管 HTML WebView 的不同方法的内存占用:
基于 Internet Explorer 的 WPF WebBrowser 控件受到一些 keyboard and focus issues 和 memory leak issues 的影响。作为这些问题的替代解决方案,我们正在考虑在基于 HTML 编辑的 WPF/C# 项目中托管 Chromium 而不是 WebBrowser 控件的可用选项。类似的问题之前已经在这里asked。我已经阅读了答案并进行了自己的研究,但我希望从实际在生产质量项目中使用以下任何选项的人那里获得更多反馈:
看起来很合适,但我不喜欢这个项目不是开源的,而且完整的源代码不容易获得。此外,这对我们的项目来说可能有点过头了,因为离屏渲染并不是我们真正依赖的东西。
Chromium Embedded Framework (CEF) 和 .NET bindings for CEF
这可能是目前可用的最佳选择。该项目似乎很活跃,目前与 Chrome v27 同步。 CEF3 使用 Chrome 多进程架构。看起来 Adobe 也在给它some endorsement。
虽然它最初的目的是作为 IE 和 Firefox 的 HTML5 插件,但它实际上也可以作为独立的 ActiveX 控件工作,所以我可以将它包装起来与 WPF 一起使用。它公开了一个sufficient API 用于与内部网页(onmessage, addEventListener/removeEventListener, postMessage)进行交互。
我知道谷歌是discontinue Chrome Frame,但我认为源代码将保留在 Chromium 存储库中。使用最新的 Chromium 代码更新它应该不难,我们可以完全控制它。
不完全基于 Chromium 并且不使用 V8 引擎,因此它不是一个真正的选择。
还有其他我可能忽略的选项吗?
如果有人分享她/他对上述任何选项的经验,我将不胜感激。您是否有任何集成、许可或部署影响?谢谢。
[已编辑] 我还要感谢 artlung 通过提供慷慨的赏金来推动这个问题。
【问题讨论】:
标签: c# wpf google-chrome webbrowser-control chromium-embedded