Firefox 9 のアドオン互換性に関わる修正のまとめ

[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 9 の抄訳です]

Firefox 9 が最近 Aurora チャネルへ移行しましたので、いつも通り、アドオンの互換性に影響を与えるすべての変更点をまとめます。今回筆者 [Jorge Villalobos] が見つけたバグで厄介かと思われるものはごくわずかでしたが、言及すべき小さな変更点は多々あります。このバージョンに関する包括的な情報は、MDN の Firefox 9 for Developers を参照してください。

それではさっそく見ていきましょう。

アドオン互換性に影響を与える可能性のある変更点

  • URI に含まれるセミコロンの不適切な扱いが修正されました。これによってほぼ無名の URI 機能が削除された一方で、多くのアドオンが依存している nsIURL やその他の関連コンポーネントに変更が行われました。nsIURL.param が削除され、nsIURLParser.parsePath から引数がひとつ削除されました。
  • geo.wifi.* 設定の整理と削除が行われましたgeo.wifi.urigeo.wifi.protocol の各設定が削除され、URI は NetworkGeolocationProvider.js にハードコードされました。筆者はこの変更が必要となった理由をバグで尋ねましたが、まだ回答はありません。 更新: バグに投稿されたコメントから、これらの設定はまだ有効だということが判明しました。実際には、この設定の規定値が削除されたため、about:config に現れなくなったという状況のようです。今後も、設定サービスを使ってこの値を指定したり、about:config に適切な名前で文字列型の新たな設定値を作成したりすることは可能です。いずれにしても、この設定を読み込んでいるアドオンは、あらかじめこの値を設定せずに取得しようとすると例外が発生するようになるため、コードの確認が必要です。
  • Navigator.taintEnabled() が削除されました. これは何の役にも立ちませんが、Netscape 独自のメソッドであったため、Web ページ内のブラウザ判別スクリプトや、同様のコードを取り込んだアドオンで使われてきました。Firefox 9 以降、このメソッドを呼び出すと例外が投げられます。
  • nodePrincipalbaseURIObjectXrayWrapper へ移動され、nsDOMClassInfo から削除されました。これは、enablePrivilege を使って XPConnect 特権を要求する非特権スクリプトから、DOM ノード上の baseURIObjectnodePrincipaldocumentURIObject の各プロパティにアクセスしようとするアドオンにしか影響しないはずです。AMO では以前から enablePrivilege の使用を禁止してきたため、AMO に登録されているアドオンで影響を受けるものはないと思います。
  • 履歴削除の応答性が向上しました。これによって、nsIBrowserHistory の廃止予定メソッドであった registerOpenPageunregisterOpenPage が削除されました。
  • nsIGlobalHistory3 が削除されました。これはアドオンでは滅多に使用されていないでしょう。
  • スペルチェック設定がサイトごとに記憶されるようになりました。これに伴い nsIEditorSpellCheck.saveDefaultDictionary が削除されました。

もし興味があれば、互換性の検証に使用するバグの一覧 もご覧ください。これらは今週確定し、木曜日に AMO へ展開されます。アドオンの対応バージョン一斉更新 は金曜日に予定していますが、場合によっては来週まで延期する可能性もあります。

バイナリ互換性に影響を与える可能性のある変更点

バイナリ XPCOM を使ったアドオンの作者にとって特筆すべきと思われる変更点がいくつかあります。その多くは、新たなメソッドや属性など、JavaScript の呼び出しには影響しない IDL インタフェースの変更です。

バイナリコンポーネントは毎回コンパイルし直さなければなりませんので、もし何か問題が生じた場合は、この一覧が多少の時間の節約になるかもしれません。

その他特筆すべき変更点

この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが Firefox 9 で動かなくなった場合は、筆者の方でも調査したいと思います。

繰り返しになりますが、対応バージョンの自動更新 は今週後半に予定しています。現時点で maxVersion8.* となっているアドオンが対象となります。私たちは前回の更新で可能な限り多くのアドオンを 8.* へ更新しましたが、中には Firefox 8 と互換性があるにも関わらず更新されなかったアドオンがあるかもしれません。万が一あなたのアドオンがこれに該当する場合は、更新まであと数日ありますので、AMO の Manager My Add-ons ページで対応バージョンを変更するか新しいバージョンをアップロードしてください。

以前のバージョンの変更点など