Как я могу реализовать конвертер контента в Firefox для всех элементов страницы?

Я пытаюсь портировать через плагин Internet Explorer на Firefox, но я не уверен, где искать то, что мне нужно.

По сути, мне нужно иметь возможность фильтровать весь контент, полученный браузером, с определенным заголовком Content-Type. Я попытался реализовать преобразователь потока, и это работает, но только для документа верхнего уровня на странице, в фрейме или в фрейме. У меня была та же проблема с IE, и обойти ее было действительно хакерски, и, поскольку мне бы идеально хотелось, чтобы это было кроссплатформенным, я действительно хотел бы иметь возможность делать это в Firefox, не прибегая к хабам vtable.

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

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

Спасибо

Ответы на вопрос(1)

Решение Вопроса

Думаю, я нашел то, что мне было нужно. Я наткнулся на эту ссылку, которая используется для отслеживания HTTP-вызовов:http://blues.ath.cx/firekeeper/resources/http_tracer.html

Похоже, по некоторым причинам с реализацией JavaScript есть некоторые проблемы, и я не гуру JavaScript, чтобы понять это, но я реализовал это в C ++, и первые результаты показывают, что я должен иметь возможность изменять его для своих нужд ,

По сути, мы заменяем службу nsIHttpProtocolHandler нашей собственной реализацией, которая сохраняет ссылку на первоначальную реализацию. Когда вызывается служба, мы просто передаем ее в сохраненную исходную реализацию. Затем мы предоставляем нашу собственную реализацию nsIHttpChannel и nsIStreamListener, которую мы также используем в качестве прокси.

Опять же, мы возвращаем большинство вызовов обратно исходным обработчикам. Но в OnDataAvailable вместо передачи данных в базовый nsIStreamListener мы сохраняем его с помощью nsIStorageStream. Затем в OnStopRequest, после того как мы получили все данные, мы можем распаковать их и затем вызвать OnDataAvailable для исходного обработчика, а затем OnStopRequest.

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

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

В то же время, если у кого-то есть какие-либо предложения, у меня все на слух: D

 31 окт. 2012 г., 23:20
Я использовал такую технику для расширения, над которым я работаю, но, похоже, оно перестало работать в FF17. Вы продолжали работать над этим?

Ваш ответ на вопрос