在嵌入式gecko浏览器中阻止https url

时间:2008-09-19 10:28:06

标签: ssl https embedding gecko nss

我有一个嵌入了gecko浏览器的应用程序。当我尝试访问任何https url时,应用程序崩溃,因为此时nss未正确初始化。崩溃发生在PK11_TokenExists()中。我想阻止我的浏览器呈现https网站。如果用户点击https链接,我可以在nsIURIContentListener.But的OnStartURI()中阻止该加载,如果用户输入说orkut.com我在OnStartURI()中不知道它是一个http url还是一个https(即是否是是否会使用SSL)。我想知道在这种情况下如何阻止https url?

由于 jbsp72

2 个答案:

答案 0 :(得分:2)

我首先要弄清楚你的应用程序崩溃在HTTPS / SSL连接上的原因。我认为修复崩溃比试图避免崩溃更好。

答案 1 :(得分:1)

您可以通过以下方式实现此目的:

实施OnStateChange界面的nsIWebProgressListener方法。

检查参数aStateFlags:如果此参数包含标记STATE_IS_DOCUMENTSTATE_START,则会导航到新位置。

要查找网址,请使用参数aRequest。它的类型为nsIRequest,但将其强制转换为nsIChannel类型。然后阅读URI属性。这包含导航到的URL。

如果URI以“https”开头,请通过调用参数cancel的{​​{1}}方法中止导航,并将aRequest作为参数传递。