Помощь начинающим - Куда относится этот код? - PullRequest
5 голосов
/ 31 декабря 2008

Я пытаюсь разработать расширение firefox, которое вставляет дополнительные поля заголовка HTTP в исходящие запросы HTTP (для взаимодействия с расширением apache, которое я одновременно разрабатываю).

Хотя я понимаю отдельные компоненты расширения и понимаю основные учебные пособия, представленные в Интернете, мне трудно переходить от обучающих расширений "Hello World" к разработке полноценного расширения.

Пример кода, который я хочу адаптировать для своих целей, представлен внизу Настройка заголовков HTTP-запроса .

Мне интересно, где в иерархии расширения должен быть размещен этот код и как такой код называется / создается / активируется, будет ли он запускаться автоматически при инициализации расширения?



Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 31 декабря 2008

Для базового расширения вы должны поместить свой код в каталог chrome / content расширения. Вы бы подключили этот контент в Firefox, используя overlay . В то время как оверлеи обычно представляют собой содержимое XUL (кнопки и т. Д.), Они могут быть чем угодно. Включая тег сценария, который будет запускать ваш код JavaScript.

0 голосов
/ 15 января 2009

Этот код является компонентом XPCOM и помещается в файл components/<some name>.js.

Вы должны прочитать о компонентах XPCOM, если хотите копать их, но да, файлы .js в components загружаются при запуске. Такие файлы содержат регистрационный код (начинается со строки var myModule = { в этом примере), который сообщает Firefox, доступен ли компонент, определенный в файле, по запросу или его создание выполняется автоматически.

В этом примере вы можете видеть, как компонент регистрируется, чтобы получать уведомления о запуске приложения:

catMgr.addCategoryEntry("app-startup", this.myName, this.myProgID, true, true);

и при обработке уведомления о запуске приложения оно регистрируется для уведомления http-on-modify-request:

os.addObserver(this, "http-on-modify-request", false);
...