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 インタフェースやその他の関数が、新仕様に対応するため変更されたということを意味します。変更の多くは、呼び出し元のコンテキストを関数に伝える新たな引数の追加で、それらの関数はその値に従って動作するようになりました。
removeDataFromDomain
API が独自サービスに移行しました。この関数は JavaScript モジュールClearRecentHistory.jsm
へ移動されました。- サイトアイコン (favicon) の取得がプライベートブラウジングのコンテキストを継承するようになりました。これにより新たな引数が
setAndLoadFaviconForPage
へ追加されました。 imgLoader
がグローバルプライベートブラウジング通知を使わなくなりました。imgICache
やimgILoader
の仕様は非推奨となりました。代わりにimgITools
を使ってください。詳しくはimgICache
のドキュメント を参照してください。nsWebBrowserPersist::SaveURIInternal
がどこからともなくチャンネルを生成している問題が修正されました。saveURI
が新たな引数を取り、新関数savePrivacyAwareURI
が追加されました。nsDownload
にプライバシーステータスが追加されました。nsIDownloadManager.addDownload
、nsITransfer.init
、contentAreaUtils
のsaveURL
に新しい引数が追加されました。
新しいプライベートブラウジングモードに関しては、以下のドキュメントに詳しい情報が載っています。
新機能
この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが Firefox 18 で動かなくなった場合は、筆者の方でも調査したいと思います。
AMO に登録されているアドオンの 自動互換性テストと対応バージョンの更新 は来週行われますので、後日メールをチェックしてみてください。