Firefox 30 アドオン互換性情報
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 30 の翻訳です]
Firefox 30 が 6 月 10 日 [日本時間同日深夜] リリース となります。Firefox 30 の変更点でアドオンの互換性に影響を及ぼす可能性のあるものを以下にまとめました。Firefox 30 for Developers により詳しい情報が載っていますので、こちらも併せてご覧ください。
一般
- アドオン専用の一部 JavaScript モジュールがサブディレクトリへ移動されました。アドオンマネージャで使用されている JavaScript モジュールの多くが移動され、パスが変わりました。これには、
AddonRepository.jsm
、LightweightThemeImageOptimizer.jsm
、XPIProvider.jsm
、AddonUpdateChecker.jsm
、AddonLogging.jsm
、PluginProvider.jsm
、AddonRepository_SQLiteMigrator.jsm
、XPIProviderUtils.js
、SpellCheckDictionaryBootstrap.js
が含まれます。新しいパスはresource://gre/modules/addons/モジュール名.jsm
となります。 Object.prototype.__proto__
セッター使用時にパフォーマンス警告が表示されるようになりました。__proto__
とsetPrototypeOf
は、パフォーマンスへの影響が大きいことから、プロトタイプの設定に使用すべきではありません。代わりにObject.create
を使ってください。- 非リリースビルドでシステム呼び出し用の関数として WebIDL コンストラクタを呼び出すことが禁止されました。特定のグローバルオブジェクトのコンストラクタを
new
キーワードなしで呼び出そうとした場合にエラーが投げられます。この変更はリリースビルドではまだ無効化されていますが、完全な禁止 に向けた第一歩となります。
XPCOM
NS_VK_ENTER
とnsIDOMKeyEvent::DOM_VK_ENTER
の関連コードが削除されました。_VK_ENTER
を含む定数が削除されました。これらはキーイベントでは一度も使用されたことがないため既存のコードには影響しないはずですが、念のためあなたのコードで参照している箇所がないか探すと良いかもしれません。- コンテンツプロセスがメインプロセスとは異なるウィジェットを取得するようになりました。これは、複数バージョンの Firefox に対応させようとしているアドオンのバイナリ XPCOM 互換性に影響します。
- メインスレッド以外からの設定へのアクセスが禁止されました。
Blob.mozSlice
への対応が廃止されました。
プラグイン
- プラグインホワイトリストが実装されました。これによる拡張機能への影響は一般的にはないはずですが、指摘するだけの価値はあるでしょう。しばらく前に 発表 があった通り、多くのプラグインは有効化のためユーザのアクションが必要となり、プラグインベンダーは ホワイトリスト への追加を申請することが可能です。Adobe Flash のような主要プラグインは既にホワイトリストへ追加されています。あなたのアドオンでプラグインを使用している場合は、できるだけ早く他の技術へ移行するよう強く推奨します。
SDK
- Australis UI 機能が追加されました。新しい Australis 機能の一部が Firefox 29 に間に合いませんでしたが、30 で利用可能となっています。
- パネルテキスト内のキャレットが点滅するようになりました。このバグについてはしょっちゅう耳にしていたため、修正されたのを見て嬉しく思います。
- Add-on SDK の
unsafeWindow
に変更が行われました。あなたのコンテンツスクリプト内でunsafeWindow
を使用している場合、この記事を読んでください。
新機能
これらは実際のところ新しい開発者向け機能ではありませんが、互換性に影響しないいくつかのバグ修正で、役に立つと思われるものです。
-moz-os-version
メディアクエリが Windows 8.1 で機能していませんでした。このバグは 29.0.1 で修正されていますが、見逃した人のためにここで取り上げておきます。nsIContentPrefService2
で廃止されたgetPrefsByName
の代替関数が用意されました。
この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが Firefox 30 で動かなくなった場合は、筆者の方でも調査したいと思います。
AMO に登録されているアドオンの 自動互換性テストと対応バージョンの更新 はまもなく行われますので、AMO に Firefox 29 対応のアドオンを登録している方は後日メールをチェックしてみてください。