私のアドオンである Color Source は、content
アドオンがアンパックされていない場合 (つまり、XPI として圧縮されている場合)、アドオン内のディレクトリ (サブディレクトリなど) 内のファイルを繰り返す必要があります。
Addon オブジェクトを取得するために、次のようなコードを使用しています。
Cu.import("resource://gre/modules/AddonManager.jsm", null)
.AddonManager
.getAddonByID(
"color_source@brett.zamir",
function(addon) {
var uri = addon.getResourceURI();
}
);
にパスを渡すために、次のnew OS.File.DirectoryIterator
ことを試しました。
OS.Path.join(uri.path, 'content');
これは明らかに* nixでは機能しますが、Windowsでは機能しません- を取得してからクローンを作成し、クローン
uri.QueryInterface(Ci.nsIFileURL).file
を呼び出すappend('content')
と、これは機能しますが、アドオンの<em:unpack>
ディレクティブが で true に設定されている場合のみinstall.rdf
です。
アドオンが圧縮されている場合でも機能するパスを取得するにはどうすればよいですか?
(注: 問題が似ているはずなので、この投稿に Firefox アドオン タグを追加しました)