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

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

№116-08-2011 09:07:07

logik
Участник
 
Группа: Members
Зарегистрирован: 27-04-2010
Сообщений: 42
UA: Firefox 3.6

http-on-modify-request для пользовательских запросов.

Привет всем.

Имеется http listener с использованием nsIObserverService и http-on-modify-request. Как можно определить что request относится к пользовательскому запросу, т.е. тому который в строке адреса, а не для рисунков, стилей, скриптов и тд?

Спасибо.

Отсутствует

 

№217-08-2011 05:07:28

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

Re: http-on-modify-request для пользовательских запросов.

Отсутствует

 

№317-08-2011 10:24:22

logik
Участник
 
Группа: Members
Зарегистрирован: 27-04-2010
Сообщений: 42
UA: Firefox 3.6

Re: http-on-modify-request для пользовательских запросов.

не решение. для внутренних ссылок такой же результат, как и для главной.

Отсутствует

 

№418-08-2011 03:50:51

luitzen
Участник
 
Группа: Members
Зарегистрирован: 19-07-2008
Сообщений: 791
UA: Firefox 6.0

Re: http-on-modify-request для пользовательских запросов.

Он будет пустой, если руками вбивать. Если же по ссылке переходить, то нет, а топикстартер такие запросы вроде тоже хочет отлавливать.

Мне кажется, что в приведенном примере вот такая величина должна иметь разное значение для «пользовательских запросов» и всего остального:

Выделить код

Код:

subject.loadFlags & Components.interfaces.nsIChannel.LOAD_DOCUMENT_URI

Отредактировано luitzen (18-08-2011 03:51:40)

Отсутствует

 

№518-08-2011 05:01:24

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

Re: http-on-modify-request для пользовательских запросов.

logik пишет

не решение. для внутренних ссылок такой же результат, как и для главной

А если сравнивать contentDocument.URL browser'а, полученного в результате примера по моей ссылке, с nsIChannel.URI.spec?

Добавлено 18-08-2011 05:03:38

luitzen пишет

Если же по ссылке переходить, то нет, а топикстартер такие запросы вроде тоже хочет отлавливать.

В таком случае, по-моему, лучше будет проверять флаг LOAD_INITIAL_DOCUMENT_URI.

Отредактировано hydrolizer (18-08-2011 05:03:38)

Отсутствует

 

№618-08-2011 10:07:15

logik
Участник
 
Группа: Members
Зарегистрирован: 27-04-2010
Сообщений: 42
UA: Firefox 3.6

Re: http-on-modify-request для пользовательских запросов.

okkamas_knife пишет

попробуй смотреть referrer

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

hydrolizer пишет

А если сравнивать contentDocument.URL browser'а, полученного в результате примера по моей ссылке, с nsIChannel.URI.spec?

нельзя, когда запрос приходит в listener, в броузере еще может быть about:blank

luitzen пишет

subject.loadFlags & Components.interfaces.nsIChannel.LOAD_DOCUMENT_URI

а вот это похоже то что нужно, только действительно как было предложено лучше использовать LOAD_INITIAL_DOCUMENT_URI. LOAD_DOCUMENT_URI похоже пропускает ajax запросы.
Спасибо за помощь.

Отсутствует

 

№718-08-2011 11:24:00

logik
Участник
 
Группа: Members
Зарегистрирован: 27-04-2010
Сообщений: 42
UA: Firefox 3.6

Re: http-on-modify-request для пользовательских запросов.

кстати тут же еще один вопрос появился. в компоненте listener-a не могу обращаться к настройкам плагина.
получаю Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIPrefBranch.getCharPref]

в чем тут может быть проблема?

Отсутствует

 

№818-08-2011 11:50:31

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

Re: http-on-modify-request для пользовательских запросов.

logik
Какой длины строка настройки? Эта строка содержит юникод? В общем случае - попробуйте стринговую настройку получать через nsIPrefBranch.getComplexValue(имя_настройки, Ci.nsISupportsString).data.

Отсутствует

 

№918-08-2011 12:10:02

logik
Участник
 
Группа: Members
Зарегистрирован: 27-04-2010
Сообщений: 42
UA: Firefox 3.6

Re: http-on-modify-request для пользовательских запросов.

hydrolizer пишет

logikКакой длины строка настройки? Эта строка содержит юникод? В общем случае - попробуйте стринговую настройку получать через nsIPrefBranch.getComplexValue(имя_настройки, Ci.nsISupportsString).data.

не в длине дело, из оверлея все нормально читается. создал тестовую настройку с коротким именем и значением из цифр. возможно тут пермишены какие-то дополнительно нужно указать.

Отсутствует

 

№1018-08-2011 13:14:26

logik
Участник
 
Группа: Members
Зарегистрирован: 27-04-2010
Сообщений: 42
UA: Firefox 3.6

Re: http-on-modify-request для пользовательских запросов.

разобрался. почему-то решил что настройки из компонента нужно получать добавляя extensions. вместе с именем. где-то в примере видел.
.getBranch("extensions.myextension.");
когда убрал extensions. нормально отработало.

Отсутствует

 

Board footer

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