0

アドオンを介して一部の Mozilla アプリケーション¹ と統合できるデスクトップ アプリケーションを開発しています。アプリケーションからアドオンをインストールするオプションをユーザーに提供したいのですが、私の要件を満たす公式の方法を見つけることができませんでした:

  1. アドオンは、インストール後に自動更新を受信する必要があります
  2. 複雑なユーザー操作は必要ありません
  3. メソッドは Mozilla によって禁止されてはなりません (つまり、ブラックリストに登録されてはなりません)

これらの要件を満たすアドオンをインストールする方法はありますか?


これらの要件を満たさない、私が検討したオプション:

  • アドオンのグローバル インストール– ただし、 AMOのインフラストラクチャまたはupdateURLinstall.rdf 内のsによる自動更新は許可されません(違反 1)。
  • XPI をデフォルト プロファイルにコピーして有効にすると、オプトイン ダイアログが表示されなくなります。これは、アドオン ガイドラインの違反であり、ブラックリストへのチケット² (違反 3)です。
  • XPI の URL を使用してアプリケーションを実行する – Firefox などのブラウザー コンポーネントを使用するアプリケーションでのみ機能しますが、Thunderbird では機能しません。

テスト中にプロファイル関連のバグに遭遇しました。このオプションは、最初のテストで提案されたものよりも優れています。

  • XPI をデフォルト プロファイルにコピーすると、アドオンが無効な状態で開始されます。したがって、拡張機能を手動でダウンロードするようにユーザーに指示するよりも優れているとは言えません (違反 2)。ユーザーは新しいタブでインストールを許可 (または拒否) するよう求められます (残念ながら、このタブはバックグラウンドで開かれることがあるため、条件 2 には最適ではありません)。

¹ 私の場合、それは Thunderbird です。しかし、可能であれば、Firefox についても質問を開いたままにしておきたいと思います。

² アプリケーション内でカスタムのオプトイン ダイアログを使用して問題を解決できるとは思いません。Mozilla は、Mozilla が定義した「より良い」ポリシーをやみくもに施行することが知られているためです (アドオンの署名を参照)。

4

1 に答える 1

0

最適な解決策ではありませんが、追加のテストでは、質問で言及されている最初のアプローチの 1 つが、最初のテストで提案されたよりもうまく機能することが示唆されています。

がアドオンの IDでextensionあるファイル名を使用して、影響を受けるすべてのプロファイルのフォルダーに XPI をコピーします(アドオンがアンパックを必要とする場合は、代わりにフォルダーにアンパックします)。ID.xpiIDID

これにより、アドオンは無効な状態でインストールされますが、ユーザーは次回のアプリケーション起動時に、インストールを許可するかどうかを尋ねられます。ユーザーが確認すると、アドオンが有効になります。


このソリューションの問題に対処する追加の回答を歓迎します。

  • 場合によっては、ユーザーの確認を求めるタブがバックグラウンドで表示されます (たとえば、Thunderbird で、再起動前に閉じたときにアドオン タブがフォアグラウンド タブだった場合)。
  • したがって、インストーラーは、profiles.iniプロファイル フォルダーの場所を特定するために解析するロジックを必要とします。
  • インストール時のプロファイルのみが影響を受ける可能性があります
于 2016-07-22T21:48:43.137 に答える