Firefox 7 と 8 のアドオン互換性情報

[これは Mozilla Add-ons Blog の記事 Firefox 7 add-on compatibility, and looking forward to 8 の抄訳です]

Firefox 7 が 1 週間ちょっと前に Aurora チャネルへ移行しました。私たちは、AMO に登録されていて既に Firefox 6 と互換性のあるすべてのアドオンに対し、対応バージョン更新のための自動テストを実行する準備を進めています。もしあなたがアドオン作者で、この自動更新の恩恵を受けたい場合は、アドオンの最大対応バージョンが現時点で 6.* となっている必要があります。互換性に関する問題が何も見つからなければ、テスト実行後自動的に 7.* へ更新されます。

私たちは Firefox 7 で行われたバグの修正を調査し、アドオン作者が考慮すべき変更を以下のようにまとめました。大半は XPCOM インタフェースの削除で、その一部は AMO に登録されているアドオンでも使用されています。開発者の皆さんはこの一覧に目を通して、必要に応じてアドオンを更新してください。

  • nsIJSON のエンコード、デコード関数が削除されました (Bug 645922)。この修正は非常に多くのアドオンに影響するため、元に戻すことを目指す動き もあります。いずれにしても、XPCOM コンポーネントの代わりに グローバル JSON オブジェクトparsestringify 関数を使うことを強く推奨します。
  • nsINavHistoryObservernsINavBoorkmarkObserver インタフェースに、Firefox Sync 対応を強化するための変更が行われました (Bug 633266)。いくつかの関数が新しい引数 (GUID) を取ります。アドオンは通常オブザーバという位置付けになるため、これは単に受け取るデータが増えるというだけで、アドオン側で変更を行う必要はありません。ただし、バイナリコンポーネントを含むアドオンは、関数のシグネチャを更新する必要があります。
  • nsIDOMFile インタフェースから、getDataAsURLgetAsBinary など、多くの関数が削除されました (Bug 661876)。同等の関数は canvas など他のオブジェクトで利用可能です。
  • 他にも次のようないくつかのインタフェースが削除されました。nsIDOM3Node (Bug 659053)、nsIDOM3TypeInfo (Bug 660539)、schemaTypeInfo (Bug 660539)、nsIDOMNSDocument (Bug 658906)、nsIDOMDocumentStyle (Bug 658904)

より詳しくは Firefox 7 for Developers をご覧ください。ここでは、とてもエキサイティングな新機能を 2 つだけ挙げておきます。

  • JavaScript モジュールをアンロードすることが可能となり、再起動不要なアドオンにとってこれらのモジュールがより実用可能な選択肢となりました (Bug 481603)。
  • インライン設定 が実装されました。アドオンの設定パネルを、別ウィンドウではなくアドオンマネージャ内に表示させることが可能となりました。このインライン設定ではできることに限りがありますが、多くのアドオンではうまく機能するはずです。また、これは再起動不要なアドオンでも使えるので、大きなメリットとなります。

もしあなたが Firefox 7 で動作確認を行っている間に、何かここで言及されていない互換性問題を見つけた場合は、この記事のコメント欄でお知らせください。

Firefox 8

Firefox 8 について気に掛けるのは時期尚早ですが、できるだけ早く言及しておいた方が良いかと思われる変更がいくつかあります。

  • nsIDOMWindowInternal インタフェースが削除されました (Bug 670235)。パッチから判断すると、今後は nsIDOMWindow に対して QueryInterface を行う必要があるようです。
  • JavaScript エンジンに増分ガベージコレクションを実装する作業が進んでいます。これは、潜在的にはバイナリコンポーネントを含むアドオンに影響する可能性があります。条件としては、JSAPI を使って独自の JSClass と、そのクラスのオブジェクトを生成し、さらに その独自クラスのオブジェクトが独自のガベージコレクショントレース関数を持っている場合です。これはかなり特異な事例と思われますが、万が一にも影響を受ける開発者がいる可能性を考えて、ここに書いておきます。この件に関して詳しい情報が必要なら筆者 [Jorge Villalobos] まで連絡をください。

MDN のドキュメント Firefox 8 for developers は既に公開されており、今後数週間でさらに情報が充実していくはずです。

1 件のコメント

  1. masayuki :

    > nsIDOMWindowInternal インタフェースが削除されました (Bug 670235)。パッチから判断すると、今後は nsIDOMWindow に対して QueryInterface を行う必要があるようです。

    nsIDOMWindowInternalにQIしていた場合には必要ですが、それ以外の場合、いわゆるwindowオブジェクトのように、nsIDOMWindowの派生だとハナから確定している様な場合には何も心配することないと思います。
    # 全プロパティ、メソッドがnsIDOMWindowへ移動しているのが前提ですが未確認