Блокировка https URL во встроенном браузере геккона - PullRequest
0 голосов
/ 19 сентября 2008

У меня есть приложение, в которое встроен браузер gecko. Приложение аварийно завершает работу, когда я пытаюсь получить доступ к любому URL-адресу https, потому что nss не инициализируется должным образом на этом этапе. Сбой находится в PK11_TokenExists (). Я хочу заблокировать в браузере отображение сайтов https. Если пользователь нажимает на ссылку https, я могу заблокировать эту загрузку в OnStartURI () nsIURIContentListener.But, если пользователь вводит, скажем, orkut.com, я не буду знать в OnStartURI (), является ли это URL-адресом http или https (т.е. будет использовать SSL или нет). Я хотел знать, как я могу заблокировать https URL в таких случаях?

Спасибо jbsp72

Ответы [ 2 ]

2 голосов
/ 19 сентября 2008

Сначала я бы попытался выяснить, почему ваше приложение падает на соединениях HTTPS / SSL. Я думаю, что было бы лучше исправить аварию, чем пытаться ее избежать.

1 голос
/ 10 марта 2010

Вы можете реализовать это следующим образом:

Реализация метода OnStateChange интерфейса nsIWebProgressListener.

Проверьте параметр aStateFlags: если этот параметр содержит флаги STATE_IS_DOCUMENT и STATE_START, то выполняется переход к новому местоположению.

Чтобы узнать URL, используйте параметр aRequest. Он имеет тип nsIRequest, но приведен к типу nsIChannel. Затем прочитайте свойство URI. Содержит URL-адрес, по которому осуществляется переход.

Если URI начинается с «https», прервать навигацию, вызвав метод cancel параметра aRequest, передав в качестве параметра NS_BINDING_ABORTED.

...