【问题标题】:Firefox plugin crashes in ChromeFirefox 插件在 Chrome 中崩溃
【发布时间】:2010-09-23 01:44:46
【问题描述】:

据我所知,谷歌浏览器可以运行使用NPAPI 编写的浏览器插件。

我编写了一个在 Firefox 中运行良好的程序,但是一旦您将其嵌入页面,Chrome 就会崩溃并烧毁。我什至不必调用我的任何方法,嵌入足以导致崩溃。

我该如何调试呢?我尝试将调试器附加到 chrome,但我得到的堆栈跟踪在 Chrome 本身的深处,就像我说的,没有“我的”实际代码正在运行,但应该只是 NPAPI 初始化代码。

不胜感激。

【问题讨论】:

    标签: c++ google-chrome npapi


    【解决方案1】:

    Chrome 是开源的...您是否尝试过下载源代码并构建它?这样,您至少可以将您的 IDE 指向源代码树,并让它在崩溃时自动附加,这可以为您提供更多关于发生了什么的信息。

    当然,这不会解决您的错误,但它可能会帮助您向 Chrome 团队报告一个错误。如您所知,插件 API 对 Chrome 来说是相当新的,并且错误可能是他们的而不是您的。

    【讨论】:

      【解决方案2】:

      Chromium 开发文档描述了将 Visual Studio 附加到 Chrome 进程的一些技巧:Chromium Developer Documentation > Debugging Chromium。

      在 Chrome 中使用 NPAPI 插件可能会遇到一些问题:

      • 您的插件将在与 Chrome UI 不同的进程中运行。 (你可能已经知道了:)
      • 如果加载了插件的多个实例(在同一个 HTML 页面或不同的 Chrome 选项卡中),您的插件实例将在同一个进程中一起运行。如果您有全局变量,则您的插件实例可能会相互影响。
      • Chrome 使用 DEP(数据执行保护),但 Firefox 没有。如果您使用 ATL 或其他 JITted 代码技巧,DEP 可能会使您的插件崩溃。

      【讨论】:

        【解决方案3】:

        事实证明,我使用的旧 NPAPI 插件示例中的部分初始化代码导致了崩溃。很抱歉,我很久以前就解决了这个问题,但似乎无法在版本控制历史记录中找到我为修复它所做的具体修改。不管怎样,我的问题已经解决了,是我愚蠢和盲目相信示例代码造成的。

        【讨论】:

          猜你喜欢
          • 2012-07-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-10-09
          • 2016-04-27
          • 1970-01-01
          相关资源
          最近更新 更多