перенаправить HTTP-запрос URI в Mozilla Addon Builder - PullRequest
3 голосов
/ 11 декабря 2011

Я определил наблюдателя http-on-modify-request в Addon Builder в Mozilla и хочу перенаправить запросы (изменение subject.URI.spec), но Firefox жалуется на:

Error: An exception occurred.
Traceback (most recent call last):
  File "http://chrome.angrybirds.com/", line 2536, in null
  File "http://chrome.angrybirds.com/", line 2344, in null
  File "http://chrome.angrybirds.com/", line 2988, in wi
  File "http://chrome.angrybirds.com/", line 1756, in ti
  File "http://chrome.angrybirds.com/", line 1231, in Ji
  File "http://chrome.angrybirds.com/", line 3366, in Ri
  File "http://chrome.angrybirds.com/", line 2381, in Di
  File "http://chrome.angrybirds.com/", line 2956, in Ni
  File "http://chrome.angrybirds.com/", line 3366, in DHb
  File "http://chrome.angrybirds.com/", line 3340, in oHb
  File "http://chrome.angrybirds.com/", line 1869, in Eic
  File "http://chrome.angrybirds.com/", line 3285, in BS
  File "http://chrome.angrybirds.com/", line 3362, in _Jb
  File "http://chrome.angrybirds.com/", line 3054, in _Bb
  File "http://chrome.angrybirds.com/", line 2020, in dJb
  File "http://chrome.angrybirds.com/", line 2889, in fJb
  File "resource://jid0-[snipped id]-api-utils-lib/observer-service.js", line 176, in null
    this.callback(subject, data);
  File "resource://jid0-[snipped id]-moddedbirds-url-rewriter-lib/main.js", line 11, in null
    if(endsWith(s.URI.spec,search)) s.URI.spec=replace;
[Exception... "Component returned failure code: 0x80004004 (NS_ERROR_ABORT)
  [nsIURI.spec]"  nsresult: "0x80004004 (NS_ERROR_ABORT)" location: "JS frame
  :: resource://jid0-[snipped id]-api-utils-lib/securable-module.js
  -> resource://jid0-[snipped id]-moddedbirds-url-rewriter-lib/main.js ::
  <TOP_LEVEL> :: line 11"  data: no]

Почему это не работает?

Может быть, я не могу использовать наблюдателя http-on-modify-request для перезаписи URI?

Как мне это сделать?

1 Ответ

3 голосов
/ 12 декабря 2011

Да, nsIChannel docs говорят "URI, соответствующий каналу. Его значение является неизменным. Только для чтения."И неизменная проверка, кажется, действительно возвращает NS_ERROR_ABORT ( source ).

К сожалению для вас, этот парень ( Запрос перенаправления (nsiHttpChannel?) В расширениях Firefox ) не сделал 't опубликовать решение, которое он нашел, также этот вопрос задают здесь и здесь на мозиллазине.

Лучшая идея, которую я имею, это слишком много работы для этого: попытаться nsITraceableChannel .Владимир здесь имеет идею "сделать все необходимые вызовы nsIChannel.notificationCallbacks и отменить запрос после этого". Ошибка 286159 имеет некоторое обсуждение по этому поводу (в 2005 году не было способа сделать это чисто).

Поскольку это повторяющийся вопрос, было бы здорово, если бы выполучил подтверждение от однокурсника Неко , а затем задокументировал его в MDC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...