3

我有一个基于 Chromium-31.0.1650.57 的 CefSharp-master 项目。一切工作正常且完美,但是当我单击链接以在网站上加载/查看 PDF 文件并加载弹出窗口时,一段时间后我得到对话框说“CefSharp.BrowserSubprocess.exe 已停止工作”。并且打开的弹出窗口变黑。以下是我在 Windows 事件查看器中找到的内容。

Application: CefSharp.BrowserSubprocess.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.AccessViolationException
Stack:
   at <Module>.CefExecuteProcess(CefMainArgs*, CefRefPtr<CefApp>*)
   at CefSharp.CefAppWrapper.Run(System.String[])
   at CefSharp.BrowserSubprocess.Program.Main(System.String[])

什么是问题?我搜索了很多,但没有找到任何想法。

4

2 回答 2

1

我认为您实际上遇到了两个不同的问题:

  1. CefSharp.WpfAdobe PDF 插件不适用于组件所使用的屏幕外渲染。请参阅下面的屏幕截图CefSharp.Wpf.Example

    短期来看CefSharp.WinForms,我刚刚在 master 分支上试用过的 PDF 插件可以使用。从长远来看,我希望 Google 将 Crome PDF 支持捐赠给 Chromium,因此 CEF 和 CefSharp 将及时消除对 Adob​​e PDF 插件的依赖。

  2. 我怀疑崩溃是由于您所在的站点在新窗口中打开了 PDF。这显然是从 v.31.0.0-pre1 版本到现在在 master 中引入的错误。请检查#449 PR是否解决了您的崩溃问题,并在那里报告。

https://code.google.com/p/chromiumembedded/wiki/GeneralUsage#Off-Screen_Rendering解释了术语“屏幕外渲染” - 或发烧级版本,甚至 OSR 。一般来说,如果您正在使用 CefSharp,我建议您也阅读一些关于 CEF 的内容,而 General Usage wiki 页面是一个不错的起点。

CefSharp 对 WPF 使用 CEF 的 OSR 模式,对 WinForms 使用正常/非 OSR 模式。

在这里,您会看到 PDF 插件给出一个带有 WPF 渲染的空白屏幕,这取决于 Adob​​e 插件(但我没有崩溃)

于 2014-08-24T10:16:59.440 回答
0

看起来 Adob​​e Acrobat pdf 插件崩溃了。该插件在离屏渲染模式下无法正常工作。请参阅 CEF 论坛上的此主题:

http://www.magpcss.org/ceforum/viewtopic.php?f=6&t=11440

您可以在 CefRequestHandler::OnBeforePluginLoad 中禁用特定插件:

https://github.com/cefsharp/CefSharp/search?q=OnBeforePluginLoad&ref=cmdform

于 2014-08-19T06:57:47.253 回答