2011-05-30 64 views
1

用户可以通过代理进行连接。一些使用系统范围的代理设置,另一些则使用浏览器范围的代理确定NPAPI中的浏览器代理设置以下载页面SSL证书

在Windows上,例如,您可以拥有系统代理设置以及Firefox或Chrome的代理设置。因此依靠系统代理设置是不可靠的。

唯一合乎逻辑的解决方案是使用加载我的插件的浏览器正在使用的任何代理设置。如果Firefox正在加载我的插件并且它有一些代理设置,我的插件也应该使用这些设置进行连接。我需要我的插件来下载插件所在页面的SSL证书(用于进一步验证..等)。

是否有某种方法可以在NPAPI中执行此操作,或者我必须使用Windows WinInet或WinHTTP等API或OpenSSL for Linux和Mac?如果我必须这样做,那么我怎么让我的插件使用主机浏览器正在使用的任何代理设置?我正在检查NPN_GetValueForURL,但我不认为它具有良好的兼容性和良好的浏览器互操作性。

谢谢你们!

回答

1

我很确定NPN_GetURLNotify()将使用浏览器的代理设置。如果没有,它会非常疯狂。

更新

如果你正在写一个NPAPI型插件,你需要使用NPN_Get /后功能做HTTP请求。这将使用主机的代理设置,cookie等。因为这个原因,这些功能是存在的;我不知道为什么要使用Wininet或者自己推出自己的产品。

浏览about:config,它显示Firefox将代理设置存储在network.proxy。*中。您可以通过Preferences Service以编程方式访问这些设置。我想你可以配置Wininet的行为相同,但你仍然有cookie问题。

+0

但它会如何给我代理设置的细节? (例如,我可以使用WinInet代码的设置) – Orca 2011-05-31 04:52:50

+0

您无法访问来自NPAPI插件的首选项(或任何其他浏览器内部服务),因此这是不可行的。 – 2014-11-13 03:01:25