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

时间:2020-03-06 14:25:25  来源:igfitidea点击:

我有一个嵌入壁虎浏览器的应用程序。当我尝试访问任何https url时,应用程序崩溃,因为此时nss尚未正确初始化。崩溃位于PK11_TokenExists()中。我想阻止我的浏览器渲染https网站。如果用户单击https链接,则可以阻止nsIURIContentListener的OnStartURI()中的加载。但是,如果用户键入orkut.com,则我不会在OnStartURI()中知道它是http还是https。是否使用SSL)。我想知道在这种情况下如何阻止https url?

谢谢
jbsp72

解决方案

我首先尝试弄清楚为什么应用程序在HTTPS / SSL连接上崩溃。我认为修复崩溃比避免崩溃要好。

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

实现nsIWebProgressListener接口的OnStateChange方法。

检查参数" aStateFlags":如果此参数包含标志" STATE_IS_DOCUMENT"和" STATE_START",则将导航到新位置。

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

如果URI以" https"开头,则通过调用参数aRequest的can方法取消NS_BINDING_ABORTED作为参数来中止导航。