Process 什么';这是关闭浏览器时杀死NPAPI插件实例的正确方法';s页面选项卡,但不退出浏览器进程?

Process 什么';这是关闭浏览器时杀死NPAPI插件实例的正确方法';s页面选项卡,但不退出浏览器进程?,process,exit,npapi,Process,Exit,Npapi,在Windows上,当关闭被引用浏览器的选项卡时,插件进程将立即退出。但在mac os x上,当我关闭浏览器的标签(而不是退出浏览器的进程)时,插件进程仍然保持很长时间,之后,它异常关闭。 那么我的问题是,如何才能正常退出NPAPI插件过程?谢谢你的回答,很抱歉我的英语不好。 顺便说一句,我的操作系统是MacOSX10.8,我使用的是Xcode 4.5 因为我的插件必须支持chrome,所以我使用32位arch,不能使用OC的ARC,然后我必须手动管理内存。当我检查代码时,我怀疑每次调用NPP_

在Windows上,当关闭被引用浏览器的选项卡时,插件进程将立即退出。但在mac os x上,当我关闭浏览器的标签(而不是退出浏览器的进程)时,插件进程仍然保持很长时间,之后,它异常关闭。 那么我的问题是,如何才能正常退出NPAPI插件过程?谢谢你的回答,很抱歉我的英语不好。 顺便说一句,我的操作系统是MacOSX10.8,我使用的是Xcode 4.5


因为我的插件必须支持chrome,所以我使用32位arch,不能使用OC的ARC,然后我必须手动管理内存。当我检查代码时,我怀疑每次调用NPP_GetValue时我应该使用browser->retainObject,但在实例被销毁时只调用releaseObject一次。反正我也不确定。

你不知道。插件过程何时结束并不取决于你,而是取决于浏览器。例如,Chrome可以让插件进程在短时间内保持活动状态,以避免在有人(比如)使用插件的唯一实例重新加载页面,或者使用相同的插件在两个页面之间导航时受到冲击


你的错误不是进程活了一段时间,而是它退出时崩溃了。您应该调试并修复崩溃。

插件的副本是什么意思?我的意思是,如果我打开多个具有相同URL的浏览器选项卡,插件应该生成与调用方数量相同的实例数量。也许我的问题应该是“我怎样才能以正确的方式杀死插件实例?”而不是杀死插件过程,为我的错误感到抱歉。这个问题太宽泛了。处理插件实例销毁的正确方法(我假设您所说的“杀死插件”;浏览器开始实例销毁,而不是您)是正确地清理代码。如何做到这一点取决于您的代码。实际上,您是在要求人们调试一个崩溃,而您在代码中没有提供任何他们看不到的信息。如果你想得到别人的帮助,你需要发布一个新的问题,包括关于崩溃的具体细节和相关代码。事实上,我想做的是从网络流播放视频。作为苹果的核心动画电影插件示例,当我在插件中加载本地电影并播放它时,在我关闭浏览器选项卡后,示例插件进程也没有及时关闭。顺便问一下,你能告诉我在调试插件时如何打开调试窗口以显示日志吗?由于它是一个捆绑包,我打开了将加载我的插件的网页,并将xcode附加到插件进程中,但控制台上没有显示NSLog信息。如果我想查看调试信息,最好的方法是什么?谢谢。我想做的是显示NSLog信息,我已经附加了插件进程并使用断点调试插件,但这不是很方便。我使用了NSLog,但是当我连接到插件进程并调试它时,控制台上没有显示字符串。