Firefox 21 アドオン互換性情報
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 21 の翻訳です]
Firefox 21 が 5 月 14 日 [日本時間同日深夜] にリリースとなります。Firefox 21 の変更点でアドオンの互換性に影響を及ぼす可能性のあるものを以下にまとめました。Firefox 21 for Developers により詳しい情報が載っていますので、こちらも併せてご覧ください。
一般
- プラットフォームとアプリケーションのリソースが分離され、個別に読み込めるようになりました。Firefox の Metro 対応を行うにあたって、広く利用されている各種 JavaScript モジュールを含め、いくつかの変更が必要となりました。
- Firefox 20 およびそれ以前では、
resource:///modules/
、resource://gre/modules/
、resource://app/modules/
は同じ場所を指します。 - Firefox 21 およびそれ以降では、
resource://gre/modules/
とresource://app/modules/
は異なる場所を指し、従ってそこに含まれるモジュールも別々となります。resource:///modules/
はresource://app/modules/
を指します。ただし、開発者が必要とするモジュールの多くは/gre/
にあります。最も簡単なテスト方法は、Firefox 21 もしくはそれ以降のバージョンを開き、あなたの拡張機能でモジュールのインポートに使用している URL を読み込んでみることです。従来通り動作するようであれば、修正の必要はありません。
- Firefox 20 およびそれ以前では、
- XBL スコープが有効となりました。XBL バインディングをコンテンツページに挿入する場合、クロームに対する、あるいはクロームからの関数呼び出しが特定の状況で失敗するようになり、追加のコードが必要となります。詳しくはバグを参照してください。
language
属性を通じてより上位の JavaScript バージョンを指定できる機能が削除されました。これは、XUL ドキュメント内であっても、language
属性を使って JavaScript のバージョンを明示的に設定することができなくなったということです。- SpiderMonkey から E4X が削除されました。E4X は今後使用できません。
-moz-orient
プロパティがauto
キーワードに対応し、それがデフォルト値となりました。-moz-user-select:none
が-moz-user-select:-moz-none
と同じ挙動になりました。parseInt
関数が 10 進数でパースされるようになりました。parseInt("042")
は42
となります。
Places
- Places から廃止予定となっていた同期 API が削除されました。一部の同期間数が削除されました。変更点の一覧はバグの最初のコメントを参照してください。これはニュースグループでも 事前に告知されていました。
nsINavHistoryFullVisitResultNode
が削除されました。これにより、一部のアドオンで使用されている 2 つの定数、nsINavHistoryResultNode.RESULT_TYPE_FULL_VISIT
とnsINavHistoryResultNode.RESULT_TYPE_DYNAMIC_CONTAINER
も併せて削除されたことに注意してください。PlacesUIUtils.showBookmarkDialog
から廃止予定となっていた 3 番目の引数が削除されました。- FUEL からライブブックマーク対応が削除されました。
onBeforeDeleteURI
とonBeforeItemRemoved
が削除されました。- Places のクエリ結果におけるノード置換が廃止され、
nodeReplaced
ビュー通知が削除されました。nsINavHistoryResultObserver.nodeReplaced
も削除されました。
XPCOM
nsIDownloadManagerUI
が旧式のダウンロード ID を使っている問題が修正されました。オプションのダウンロード ID 引数はnsIDownload
オブジェクトとなりました。ContentChild
のnsIConsoleListener
において、addref
、release
両メソッドがスレッドセーフ化されました。この変更は Bug 852220 によって行われました。簡単に言えば、メッセージが記録されたときに、即座にnsIConsoleListener
オブジェクトが通知されると期待すべきでないということです。リスナーを削除してしまうとメッセージを失う可能性があります。NodeIterator
とTreeWalker
からexpandEntityReferences
が削除されました。nsSelectionIterator
が削除されました。nsISelectionPrivate.getEnumerator
も削除されました。
新機能
- 言語パックが初期設定で再起動不要となりました。
- 安全な PRNG が DOM 内に露呈されるようになりました。
window.crypto.getRandomValues
で暗号学的にランダムな値を得ることが可能となりました。
この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが Firefox 21 で動かなくなった場合は、筆者の方でも調査したいと思います。
AMO に登録されているアドオンの 自動互換性テストと対応バージョンの更新 はまもなく行われますので、AMO にアドオンを登録している方はメールをチェックしてみてください。