Расширение Firefox: скачать и распаковать ZIP - PullRequest
2 голосов
/ 05 сентября 2011

Как загрузить и распаковать ZIP-файл в папку расширения?
Необходимо обновить мои ресурсы / конфигурацию из ZIP-пакета, хранящегося в Интернете.

Возможно ли это?

Пожалуйста, укажите мнек документации или примерам

Спасибо

1 Ответ

1 голос
/ 05 сентября 2011

В Firefox 4+ вы можете получить каталог своего расширения следующим образом:

Components.utils.import("resource://gre/modules/AddonManager.jsm");
Components.utils.import("resource://gre/modules/Services.jsm");
AddonManager.getAddonByID(extensionID, function(addon) {
  var extensionDir =
    Services.io.getProtocolHandler("file").QueryInterface(Ci.nsIFileProtocolHandler).
      getFileFromURLSpec(addon.getResourceURI(null).spec);
}

Чтобы загрузить файл из расширения, создайте запрос XMLHttpRequest, используя:

var xhr = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Ci.nsIXMLHttpReques‌​t);

можно прочитать ZIP-файл, используя интерфейс XPCOM nsIZipReader (см. http://mxr.mozilla.org/mozilla-central/source/modules/libjar/nsIZipReader.idl). Создание экземпляра компонента следующим образом:

var zipReader = Cc["@mozilla.org/libjar/zip-reader;1"].createInstance(Ci.nsIZipReader);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...