Firefox 24 アドオン互換性情報
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 24 の翻訳です]
Firefox 24 が 9 月 17 日 [日本時間同日深夜] リリース となります。Firefox 24 の変更点でアドオンの互換性に影響を及ぼす可能性のあるものを以下にまとめました。Firefox 24 for Developers により詳しい情報が載っていますので、こちらも併せてご覧ください。
一般
- ブラウザコンソールが実装されました。この機能の実装の最終段階として メニュー項目が変更されました。ブラウザコンソールはエラーコンソールを置き換えるもので、エラーコンソールの全機能に加え新機能も備えています。従来のエラーコンソール用メニュー項目は、DOM 内に存在するものの非表示となりました。この項目は今後のバージョンで削除されてしまうため、あなたのアドオンのオーバーレイがこれに依存している場合、近々変更を加えた方が良いでしょう。
- プラグインのドアハンガー UI が CtP の新仕様に合わせて再実装されました。これにより、プラグインの Click-to-Play 体験に関して様々な変更が行われました。あなたのアドオンが何らかの機能を活用している場合は、すべて問題なく動作するかどうか再度テストを行う必要があるでしょう。
- Sherlock 検索プラグインがローカルファイルシステムから読み込まれなくなりました。Sherlock (
.src) 形式の検索プラグインは OpenSearch 形式に取って代わられ、長らく非推奨となっています。これは Sherlock 対応を完全に削除する にあたっての第一歩となります。 - CSS の接頭辞付き
-moz-initialキーワードが削除されました。標準化されたinitialキーワードに置き換えてください。 - Firefox のバージョン番号表記のうち 2 つめの部分が使えるようになりました。これにより、24.0.x だけでなく Firefox 24.1 のようなバージョン番号の付与が可能となりました。あなたのアドオンでバージョンチェックを行っている場合は、そうしたバージョンもあり得ることを念頭に置いてください。
- log4moz で、同期ファイル入出力のアペンダが非同期のものに置き換えられました。Firefox に同梱されている log4moz のコードを活用して通常のファイルアペンダを使っている場合は、多少の変更を行う必要があるでしょう。
- SQLite のバグにより、拡張機能からの一部クエリが動作しなくなっていました。SQLite 3.7.15 のバグ が、少なくともひとつの拡張機能のクエリに影響していました。この問題は 3.7.17 への更新によって修正されました。
DOM
preventBubbleとpreventCaptureが削除されました。これに代わる標準のメソッドはstopPropagationです。routeEvent、enableExternalCapture、disableExternalCaptureが削除されました。getPreventDefaultの廃止予定がコンソールで通知されるようになりました。このメソッドはまだ削除されていませんが、まもなく削除される予定です。代わりにdefaultPreventedを使ってください。
XPCOM
- 4 KB 以上の設定が保存される場合に警告が表示されるようになりました。これに関してはまだ具体的なことは言えませんが、設定システムは一般的なデータストレージ用途に提供されているものではありません。一部の拡張機能による クラッシュ が各設定につき 1 MB の上限を設けるきっかけとなり、まもなく その制限が 4 KB まで下げられる 予定です。今のところ、上限を超えた場合にコンソールに警告が表示されるだけです。
nsIBrowserSearchServiceのaddEngineメソッドがbrowser.search.selectedEngineを変更しなくなりました。アドオンがaddEngineを呼び出して、そのエンジンが既に存在する場合、従来は何も起きずに呼び出しが失敗していました。その代わりにエラーメッセージで警告されるようになったことが、ここでの主な変更点と言えます。また、インタフェース ID の更新が同時に行われず、最新のベータ版で修正されたことは 別記事 でお伝えした通りです。バイナリコンポーネントからこのインタフェースを使用している場合はこの記事も併せて参照してください。nsIFormHistory2が非推奨となり、今後削除されます。今回は廃止予定であることを知らせる警告が追加されただけですが、このインタフェースは そのうち削除されます。非同期のFormHistory.jsmで代用してください。nsIDocShellHistoryが削除されました。このインタフェースはnsIDocShellへ統合されました。nsIX509Cert.verifyForUsageが削除されました。nsIDOMPluginTag内にnsIDOMMimeTypeオブジェクトが露呈されなくなりました。getMimeTypesメソッドは文字列形式の配列を返すようになりました。nsIDOMHTMLMediaElement.mozLoadFromが削除されました。
新機能
getPageTitleの後継となる非同期のgetPlacesInfoが実装されました。getPageTitleは そのうち削除される ことになっていますので、あなたのアドオンでこれに依存している場合は、この新しい非同期メソッドで置き換えてください。- クロームワーカー向けのモジュールローダーが実装されました。SDK アドオンのコードと同じような方法で、クロームワーカーからモジュールを読み込めるようになりました。
- プロンプトメッセージを包括する
Prompts.jsmが実装されました。これは Android 専用ですが、プロンプトを表示する 便利なモジュール が追加されています。
この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが Firefox 24 で動かなくなった場合は、筆者の方でも調査したいと思います。
AMO に登録されているアドオンの 自動互換性テストと対応バージョンの更新 は来週か再来週に行われますので、AMO に Firefox 23 対応のアドオンを登録している方は後日メールをチェックしてみてください。