据我所知,Google Chrome 可以运行使用NPAPI编写的浏览器插件。
我写了一个在 Firefox 中可以很好地完成它的工作,但是一旦你将它嵌入到一个页面上,它就会让 Chrome 崩溃和烧毁。我什至不必调用我的任何方法,嵌入足以导致崩溃。
我该如何调试?我尝试将调试器附加到 chrome,但我得到的堆栈跟踪在 Chrome 本身的深处,就像我说的,没有“我的”实际代码正在运行,但应该只是 NPAPI 初始化代码。
我会很感激一些指示。
据我所知,Google Chrome 可以运行使用NPAPI编写的浏览器插件。
我写了一个在 Firefox 中可以很好地完成它的工作,但是一旦你将它嵌入到一个页面上,它就会让 Chrome 崩溃和烧毁。我什至不必调用我的任何方法,嵌入足以导致崩溃。
我该如何调试?我尝试将调试器附加到 chrome,但我得到的堆栈跟踪在 Chrome 本身的深处,就像我说的,没有“我的”实际代码正在运行,但应该只是 NPAPI 初始化代码。
我会很感激一些指示。
Chromium 开发文档描述了将 Visual Studio 附加到 Chrome 进程的一些技巧:Chromium Developer Documentation > Debugging Chromium。
在 Chrome 中使用 NPAPI 插件可能会遇到一些问题:
Chrome 是开源的……您是否尝试过下载源代码并构建它?这样,您至少可以将您的 IDE 指向源代码树并让它在崩溃时自动附加,这可以为您提供更多关于发生了什么的信息。
当然,这不会解决您的错误,但它可能会帮助您向 Chrome 团队报告一个错误。如您所知,插件 API 对 Chrome 来说是相当新的,并且错误可能是他们的而不是您的。
事实证明,我使用的旧 NPAPI 插件示例中的部分初始化代码导致了崩溃。很抱歉,我很久以前就解决了这个问题,但似乎无法在版本控制历史记录中找到我为修复它所做的具体修改。无论如何,我的问题已经解决,是由于我愚蠢和盲目相信示例代码造成的。