Firefox add-on: значок расширения не отображается

Я работаю над разработкой надстройки Firefox с помощью Add-on SDK. Мое расширение отлично работает при использовании SDK, но когда я создаю файл .xpi, чтобы добавить его вручную в браузер, он не отображает значок расширения.

Я попытался изменить путь значка в файле package.json, но все же он не показывал значок.

package.json файл:

{...
  "icon"        : "Phone-icon48.png",
  "icon64"      : "Phone-icon64.png",
...}

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

WidgetPackage.Widget({
  label: "Phone Dial",
  id: "phone_dial",
  contentURL: data.url("images/Phone-icon19.png"),
  panel: panel_name
});

Может ли кто-нибудь помочь мне решить проблему?

Спасибо.

Ответ 1

Это может быть постоянная ошибка. Этот поток сообщает о подобной проблеме.

Ah - вот решение. Вы помещаете свои значки в папку с именем data в корневой каталог вашего аддона и вызываете их as if, они были в корневом каталоге.

{...
    icon: { "16": "./icon-16.png", "32":"./icon-32.png", "64": "./icon-64.png" },
...}

Когда я это сделал, значки появляются на панелях инструментов. Это не очень понятно, но если вы соедините вещи, вы можете сделать это здесь.

Ответ 2

Согласно Addon SDK docs:

Относительный путь от корня надстройки к PNG файлу, содержащему значок для надстройки. По умолчанию "icon.png".

Итак, ваш пакет package.json должен выглядеть так:

{...
  "icon"        : "data/images/Phone-icon48.png",
  "icon64"      : "data/images/Phone-icon64.png",
...}

Ответ 3

По-видимому, связанная с этим проблема была закрыта раньше, но это происходит со мной сегодня

Обходной путь с jpm 1.1.4 и Firefox 48/50:

  • Назовите значок icon.png и поместите его в корневой каталог addon.
  • Запись no "icon": ... в package.json(таким образом, нет <em:icon> в install.rdf)