Firefox 32 アドオン互換性情報
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 32 の翻訳です]
Firefox 32 が 9 月 2 日 [日本時間同日深夜] リリース となります。Firefox 32 の変更点でアドオンの互換性に影響を及ぼす可能性のあるものを以下にまとめました。Firefox 32 for Developers により詳しい情報が載っていますので、こちらも併せてご覧ください。
一般
- コンテキストメニューにナビゲーション項目が組み込まれました。Firefox 32 以降のバージョンを使い、ページ上で右クリックすると、ページ遷移とブックマークのためのアイコンの列が最上部へ追加されていることに気付くでしょう。あなたのアドオンがコンテキストメニューのノード構造に依存している場合、この変更による影響を受ける可能性があります。
xul.css
UA スタイルシートの読み込みが極力制限されるようになりました。これは XUL コンテンツを HTML ページへ注入している拡張機能に影響するでしょう。いずれにしてもそうした手法は推奨できませんが…
コンテンツスクリプト
Object
オブジェクト と Array
オブジェクト に Xrays が実装されました。これは、特権、非特権コード間の重要なセキュリティ境界を拡大するもので、Xray Vision と呼ばれています。簡単に言えば、コンテンツコード内で window.alert
のような一般的な関数が呼び出される際、特権付きスクリプトが非特権コードを実行してしまうのを防ぐ機能です。そうした関数はページ内のスクリプトによって置き換えられる可能性があるためで、常に本来の関数が呼び出されることが保証されます。
特権、非特権コードを確実に分離するため、メッセージマネージャ の使用を推奨します。メッセージマネージャは Firefox が (Electrolysis、もしくは省略して e10s と呼ばれる) マルチプロセス構造へ移行するにあたって必要となるため、近々このブログでもより詳しく取り上げる予定です。アドオンの中で使い始めるのに早いに越したことはありません。
XPCOM
- 次世代 HTTP キャッシュ機構の導入に伴い、旧 IDL へのアクセスが無効化されました。新たなキャッシュストレージインタフェースが実装されたことで、従来のインタフェースの大半が削除されました。詳しくは、Jan Bambas のブログ記事 と MDN の記事 を参照してください。
- パスワードマネージャからメインスレッド I/O が削除されました。ログインマネージャ へアクセスするための API は ほぼ未変更のまま 維持されていますが、ストレージバックエンドは JSON ベースの非同期コードとなりました。これには、
addLogin
と同様にmodifyLogin
で入力内容の検証を行うようにする 変更 も含まれています。 nsCharsetAlias
とnsCharsetConverterManager
が削除されました。AMO に登録されているアドオンでこれらのインタフェースを使用しているものはないようですが、念のため記載しておきます。
新機能
- アドオンがデータや設定を保存するための標準ディレクトリが用意されました。ほとんどのアドオン作者は、アドオンに関するデータをプロファイルディレクトリ内のいずれかの場所に保存すべきである (設定には少量の設定値のみを保持する) ということを知っていますが、これに関するはっきりとした基準、あるいは最適なストレージ API は、これまでのところ提供されていませんでした。今回の第一段階では
[プロファイル]/extension-data/[アドオン ID]
という標準ディレクトリが確立されました。関連バグ では、このフォルダへデータをより簡単に保存できるようにする API が実装される予定です。まずは、あなたのアドオンのデータをこの新しい場所へ移行することを検討してください。Alex Vincent 氏の素晴らしい作業に賞賛を!
この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが Firefox 32 で動かなくなった場合は、筆者の方でも調査したいと思います。
AMO に登録されているアドオンの 自動互換性テストと対応バージョンの更新 はまもなく行われますので、AMO に Firefox 31 対応のアドオンを登録している方は後日メールをチェックしてみてください。
名無し :