我有一个嵌入了gecko浏览器的应用程序。当我尝试访问任何https url时,应用程序崩溃,因为此时nss未正确初始化。崩溃发生在PK11_TokenExists()中。我想阻止我的浏览器呈现https网站。如果用户点击https链接,我可以在nsIURIContentListener.But的OnStartURI()中阻止该加载,如果用户输入说orkut.com我在OnStartURI()中不知道它是一个http url还是一个https(即是否是是否会使用SSL)。我想知道在这种情况下如何阻止https url?
由于 jbsp72
答案 0 :(得分:2)
我首先要弄清楚你的应用程序崩溃在HTTPS / SSL连接上的原因。我认为修复崩溃比试图避免崩溃更好。
答案 1 :(得分:1)
您可以通过以下方式实现此目的:
实施OnStateChange
界面的nsIWebProgressListener
方法。
检查参数aStateFlags
:如果此参数包含标记STATE_IS_DOCUMENT
和STATE_START
,则会导航到新位置。
要查找网址,请使用参数aRequest
。它的类型为nsIRequest
,但将其强制转换为nsIChannel
类型。然后阅读URI
属性。这包含导航到的URL。
如果URI以“https”开头,请通过调用参数cancel
的{{1}}方法中止导航,并将aRequest
作为参数传递。