2008-09-19 2 views
0

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

Благодаря jbsp72

ответ

2

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

1

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

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

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

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

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

Смежные вопросы