代码之家  ›  专栏  ›  技术社区  ›  korona

Chrome浏览器中的Firefox插件崩溃

  •  1
  • korona  · 技术社区  · 17 年前

    据我所知,谷歌Chrome可以运行使用 NPAPI .

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

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

    我希望得到一些建议。

    3 回复  |  直到 17 年前
        1
  •  4
  •   Chris Peterson    17 年前

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

    Chrome中的NPAPI插件可能会遇到一些问题:

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

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

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

        3
  •  2
  •   korona    17 年前

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