Заглянуть внутрь протокола Chrome в Firefox - PullRequest
0 голосов
/ 24 февраля 2012

Мне было интересно, можно ли заглянуть внутрь входного потока, когда в Firefox используется протокол "chrome: //".Позвольте мне быть более ясным.Давайте возьмем следующую последовательность вызовов, например:

  1. nsXULDocument.cpp имеет метод nsXULDocument :: ResumeWalk ().
  2. Вызывает LoadScript () [вокруг строки: 3004].
  3. LoadScript () вызывает NS_NewStreamLoader [nsXULDocument.cpp, строка 3440].
  4. NS_NewStreamLoader вызывает NS_NewChannel () [nsNetUtil.h, строка: 593].
  5. NS_NewChannel () затем вызывает ioservice-> NewChannelFromURI () [nsNetUtil.h, строка: 226].
  6. NewChannelFromURI () вызывает NewChannelFromURIWithProxyFlags () [nsIOService.cpp line: 596].
  7. NewChannelFromURIWithProxyFlags () вызывает handler-> newChannel (), который разрешается во время выполнения, чтобы стать nsChromeProtocolHandler-> newChannel () [nsChromeProtocolHandler.cpp, строка: 182].
  8. Это, в свою очередь, вызывает ioServ-> NewChannelFromURI () [nsChromeProtocolHandler.cpp, строка: 196].
  9. Шаг 6 повторяется.
  10. Шаг 7 повторяется, однако в разное время он может загружать разные обработчики на основе протокола (chrome, jar, file и т. Д.)

Мое намерение описать вышеизложенноеПоследовательность вызовов должна была установить контекст для моей проблемы.Я хочу знать, когда используется протокол "chrome: //", и когда он используется, я хочу обработать поток ввода.Например, если Firefox загружает скрипт типа «chrome: // package / content / script.js», я хочу перехватить файл при доступе к нему с диска.После перехвата файла я могу изменить его содержимое или выгрузить содержимое файла в папку по своему выбору.

Итак, всякий раз, когда Firefox читает файл (используя метод, подобный fread (), возможно, я тоже хотел бы это знать), я хотел бы определить, был ли запрос на чтение из протокола Chrome или нети в этот момент я могу внести некоторые изменения в файл в зависимости от моих потребностей.Любая помощь по этому поводу?

1 Ответ

0 голосов
/ 14 января 2013

Для тех, кто споткнулся здесь, интересуясь протоколом 'chrome', вот несколько ссылок, которые могут быть полезны: - Протокол Chrome, часть SPDY - Позволяет ускорить веб-проект

...