Полезная информация

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.

№118-11-2011 10:54:15

Rufus272
Участник
 
Группа: Members
Зарегистрирован: 18-11-2011
Сообщений: 10
UA: Opera 11.5

SkyboundGecko загрузка файла.

Уважаемые форумчане, не уверен, что создал тему в правильном разделе, но у меня беда( Помогите пожалуйста.

Пишу свой маленький браузер используя Skybound.Gecko. Пишу на C#

Мне нужно отменить окно загрузки файлов.
Допустим, я гуляю по сайту и вижу ссылку на скачивание какого-то файла (Не важно, отдается файл через PHP или прямая ссылка), после нажатия на нее у меня появляется окно, в котором нахвание файла и две кнопки "Save" и "Cancel". Так вот, как мне отменить это окно програмно? Чтоб при нажатии или переходы на аналогичные ссылки окно не появлялось вообще, ну и естественно файл не сохранялся...

Помогите, очень надо!

Отсутствует

 

№218-11-2011 15:00:45

okkamas_knife
We are the Borg.       Resistance is futile.
 
Группа: Members
Зарегистрирован: 21-10-2009
Сообщений: 9558
UA: Firefox 3.6

Re: SkyboundGecko загрузка файла.

Rufus272
при клике на сыылу отправляется соответствующий запрос потом с сервера приходит ответ и если его Content-Type
не совпадает с тем что может быть отображён то браузер предлагает его сохранить
соответственно  ищи в коде где это обрабатывается(заголовок ответа сервера) и сделай вместо выдачи запроса на сохранение игнорирование.


я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3

Отсутствует

 

№318-11-2011 19:02:42

Rufus272
Участник
 
Группа: Members
Зарегистрирован: 18-11-2011
Сообщений: 10
UA: Opera 11.5

Re: SkyboundGecko загрузка файла.

Как сделать на сохранение игнорирование? Что это за окно? Что это за событие? Какой метод дергается? Ничего не понятно(

Отсутствует

 

№418-11-2011 19:14:22

okkamas_knife
We are the Borg.       Resistance is futile.
 
Группа: Members
Зарегистрирован: 21-10-2009
Сообщений: 9558
UA: Firefox 3.6

Re: SkyboundGecko загрузка файла.

Rufus272
А вы кодер или кто?
неужели тяжело взять исходники и поискать там по упоминанию Content-Type
кусок отвечающий за обработку приходящего заголовка и соответствеено посмотрев что и куда идёт при разных Content-Type
поставить в нужном месте заглушку?


я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3

Отсутствует

 

№518-11-2011 20:23:46

Rufus272
Участник
 
Группа: Members
Зарегистрирован: 18-11-2011
Сообщений: 10
UA: Opera 11.5

Re: SkyboundGecko загрузка файла.

В том то и дело, что все перелазил что только мог...

Отсутствует

 

№620-11-2011 00:29:48

Rufus272
Участник
 
Группа: Members
Зарегистрирован: 18-11-2011
Сообщений: 10
UA: Opera 11.5

Re: SkyboundGecko загрузка файла.

Если кто поможет то я готов немного заплатить.

Отсутствует

 

№720-11-2011 07:17:55

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 9.0

Re: SkyboundGecko загрузка файла.

Rufus272
Вот здесь автор темы спрашивает, как ему перехватить запрос, и запретить его, если у него URL не входит в некий список. Я думаю, вам нужно сделать почти аналогично - свою реализацию nsIObserver подписать на сообщение http-on-examine-response, а в обработчике сообщения приводить aSubject не к nsIRequest, а к nsIChannel, и у полученного экземпляра проверять свойство contentType - если его значение соответствует файловому содержимому (например, равно application/octet-stream) - то вы вызываете на экземпляре nsIChannel метод cancel (nsIChannel.cancel унаследован от nsIRequest).
Важный момент:  подписываться нужно именно на http-on-examine-response, а не на http-on-modify-request, т.к. при обработке последнего попытка получить contentType у экземпляра nsIChannel выбросит исключение NS_ERROR_NOT_AVAILABLE.
Ну, и стоит помнить, что файловому содержимому соответствуют разные contentType - например, application/x-xpinstall соответствует xpi-файлам.
P.S. Таким способом нельзя перехватить попытку обращения по ссылке к файлу, расположенному локально. И обойти этот момент как-то иначе способов пока нет.

Отредактировано hydrolizer (20-11-2011 07:26:19)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]