Firefox 18 のアドオン互換性に関わる修正のまとめ
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 18 の抄訳です]
Firefox 18 が 1 月の第 2 週 [ 日本時間深夜] にリリースとなります。Firefox 18 の変更点でアドオンの互換性に影響を及ぼす可能性のあるものを以下にまとめました。Firefox 18 for Developers により詳しい情報が載っていますので、こちらも併せてご覧ください。
一般
app://プロトコルと XMLHttpRequest の仕様が変更されました。XHR でローカルリソースを読み込んでいてstatus == 0の判別を行っている場合、それは今後機能しなくなります。通常のリクエストと同様にstatus == 200を判別してください。- 各種
on*イベントリスナーが DOM オブジェクトから取り除かれました。常にaddEventListenerを使うことが推奨されます。イベントリスナーを追加するのにon*プロパティを設定する必要がある場合は、それをhandleEvent関数を含むオブジェクトの代わりに関数としてください。更新: こちらのサイト互換性ドキュメント により詳しい解説が載っています。 - 同期プロキシ API と同期 DNS 名前解決が廃止されました。これにより
nsIProtocolProxyServiceとnsIProxyAutoConfig、そしてnewProxiedChannel関数に変更が加えられ、それぞれ非同期となりました。 - メインスレッド上での
nsICacheSession::openCacheEntryの呼び出しが廃止されました。代わりにasyncOpenCacheEntryを使ってください。 BlobBuilderが廃止されました。代わりにBlobコンストラクタを使ってください。WebSocketコンストラクタがアドオンのスコープから使用できません (解決済み)。このバグは Firefox 18 の最終版では修正されていますが、ベータサイクルのうち長期間にわたって存在していました。Add-ons SDK を使ったアドオンでは特に再現しやすい問題でした。もしあなたのアドオンがこのバグの影響を受けていた場合は、最新のベータ版で再度テストしてください。- WebSockets が WebIDL へ移植されました。これはグローバルコンストラクタの代わりに XPCOM を使って WebSockets を生成しているアドオンにのみ影響します。そうした方法は今後使用できません。
プライベートブラウジング
プライベートと非プライベートのウィンドウを同時に開けるよう、プライベートブラウジングモードに変更が加えられました。これは、多くの XPCOM インタフェースやその他の関数が、新仕様に対応するため変更されたということを意味します。変更の多くは、呼び出し元のコンテキストを関数に伝える新たな引数の追加で、それらの関数はその値に従って動作するようになりました。
removeDataFromDomainAPI が独自サービスに移行しました。この関数は JavaScript モジュールClearRecentHistory.jsmへ移動されました。- サイトアイコン (favicon) の取得がプライベートブラウジングのコンテキストを継承するようになりました。これにより新たな引数が
setAndLoadFaviconForPageへ追加されました。 imgLoaderがグローバルプライベートブラウジング通知を使わなくなりました。imgICacheやimgILoaderの仕様は非推奨となりました。代わりにimgIToolsを使ってください。詳しくはimgICacheのドキュメント を参照してください。nsWebBrowserPersist::SaveURIInternalがどこからともなくチャンネルを生成している問題が修正されました。saveURIが新たな引数を取り、新関数savePrivacyAwareURIが追加されました。nsDownloadにプライバシーステータスが追加されました。nsIDownloadManager.addDownload、nsITransfer.init、contentAreaUtilsのsaveURLに新しい引数が追加されました。
新しいプライベートブラウジングモードに関しては、以下のドキュメントに詳しい情報が載っています。
新機能
この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが Firefox 18 で動かなくなった場合は、筆者の方でも調査したいと思います。
AMO に登録されているアドオンの 自動互換性テストと対応バージョンの更新 は来週行われますので、後日メールをチェックしてみてください。