Firefox 17 のアドオン互換性に関わる修正のまとめ
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 17 の抄訳です]
Firefox 17 が 11 月 20 日の日本時間深夜にリリースされます。Firefox 17 の変更点でアドオンの互換性に影響を及ぼす可能性のあるものを以下にまとめました。Firefox 17 for Developers により詳しい情報が載っていますので、こちらも併せてご覧ください。
General
__exposedProps__がdefault-safeに変更されました。この変更に関してはしばらく議論が行われてきました。詳しくは アドオンのオブジェクトをコンテンツへ安全に露呈させる方法 をご覧ください。enablePrivilegeが廃止されました。この機能はしばらく前に廃止予定・非推奨となり、Firefox から徐々にコードが削除されてきました。もはや期待通りには動作しませんので、もし使用している場合は代替策を検討してください。XHR.onuploadprogressが削除されました。このプロパティは非標準であったため削除されました。代わりの方法はXMLHttpRequestのドキュメントをご覧ください。javascript.options.xml.contentが初期設定で無効化されました。これによってコンテンツの E4X が完全に無効化されることになります。E4X も削除されることが決まっており、使用すべきではありません。- ソースの保存による関数オブジェクトの
toStringが実装されました。もしアドオンのコードでevalやfunction.toStringを使って既存の関数を上書きしている場合、この変更によって動作しなくなる可能性が高いでしょう。いつものことですが、そうした方法はできる限り避けることを推奨します。 - 署名済み拡張機能の証明書が初回起動時のみ検証されるようになりました。デジタル署名されている拡張機能の証明書は、従来 Firefox の起動時に毎回検証されていましたが、今後はインストール時に 1 回だけ検証されるようになります。
onbeforeunload、onunload、onpagehideでダイアログを表示できなくなりました。alert、confirm、promptの使用が制限されます。Web サイトがユーザをそのページに無理矢理とどまらせようとする場合があり、そうした状況を防ぐための措置です。- 存在しない
WeakMapキーを追加しようとしたときに例外が投げられるようになりました。これはWeakMapを使っている場合のみ影響します。
XPCOM
- 新しい
nsIFilePicker::ShowAsyncメソッドが追加されました。nsIFilePicker::Showは廃止予定となったため、代わりにこの非同期メソッドを使用してください。 checkLoadURI()とcheckLoadURIStr()が削除されました。代わりにcheckLoadURIWithPrincipal()を使用してください。- メッセージマネージャがセンダーとブロードキャスターに分離されました。これによってメッセージの送受信方法が変わり、
nsIChromeFrameMessageManagerインタフェースは削除されました。 JavaScript-global-constructorオブジェクトがウィンドウ参照を渡されるようになりました。あなたのアドオンでグローバルコンストラクタを登録し、なおかつ引数を取っている場合は、このバグに目を通した方が良いでしょう。GetCodebasePrincipalの呼び出し元が正しいdata jarを使うよう更新されました。この修正によってgetCodebasePrincipalの関数名が一時的に変更されたため、ベータ期間中に一部のアドオンが動作しなくなりました。変更は取り消されたので、コードに変更を加える必要はなくなりました。
新機能
- トップレベル XUL ウィンドウがサイズ制限に対応しました。これによって、トップレベルの XUL ウィンドウでも
minwidth、minheight、maxwidth、maxheightが使えるようになります。 - サイトアイコン (favicon) から最も代表的な色を抽出する機能が実装されました。これは面白く、おそらく役に立つものと思われます。新しいインタフェースは
mozIColorAnalyzerといいます。
その他、Firefox 16 で判明した 読み込みハンドラの問題 が Firefox 17 で修正されています。
この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが Firefox 17 で動かなくなった場合は、筆者の方でも調査したいと思います。
AMO に登録されているアドオンの 自動互換性テストと対応バージョンの更新 は来週行われますので、後日メールをチェックしてみてください。