Xpoint
   [напомнить пароль]

Отправка данных на сервер

Метки: [без меток]
2008-05-14 22:39:17 [обр] zkasa[досье]

Здравствуйте!
С расширениями/плагинами для FF знакомлюсь буквально в течении 6 часов, мало что еще удалось уяснить. Пока штудирую интернет.
Однако, из постов этого форума понял, что все это достаточно трудоемко изучать, посему прошу помощи.

Задача такова: есть клиентское приложение, которое должно сообщать о наличии себя на машине пользователя серверу.
Пользователь просто работает в браузере, но наш сайт должен вести себя по разному, в зависимсти от наличия клиентской части.
Для IE эта задача, насколько я понимаю, решается написанием BHO, который, скажем, подставляет собственный хидер в запрос.

Вопрос: каким образом подобное реализовать для FF? Extension, XPCOM или plugin?
К сожалению, изученная информация не позволяет мне принять уверенное решение. :(
Если есть несколько путей, то интересует наиболее быстрый.

Заранее спасибо за ответы!

спустя 2 часа 14 минут [обр] Дмитрий[досье]

Элементарно реализуется через extension, через механизм, похожий на AJAX. См:

http://www.mozilla.org/docs/tutorials/tinderstatus/

спустя 14 часов [обр] Владимир Палант(434/4445)[досье]
Самое простое решение: добавить настройку general.useragent.extra.myextension, дополнительную информацию для заголовка User-Agent. Но это будет распространяться на все сайты, а не только ваш.
спустя 2 минуты [обр] Владимир Палант(434/4445)[досье]
PS: Более продвинутое решение — ждать события http-on-modify-request и добавлять заголовок, если запрос идет к вашему сайту. Подробнее на http://developer.mozilla.org/en/docs/Setting_HTTP_request_headers
спустя 16 минут [обр] zkasa[досье]
Спасибо за помощь!
Если я правильно понял, то речь везде идет об extension. Тогда еще вопрос.
А можно ли как-то установить extension не запуская FF? Plugin, насколько я понимаю, просто требуется скопировать в нужную папку.
Не хочется при установке своего клиента открывать какие-то дополнительные окна...
спустя 1 день 1 час [обр] Владимир Палант(434/4445)[досье]

Если расширение устанавливает другая программа, то лучше всего указать на него в реестре: http://developer.mozilla.org/e......ons_using_the_Windows_Registry

А само расширение вы тогда можете распаковать куда угодно.

спустя 3 дня [обр] zkasa[досье]

Насколько я понял из статьи http://developer.mozilla.org/en/docs/Setting_HTTP_request_headers
Там описано прям то, что мне нужно. Нужно написать простейший XPCOM компонент, даже не требуется полноценного extension.
Однако, создав на основе кода в самом конце статьи файл test.js
и поместив его в c:\Program Files\Mozilla Firefox\components\ я не заметил появления хидера "X-hello" в запросах.
Я правильно понимаю, что код

function LOG(text)
{
  var consoleService = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);
  consoleService.logStringMessage(text);
}

должен писать информацию в Error Console? Но там пусто, никаких сообщений.
Никакой информации о установке компонент я не нашел, в реестре тоже ничего нет.
Мне почему-то показалось, что нужно просто скопировать скрипт в папку components, но оно не хочет работать.
Подскажите, пожалуйста, что я еще не сделал?

спустя 2 часа 35 минут [обр] zkasa[досье]
М-да, называется "смотрю в книгу...". Удаление xpti.dat, compreg.dat из профиля заставило компонент загружаться и работать корректно.
Однако, остается вопрос: есть какой-нить человеческий способ установки компонента (одного js-файла, по сути) без применения подобного вандализма? :)
спустя 15 часов [обр] Владимир Палант(434/4445)[досье]
Есть, конечно — сделать эту компоненту частью расширения (http://developer.mozilla.org/en/docs/Bundles).
Powered by POEM™ Engine Copyright © 2002-2005