1

MDNでは、「アドオン マネージャー対応の XUL アプリケーション」というフレーズが紹介されています。

アドオンを含む XPI ファイルをドラッグして FireFox ウィンドウにドロップすると、アドオンのウィジェットが FireFox のアドオン バーにインストールされます。

コマンドライン オプション "-app application.ini" を指定することで、Firefox を使用して XUL アプリケーションを実行することもできます。

MDN では、この 2 つが相互に排他的ではないと思われるので、ステップ 1 と 2 で XUL アプリケーションと XPI を個別に作成する単純な 4 ステップのプロセスを探しています。ステップ 3 では、XUL アプリケーションまたは XPI のいずれかを変更する方法について説明します。ステップ 4 の準備段階であり、ステップ 4 は最終統合です。

手順 1 と 2 から始めて、手順 3 または 4 で実行する必要があることをいくつか提案します。

ステップ 1: https://addons.mozilla.org/en-US/developers/docs/sdk/1.3/dev-guide/addon-development/implementing-simple-addon.htmlのチュートリアルに従って XPI をビルドします。

ステップ 2: https://developer.mozilla.org/en/Getting_started_with_XULRunnerのチュートリアルに従って、XUL アプリケーションをビルドします。

次に手順 3 と 4 です。コードを追加して、手順 2 で作成した application.ini を変更する必要があります。

[XRE]
EnableExtensionManager=1

また、拡張機能マネージャーをサポートするために、prefs.jsに行を追加する必要があります。また、次のようなコードを追加して、アドオン バー ウィンドウ要素を XULに追加する必要がある場合があります。

<toolbarpalette id="BrowserToolbarPalette">
<toolbarbutton 
    id="xfox-statusbarpanel" class="toolbarbutton-1 chromeclass-toolbar-additional"
    label="&name;"
    tooltiptext="&name;"
    oncommand="toggleSidebar('xfox-sidebar');"
    context="xfox-contextmenu">
</toolbarbutton>
</toolbarpalette>

「アドオン マネージャー対応の XUL アプリケーション」(別名<TestApp>) が XPI (別名 >) を受け入れ<wikipanelてインストールを試みることに成功しましたが、次のエラー メッセージで失敗します: " <wikipanel> could not be installed because it <TestApp version 1.0>"と互換性がありません

[編集] INSTALL.RDF (私の XPI 用) を編集し、以下を追加しました。

<em:targetApplication>
   <Description>
     <em:id>testapp@sample.xul</em:id>
     <em:minVers‌​ion>0.0</em:minVersion>
     <em:maxVersion>9.*</em:maxVersion>
   </Description>
 </em:targe‌​tApplication>.

拡張機能がインストールされるようになりましたが、jsconsole で次のエラーが発生します。

エラー: ウィジェット モジュールは現在、Firefox のみをサポートしています。将来的には、他のアプリケーションをサポートする予定です。詳細については、 https://bugzilla.mozilla.org/show_bug.cgi?id=560716を参照してください。

4

2 に答える 2

1

あなたはここで物事を混ぜ合わせています。コマンドラインフラグは、ブラウザ拡張機能ではなく、-appXULRunnerアプリケーションを実行するためにあります。アドオンSDKに関しては、XULはサポートされておらず、HTMLのみがサポートされています。XULをサポートするアドオンSDKのフォークがありますが、それはやや時代遅れに見え、スタンドアロンウィンドウを作成できるかどうかわかりません(それはあなたが求めていることですか?)。

もちろん、古典的な拡張機能があります。新しいXULウィンドウの作成やアドオンバーの使用など、何でもできます。しかし、それらは書くのがかなり複雑です。

于 2011-12-04T12:47:00.963 に答える
1

私は答えを見つけましたが、それは少しハックであり、アドオン キットの JavaScript ソースから次のコード行を削除する必要があります。

if (!require("api-utils/xul-app").is("Firefox")) {
    throw new Error([
      "The widget module currently supports only Firefox.  In the future ",
      "it will support other applications. Please see ",
      "https://bugzilla.mozilla.org/show_bug.cgi?id=560716 for more information."
    ].join(""));
}

上記のコードは、正規の Firefox 以外でアドオン キットを使用できないように特別に設計されているため、この手段をこれ以上追求する価値はありません。ただし、Firefox に準拠するような方法で xul-app をビルドする方法があれば、問題を再検討します。

やっぱりFirefoxは chrome://browser/content/browser.xul です。

于 2011-12-06T20:24:23.337 に答える