在npapi插件中检测浏览器启动模式

时间:2011-10-11 05:37:42

标签: npapi

我想检测我的基于npapi的插件是在进程外模式(浏览器处于64位模式)还是进程内模式(浏览器处于32位模式)下启动的。当前我使用以下代码来检测

NSString * processName = [[NSProcessInfo processInfo] processName];

if (processName)
{
    if ( !([processName compare:@"Safari" options:NSCaseInsensitiveSearch] == NSOrderedSame) 
        && !([processName compare:@"firefox" options:NSCaseInsensitiveSearch] == NSOrderedSame)
        && !([processName compare:@"firefox-bin" options:NSCaseInsensitiveSearch] == NSOrderedSame)
        && !([processName compare:@"Google Chrome" options:NSCaseInsensitiveSearch] == NSOrderedSame))
    {
        // out of process 
    }
}

如果浏览器的可执行文件名失败,则此代码将失败。还有另一种检查浏览器启动模式的方法吗?

1 个答案:

答案 0 :(得分:1)

你的问题的前提是不正确的; “OOP”和“64位”不是等同的概念。 Chrome for Mac和Windows目前仅限32位,但始终会运行插件。像Firefox这样的基于Gecko的浏览器有隐藏的首选项来控制插件是否在进程中运行。

更重要的是:插件不应该关心它是在进程中还是在进程外运行;插件API不会改变。您实际上试图解决的问题是您认为需要了解这一点吗?