0

私は Firefox 拡張機能の開発は初めてです。フレンドリーに言えば、初日です。Firefox 拡張機能の開発を開始するために、次の記事に従っていました: Firefox 拡張機能の開発方法

上記のリンクのチュートリアルから例をダウンロードしてインストールしようとすると、完全にインストールされますが、その例を更新すると (その名前をすべてのファイルで必要な新しい拡張機能名に更新するだけです)、インストールします。次のメッセージが表示されます:「X は Firefox 15.0.1 と互換性がないため、インストールできませんでした。」(X は拡張機能の名前です)。

奇妙な動作同じコードの 1 つが正常にインストールされ、別のコードがエラーを出しています。

どこが間違っているのか、何が原因なのか考えていますか?

4

1 に答える 1

0

問題は、互換性の範囲を調整するのを忘れたことですinstall.rdf(つまり、Firefox em:maxVersion3.1b2 3.1b2- かなり古いバージョン)。15.*現在の安定した Firefox バージョン16.*をサポートしたい場合、または現在のベータ版をサポートしたい場合は、これを に変更する必要があります。より意味のあるものに変更することもできますem:minVersion: あなたの拡張機能が Firefox 2.0 でも動作するかどうかを検証するかどうかは疑問です。

拡張機能 ID を変更しない場合に拡張機能がインストールされる理由については、もっと複雑です。まず第一に、拡張機能の作成者が新しいバージョンをリリースせずに互換性のあるバージョン範囲を変更できるようにする、互換性の範囲のソフト オーバーライド メカニズムがあります。この特定のケースでは、Firefox はこのアドレスまたは同様のアドレスを要求して、拡張機能の更新をチェックします。更新サーバーは、バージョン 1.0 がまだ最新であるがmaxVersion、Firefox 8.0 に調整されることを伝えます。この値は、で指定されているものを上書きしますinstall.rdf

しかし、これで話は終わりではありません。互換性チェックのメカニズムはFirefox 10で大幅に変更されました。既定の想定では、どこにも明示的に指定されていなくても、アドオンは新しいバージョンと互換性があると見なされます。要件は、拡張機能が緩い互換性チェックをオプトアウトしないこと、バイナリ コンポーネントを含まないこと、および少なくとも Firefox 4 と互換性があることです。元の拡張機能は、別の拡張機能 ID を持つソフト オーバーライドのおかげで Firefox 8 と互換性がありますただし、Firefox 3.1b2 とのみ互換性があります (addons.mozilla.org でホストされてないため、更新サーバーはそれを認識しません)。これは、緩い互換性チェックが適用されないことを意味します。

参考までに: 前の段落で説明した動作は、、および設定によって制御さextensions.strictCompatibilityextensions.minCompatibleAppVersionますextensions.minCompatiblePlatformVersion

于 2012-09-14T07:07:47.240 に答える