1

私のアドオンである 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ことを試しました。

  1. OS.Path.join(uri.path, 'content');これは明らかに* nixでは機能しますが、Windowsでは機能しません
  2. を取得してからクローンを作成し、クローンuri.QueryInterface(Ci.nsIFileURL).fileを呼び出すappend('content')と、これは機能しますが、アドオンの<em:unpack>ディレクティブが で true に設定されている場合のみinstall.rdfです。

アドオンが圧縮されている場合でも機能するパスを取得するにはどうすればよいですか?

(注: 問題が似ているはずなので、この投稿に Firefox アドオン タグを追加しました)

4

1 に答える 1