Firefox 36 アドオン互換性情報
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 36 の翻訳です]
Firefox 36 が 2 月 24 日 [日本時間同日深夜] リリース となります。Firefox 36 の変更点でアドオンの互換性に影響を及ぼす可能性のあるものを以下にまとめました。Firefox 36 for Developers により詳しい情報が載っていますので、こちらも併せてご覧ください。
一般
- プレースホルダー文字列の代わりに
@@iteratorシンボルが使われるようになりました。これまでstr["@@iterator"]のようなコードを書いていた場合、str[Symbol.iterator]に置き換える必要があります。詳しくはドキュメントを参照してください。 const変数への代入が構文エラーを投げるようになり、constはブロックスコープ化されました。この構文エラーは従来 Strict モードのみで出力されていましたが、非 Strict モードにも適用されるようになりました。const変数は宣言時にのみ代入されるべきで、今後はブロックスコープとなります。詳しくはドキュメントを参照してください。-
OS.FileからreadToメソッドが削除されました。これはOS.FileJS モジュール のreadToメソッドが使われている場合のみ影響する変更です。
XPCOM
BoxObjectがWebIDLへ移植されました。これにより、nsIPopupBoxObject、nsITreeBoxObject、nsIEditorBoxObjectなど、nsIBoxObjectを拡張している様々な内部インタフェースが削除されました。これらのインタフェースとともにQueryInterfaceで使っていた場合、おそらくその呼び出しを削除するだけで済むでしょう。nsIDOMGlobalObjectConstructorが削除されました。
ラッパー
クローム JS オブジェクトがコンテンツ JS オブジェクトとやりとりする場合に必ず適用される 様々なラッパー があります。これらは、悪意のある、あるいは不適切な動作をするコンテンツコードから特権付きコードを保護するために提供されています。以下のバグの中で、クロームコードとコンテンツコードの予期せぬ問題につながりかねないラッパーの一部機能が削除されました。ただ、Firefox のマルチプロセス化が迫っている ことを頭に入れておくべきで、つまりいずれにしてもコードに変更を加える必要が出てきます (一部のラッパーは引き続き関わってきますが、まれなはずです)。
この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが Firefox 36 で動かなくなった場合は、筆者の方でも調査したいと思います。
AMO に登録されているアドオンの 自動互換性テストと対応バージョンの更新 は 1、2 週間以内に行われますので、AMO に Firefox 35 対応のアドオンを登録している方は後日メールをチェックしてみてください。