Firefox 12 のアドオン互換性に関わる修正のまとめ
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 12 の抄訳です]
Firefox 12 は今日深夜 (日本時間) にベータ版となります。互換性情報の提供が遅れて申し訳ありません。Firefox 13 の情報は通常通り事前にまとめるつもりです。
Firefox 11 の互換性情報 (追記)
Components.utils.getWeakReference(null)
がエラーもなく失敗します。呼び出し方の変更によって NoScript などの互換性が失われましたが、リリース前に取り消されたため、正式版では問題ないはずです。
その他の変更点については Firefox 11 のアドオン互換性に関わる修正のまとめ を参照してください。
Firefox 12 の一般的な変更点
- Jetpack サービスが削除されました。非常に古いバージョンの Add-ons SDK は、Firefox に統合されていたこの古いサービスに依存していました。いずれにしても、このサービスを使っているアドオンはずいぶん前に動かなくなっているはずですので、すべての開発者に手元の SDK のバージョンを更新するよう推奨します。詳しい情報は Developer Hub で公開しています。
- ツールバーカスタマイズ画面のデザインが改良されました。これはどの拡張機能にも影響しないはずですが、もしボタンなどの要素を追加している場合は一度テストしてみてください。テーマはおそらくこの変更による影響を受けます。
インライン自動補完が再度有効化されました。ロケーションバーとその自動補完 (推測候補) 機能に手を加えているアドオンについては、動作に問題がないか確認してください。更新: この変更は Firefox 13 へ持ち越されました。addDownload
が非同期で行われるようになりました。バグからの引用「nsIDownloadHistory
を使う場合、addDownload
メソッドが返った後も履歴項目が存在していることを前提としたコードを書けなくなりました。必要な場合は、nsINavHistoryObserver
やその他の方法を使って、ターゲット URI が参照されたタイミングを待つべきです。link-visited
オブザーバトピックは、履歴項目が保存される前に通知されるので使えません。」- シャープ変数への対応が打ち切られました。これはまったく無名の JavaScript 機能でしたが、削除されたので念のため書き残しておきます。
UniversalXPConnect
以外の特権管理機能が削除されました。これは主に、Web コンテンツのために高度な特権を要求する Web サイトやイントラネットに影響します。enablePrivilege
機能は廃止される予定で、今回の変更はそれに向けた第一歩となります。chromemargin
属性の振る舞いが変更されました。chromemargin
属性の振る舞いにバグがあり、一部のアドオンで「最小化」「最大化」「閉じる」ボタンを移動させることが可能となっていました。関連するコードに行われた最近の変更によってこのバグが修正されたため、そうしたアドオンは期待通りに動かなくなっている可能性があります。この変更が取り消されることはなさそうですが、いくつかの代替策がバグのコメントで提案されています。
Firefox 12 の XPCOM 関連の変更点
- XPCOM プロキシが削除されました。具体的には
nsIProxyObjectManager
インタフェースが廃止されました。 nsIDocCharset
とnsIDocumentCharsetInfo
がdocshell
へ統合されました。各インタフェースとgBrowser.documentCharsetInfo
は廃止されました。_MOZILLA_2_0_BRANCH
インタフェースが廃止されました。一連の変更はnsIScreen_MOZILLA_2_0_BRANCH
の削除によってすべて完了しました。nsRange
が廃止されました。影響を受けるインタフェースは、nsIDOMNSRange
、nsIRangeUtils
、nsIRange
です。nsIScriptError
とnsIScriptError2
が統合されました。nsIScriptError2
は廃止されました。imgIContainerObserver::FrameChanged
がimgIRequest*
を受け付けるようになりました。この変更はバイナリコンポーネントを含むアドオンのみに影響しますが、実際にそのようなアドオンがあるかどうかは分かりません。
その他の重要な変更は Firefox 12 for developers に書かれています。
Firefox 12 の開発者向け新機能
@mozilla.org/xmlextras/domparser
にtext/html
が実装されました。このバグはなんと 10 年以上前に登録されたものでした。XMLHttpRequest
でネットワークタイムアウトを指定可能になりました。これにより、XHR リクエストの待ち時間をより柔軟にコントロールできるようになりました。XHR オブジェクトにtimeout
プロパティ (値の単位はミリ秒) とontimeout
イベントが追加されました。- サムネイルサービスが追加されました。次のバージョンに入る「新しいタブページ」機能 (下記参照) 実装の一環として、より簡単にページのサムネイル生成できる新しいサムネイルサービスが追加されました。まだドキュメントは書かれていませんが、興味のある方は JSM コード を見てみてください。
Firefox 13 の主な変更点
あらかじめ触れておいた方が良いと思われる大きな変更点が 2 つあります。
- 「新しいタブページ」機能が追加されました。Firefox 13 では、新しいタブを開いたとき、空白ページの代わりに、履歴に基づくページの推測候補が表示されます。これはいくつかの既存アドオンの機能と重複するため、そうしたアドオンがこれまで通りに動作しなくなる可能性が考えられます。
また、新しいタブページにテーマを適用できるようにすべき というバグも立っています。これはおそらく簡単な修正で、テーマ開発者に大いに役立つはずです。もし時間があればパッチを投稿してください。更新: Bug 729878 で行われた作業の結果、新しいタブページのルートxul:window
要素にはnewtab-window
という ID が振られたので、拡張機能やテーマからの参照が可能になっています。 - Firefox 13 では、バイナリコンポーネントを含むアドオンの Windows 版で ASLR 対応が必須となります。Kyle Huey のブログ に説明があります。
この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。