В 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.nsIXMLHttpRequest);
можно прочитать 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);