» アドオン開発
Firefox 28 アドオン互換性情報
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 28 の翻訳です]
Firefox 28 が 3 月 18 日 [日本時間同日深夜] リリース となります。Firefox 28 の変更点でアドオンの互換性に影響を及ぼす可能性のあるものを以下にまとめました。Firefox 28 for Developers により詳しい情報が載っていますので、こちらも併せてご覧ください。
一般
window
プロパティと同名のグローバル変数にはアクセスできなくなりました。window
スコープでwindow
上のプロパティと同名のグローバル変数 (例えばname
) を定義している場合、この問題に遭遇する可能性があります。これは Bug 932322 によって引き起こされました。いつものことですが、グローバル変数を定義する場合は適切な名前空間を使用するよう推奨します。- 余計な
__SS_tabStillLoading
プロパティが削除されました。この一時プロパティはいくつかのアドオンで使われていますが、削除されることになりました。考えられる代替手段がバグのコメントに投稿されています。 showModalDialog
が廃止予定となりました。今のところコンソールに警告が表示されるだけですが、このメソッドの使用が非推奨となったことに留意すべきでしょう。removeDir()
のignoreAbsent
フラグの初期値がfalse
に変更されました。念のために言うと、これはOS.File
ライブラリにあります。DeferredTask
が改良され、非同期タスクを処理できるようになりました。この変更は、比較的新しいDeferredTask
モジュールを使用している場合のみ影響します。
XPCOM
- セッション復元の起動時同期フォールバックが削除されました。
- プロファイルのローカルデータディレクトリ (
ProfLD
、NS_APP_USER_PROFILE_LOCAL_50_DIR
) が新たに作成されたプロファイルで間違っている問題が修正されました。これはとても古いバグですが、修正されたことで開発者は幸せになるでしょう。
新機能
-
console.assert
が追加されました。これは、1 番目の引数にアサーションを、2 番目の引数にログメッセージ取る、新しいロギングオプションです。 - CommonJS の Assert ライブラリが導入されました。これにより、CommonJS ユニットテストの仕様を実装した新しい JavaScript モジュールが追加されました。
- グローバルデータのためのセッション復元 API が導入されました。これにより、ウィンドウやタブに固有ではないセッションストアが追加されました。
この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが Firefox 28 で動かなくなった場合は、筆者の方でも調査したいと思います。
AMO に登録されているアドオンの 自動互換性テストと対応バージョンの更新 はまもなく行われますので、AMO に Firefox 27 対応のアドオンを登録している方は後日メールをチェックしてみてください。
Firefox 27 アドオン互換性情報
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 27 の翻訳です]
Firefox 27 が 2 月 4 日 [日本時間同日深夜] リリース となります。Firefox 27 の変更点でアドオンの互換性に影響を及ぼす可能性のあるものを以下にまとめました。Firefox 27 for Developers により詳しい情報が載っていますので、こちらも併せてご覧ください。
一般
downloads-indicator
が廃止されました。downloads-button
とdownloads-indicator
ノードは同じ役割を果たしていたため、前者が残され後者が削除されました。あなたの JavaScript もしくは CSS コード内でdownloads-indicator
を使っている場合はdownloads-button
に置き換えてください。O_APPEND
が原因となった、OS.File
のプラットフォーム非互換な挙動が修正されました。OS.File
ライブラリに関して、Windows 以外のシステムで、初期設定で付加オプション付きでファイルが開かれる問題が報告されていました。一方 Windows ではオプションは付いていませんでした。今回の変更により、すべてのファイルが初期設定でオプションなしで開かれるようになりました。- Stylish エディタの検索バーが動作しない問題が修正されました。あなたの拡張機能に検索バーを使ったビューが含まれている場合、Firefox 27 で動作しなくなる可能性があります。変更の詳細は Bug 939381 を参照してください。
-moz-rgba()
と-moz-hsla()
が削除されました。それぞれ接頭辞なしの CSS 関数で代用してください。
XPCOM
- JavaScript シンボルのエクスポートが廃止されました。JSAPI は拡張機能から使用できなくなりました。実際これによる影響を受けるのは非常に特殊なバイナリ同梱アドオンに限られるはずです。いずれにしても拡張機能の中で JavaScript を実行するより良い方法は他にあります。
新機能
- 不可視かつ永続的な
docshell
を作成する方法が用意されました。あなたの拡張機能で隠し DOM ウィンドウやその他のハックを使ってバックグラウンドで DOM 構造を保持している場合、この新機能をチェックすると良いかもしれません。createWindowlessBrowser
を使うと、隠しコンテンツウィンドウや隠しクロームウィンドウを作成できます。 log4moz.js
がLog.jsm
としてツールキットへ追加されました。log4moz
は、Java ベースの人気ツールlog4j
をベースとした、非常に便利なロギングツールです。これは何年も様々な形で存在してきましたが、今回 Log.jsm を使ってとても簡単に利用できるようになりました。- JavaScript モジュールから DOM URL を取得可能になりました。JavaScript モジュールから
URL
グローバルコンストラクタにアクセスできるようになりました。 - コマンドラインオプション
-jsconsole
でブラウザコンソールが開かれるようになりました。これまで古いエラーコンソールを開くことが可能だったように、コマンドラインからブラウザコンソールを起動できるようになりました。 - ディレクトリを再帰的に削除する関数が
OS.File
に追加されました。 - 難読化された JavaScript をデバッガ内で整形する機能が追加されました。
この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが Firefox 27 で動かなくなった場合は、筆者の方でも調査したいと思います。
AMO に登録されているアドオンの 自動互換性テストと対応バージョンの更新 はまもなく行われますので、AMO に Firefox 26 対応のアドオンを登録している方は後日メールをチェックしてみてください。
Mozilla Add-on Builderから Add-on SDKデスクトップ環境への移行方法
予てから告知があったとおり、2014年1月7日に Mozilla Add-on Builder(クラウドサービス)がリードオンリーモードに変更されました。
それに伴い、Firefoxの拡張機能の開発は Add-on SDKをインストールして PC上で行うことになりました。
もちろん、いままで Add-on Builderで開発してあった拡張機能を Add-on SDKのデスクトップ環境に移行する必要があります。
しかし、例によって移行方法はドキュメントが準備されていませんでしたので移行方法をまとめました。
よかったら参考になさってください。
Mozilla Add-on Builderから Add-on SDKデスクトップ環境への移行方法
【残念なお知らせ】 Add-on Builderは 2014年4月でサービスを終了します
mozillaから残念なお知らせの発表がありました。
mozillaの Add-on Builderは特別な開発環境をインストールすることなく、Firefox上で拡張機能を開発できる便利なサービスでした。
しかし、2014年4月で Add-on Builderのサービスを終了するとのことです。
mozilla 公式ブログ ADD-ONS Blog (英語)
“Add-on Builder – 2013/12/18″
https://blog.mozilla.org/addons/2013/12/18/add-on-builder/
今後の予定ですが、2014年1月7日をもって Add-on Builderは read-only modeになり、新規の拡張機能の作成はもちろんのこと既存の拡張機能の修正もできなくなり、2014年4月にサービスが終了になるとのことです。
ということで、2014年1月からは拡張機能を開発するためには Add-on SDKのインストールが必須となりました。
尚、私のブログではこの件に関する補足情報など掲載してあります。
よかったら、ご覧ください。
【残念なお知らせ】 Add-on Builderは 2014年4月でサービスを終了します
Australis アドオン互換性情報 – パート 1: ツールバー
[これは Mozilla Add-ons Blog の記事 Australis for Add-on Developers – Part 1: Toolbars の翻訳です]
新しい Firefox のテーマとなる「Australis」が 6 週間前に Nightly チャンネルへ投入されました。現在の作業はその上で行われているため、すぐに Aurora チャンネルへマージされることはなく、少なくともあと 1 回リリースサイクルが完了するまでは Nightly チャンネル のみでの公開となります。つまり、2014 年 4 月下旬に最終リリースが 予定 されているバージョン 29 より前に Australis が Firefox へ投入されることはありません。
アドオン開発者の皆さんには、最新の Nightly をダウンロード し、自作のアドオンをテストすることをお勧めします。何か問題に遭遇したらぜひ Mozilla へ報告してください。バグを登録 し、Australis の アドオン互換性に関するトラッキングバグ に依存関係を設定してください。重複報告を防ぐため、先に他の依存バグに目を通すようお願いします。あなたが開発者でなく、単に使っているアドオンの問題を報告したいときは、アドオン互換性レポーター という拡張機能をインストールし、それを使ってお知らせください。
それでは、Australis で何が変わったのか、アドオン開発者が知っておくべきことを順に見ていきましょう。まだ Nightly をインストールしていない場合は、このブログ記事 に書かれている情報を参照してください。
ツールバー
Australis のツールバーは大きく変わりました。これは、ほとんどの場合に余白となっていたクローム部分を削ることで、ユーザが利用可能なコンテンツエリアを最大化することを目的としています。余白を損なうことなくより複雑なウィジェットをツールバーやその他の部分へ追加できるようにする深部の変更も含まれています。
ウィンドウ下部のアドオンバーは削除されました。その代わり、ツールバーをボタンやウィジェットで拡張する新しいメニューパネルが用意されています。このパネルはメインツールバーの右端にあるボタンをクリックすることで表示できます。この新しいメニューに含まれるすべてのアイテムはカスタマイズ可能なので、アドオンのボタンやウィジェットをそこへ追加することもできます。
カスタマイズ UI にも待ち望まれていた刷新が行われ、以前よりはるかに使いやすく、アイテムを見つけやすくなりました。ウィンドウ全体を使った UI が採用され、ユーザは、自分が何をしているのかを直感的に理解し、より柔軟にツールバーのカスタマイズを行えるようになりました。ツールバーボタンを配置可能な場所は、メインツールバー、独自ツールバー、タブバー、そして新しいメニューパネルです。あなたのアドオンがボタンやウィジェットを提供している場合、いずれの場合でも問題なく動作するよう確認してください。今のところ新しい空白のツールバーを追加する方法はありませんが、ブックマークツールバーにボタンを追加することも可能となりました。アイコンの大小サイズ設定は廃止されました。
メインツールバー内の DOM 構造も前と変わっています。toolbar
要素とその子要素の間に中間コンテナが追加されました。nav-bar-customization-target
という ID を持った hbox
がそれに当たります。
ツールバーボタン
メインツールバー内のアイコンは 18 × 18 ピクセルです。ただし、周囲に 1 ピクセルの余白を含むことが想定されているので、Firefox の現行バージョンのメインツールバーで使われている 16 × 16 ピクセルのアイコンをそのまま流用できるはずです。
ボタンは、ユーザが移動したり、アドオンが新しいメニューパネルへ自動的に追加したりすることも可能なので、そうした場合についても考慮する必要があります。アイコンはメニューパネル内では 32 × 32 ピクセルで、ツールバーから削除されカスタマイズ UI に移動された場合も同様です。小さなアイコンは拡大表示されるため、16 × 16 ピクセルのアイコンを使っている場合は見た目が良くありません。
あなたのアドオンがメインツールバーへボタンを追加するもので、パレットへボタンをオーバーレイさせるための 通常のガイドライン に従い、さらに初回起動時に JavaScript を使ってツールバーへ追加する方法を採っているのであれば、CSS を以下のように編集するだけで、他のコードには一切手を加えることなく Australis へ対応できるはずです。
/* 元のスタイル */ #my-button { list-style-image: url("chrome://my-extension/skin/icon16.png"); } /* Australis 対応を追加 */ #my-button[cui-areatype="menu-panel"], toolbarpaletteitem[place="palette"] > #my-button { list-style-image: url("chrome://my-extension/skin/icon32.png"); }
なお、Australis テーマ内のボタンには、UI 上で配置される際に cui-areatype
という属性が設定されます。取り得る値は menu-panel
と toolbar
のいずれかです。この toolbar
という値を使って、Australis とそれ以外のテーマのボタンに別々のスタイルを指定することが可能です。
type="menu"
あるいは type="menu-button"
の付いたボタンの見た目と挙動には一貫性がありません。それに関してはアドオンの互換性問題がいくつか報告されていますが、Australis ではサブビューパターンが推奨されるため、それらのバグが修正されるかは不透明です。一例として、履歴ボタンがツールバー上とパネル上でどのように動作するか試してみてください。この実装方法はまだ文書化されていませんが、ソースコード を見れば把握できるかと思います。
アドオンバーボタン
上で書いたように、利用可能なコンテンツエリアを最大化するためアドオンバーは廃止されましたが、スムーズに移行できるよう、メインツールバーに後方互換コードが用意されています (古いステータスバーとの互換性まで考慮されています)。ただし現時点では機能していないようなので、この問題を追跡するための バグ を筆者 [Jorge Villalobos] が登録しました。これは確かにバグのようですが、あなたのアドオンがボタンを追加するものなら、代わりにメインツールバーへ追加することをお勧めします。
ところで、アドオンが Australis テーマの Firefox へインストールされているかどうかを判別する簡単な方法があります。それは PanelUI-menu-button
というノード ID の有無を確認することです。
SDK アドオン
既にご存じかもしれませんが、SDK は Firefox へ統合されたため、SDK を使って作られたアドオンがライブラリ全体を同梱する必要はもうありません。これにより、アドオンが SDK のバージョンを気にする必要はほぼなくなりました。初期設定でライブラリ非同梱の XPI ファイルを生成する バージョン 1.15 の SDK もつい先ほどリリースされました。
SDK が Firefox へ組み込まれているため、アドオンとウィジェットは自動的に Australis に対応するものと期待できます。将来的に Australis との互換性が改善された新機能が投入された場合、ウィジェットは廃止予定となる可能性がありますが、まだ議論が行われている最中なので、このブログで常に最新の情報を確認してください。
関連資料
- CustomizableUI.jsm – このモジュールは、アドオンからツールバーやそのウィジェットを直接操作したいときに使えるツールです。ドキュメントはまだ未完成ですので、最新の情報は直接 ソースコード を参照する必要があるかもしれません。ドキュメントの執筆に協力してくれた人にはボーナスポイントを差し上げます (^^
- Australis とアドオンの互換性 (草稿) – 今のところ互換性に関するメモの寄せ集めに過ぎません。このドキュメントもまだ未完成ですので、今後も変更が入ります。ここでも協力者募集中です (^^
記事のタイトルにあるように、これはまだパート 1 です。アドオン開発者の皆さんが遭遇した互換性問題について詳しい情報が入り次第、新しい記事を公開します。パート 2 はおそらくタブについて取り上げます。Australis との互換性について何か気付いたことがあればコメント欄でお知らせください。
Firefox 26 アドオン互換性情報
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 26 の翻訳です]
Firefox 26 が 12 月 10 日 [日本時間同日深夜] リリース となります。Firefox 26 の変更点でアドオンの互換性に影響を及ぼす可能性のあるものを以下にまとめました。Firefox 26 for Developers により詳しい情報が載っていますので、こちらも併せてご覧ください。
一般
_firstTabs
の設定値が、状態オブジェクトへ付加される代わりに、引数としてrestoreWindow()
へ渡されるようになりました。この変更によって_firstTabs
は役に立たなくなっており、代わりにrestoreWindow()
関数を使ってください。- コンテンツ領域設定画面の「タブ」カテゴリが「一般」カテゴリへ統合されました。筆者 [Jorge Villalobos] はこのバグのおかげで
about:preferences
の存在を思い出しました。このバグで明らかになったように、この機能はまだ開発中です。 OS.File.Info.prototype.creationDate
が廃止予定となりました。
XPCOM
- パネルのバックエンドとして
nsIDownloadManager
の代わりに JavaScript API が使われるようになりました。nsIDownloadManager
はDownloads.jsm
に置き換えられました。この件に関する発表と議論は メーリングリスト で行われています。 Components.lookupMethod
が削除されました。もはやこの関数を使う必要はありません。nsIAccessibleProvider
が削除されました。XBL バインディングからの参照も削除してください。nsIHistoryEntry
が削除され、nsISHEntry
に置き換えられました。- メモリ単体レポートが削除されました。これにより
nsIMemoryReporter
周りのインタフェースと実装が変更されています。 - Android 上で Firefox を開くたびにタブが複製される問題が修正されました。これにより Android 版 Firefox の
nsISessionStore
に変更が行われています。 nsStrictTransportSecurityService
のリファクタリングが行われました。nsIStrictTransportSecurityService
はnsISiteSecurityService
になりました。nsIContentPrefService
が廃止予定となりました。nsIContentPrefService2
への移行が推奨されています。
バイナリ
- 厳密なバージョンチェックのためにメンテナンスリリースのバイナリ互換性が失われる問題が報告されました。最近のある変更によって、マイナーバージョンの更新のたびにバイナリを再ビルドする必要が生じていたため、そうしたバイナリ同梱アドオンの互換性を改善する修正が行われました。
nsGenericHTMLElement
がnsIDOMHTMLElement
を実装するようになりました。これはバイナリ同梱アドオンにのみ影響する内部リファクタリングです。
DOM
document.getAnonymous*
が Web コンテンツから使用できなくなりました。ホワイトリストに含まれる XUL 内では引き続き使用できるはずです。XULElement
が Web コンテンツから使用できなくなりました。mozGetAsFile
が廃止予定となりました。この Canvas 関数は非推奨となりました。toBlob()
で代用してください。history[n]
が削除されました。これと併せて、Firefox 独自のクローム専用プロパティであったhistory.current
、history.next
、history.previous
がwindow.history
オブジェクトから削除されました。
新機能
nsIAppStartup
で、アプリが再起動されたかどうかが分かるようになりました。- プロモーションバナーにコンテンツを追加する JavaScript API が作成されました。この API は、アドオンが既定のホームページ上に簡単にコンテンツを表示できるようにするものです。詳しくは
Home.jsm
のドキュメントを参照してください。
この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが Firefox 26 で動かなくなった場合は、筆者の方でも調査したいと思います。
AMO に登録されているアドオンの 自動互換性テストと対応バージョンの更新 はまもなく行われますので、AMO に Firefox 25 対応のアドオンを登録している方は後日メールをチェックしてみてください。
Mozilla Add-on Builderで作成した拡張機能をローカライズ(多言語化)する方法について
現時点では Mozilla Add-on Builderでローカライズ(多言語化)した拡張機能を作成できません。
しかし、若干の手作業を付け加えることで Add-on Builderで作成した拡張機能をローカライズ(多言語化)できることが判りました。
ローカライズ(多言語化)に関する前提知識とローカライズ(多言語化)する方法についてまとめましたので拡張機能開発の参考にしていただけると嬉しいです。
「Add-on Builderで作成した拡張機能をローカライズ(多言語化)する方法について」
参考:
Add-on Builderでローカライズ(多言語化)に対応した拡張機能を開発できません
(続) Add-on Builderでローカライズ(多言語化)に対応した拡張機能を開発できません
Firefox 25 アドオン互換性情報
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 25 の翻訳です]
Firefox 25 が 10 月 29 日 [日本時間同日深夜] リリース となります。Firefox 25 の変更点でアドオンの互換性に影響を及ぼす可能性のあるものを以下にまとめました。Firefox 25 for Developers により詳しい情報が載っていますので、こちらも併せてご覧ください。
一般
- 「ページ内検索」バーの見た目が改良されました。これは検索バーの大幅な刷新の一環として行われたものです。あなたのアドオンがこのバインディングに依存している場合、今回そして今後の変更に注目すべきでしょう。新バージョンでは、検索バーがウィンドウレベルではなくコンテンツリア内に表示されるようになり (サイドバーを開いてみると違いが分かります)、将来的には ページ上部に移される 可能性もあります (一時 Aurora チャンネルへ投入されましたが、今は元に戻されています)。
getShortcutOrURI
内で非同期のgetCharsetForURI
が使われるようになりました。これによりgetShortcutOrURI
関数が非同期のgetShortcutOrURIAndPostData
に置き換えられました。またurlbarBindings.xml
内の_canonizeURL
関数も併せて非同期に変更されています。- バイナリアノテーション対応が廃止されました。
DOM
nsIDOM*
インタフェースがグローバル関数へ自動的に露呈されなくなりました。これにより、従来コンテンツへ露呈されていたいくつかのクローム専用インタフェースがコンテンツから使用できなくなりました。サイト互換性情報の記事 に削除されたインタフェースの一覧があります。keydown
でのpreventDefault
が後続のkeypress
をキャンセルするようになりました。これは少なくともひとつのアドオンに影響しています。- XBL1 シャドーツリー実装が修正されました。これにより XBL バックエンドに一連の変更が行われましたが、通常何ら影響はないはずです。一時的に 複雑なアドオンツールバーボタンが影響を受けた ものの既に修正されており、筆者 [Jorge Villalobos] の知る限り開発者が特に対応する必要はありません。
XPCOM
SessionStore
の初期化が整理されました。これはSessionStore.init()
を直接呼び出していない限りアドオンには影響しないはずです。推奨されませんが、あなたのアドオンが呼び出しを行っている場合は、バグのコメント 10 以降を参照してください。OpenSpecialDatabase
からprofile
データベースが削除されました。IDBTransaction
、IDBRequest
、IDBCursor
が WebIDL へ移動されました。これは Firefox 27 で完了予定となっている IndexedDB の XPCOM からの移転 の一環です。
新機能
- Windows 8 デスクトップテーマ向けに CSS メディアクエリが追加されました。このバグの成果として、テーマ作者やアドオン開発者の作業を楽にする
-moz-os-version
セレクタが実装されました。
この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが Firefox 25 で動かなくなった場合は、筆者の方でも調査したいと思います。
AMO に登録されているアドオンの 自動互換性テストと対応バージョンの更新 は数週間以内に行われますので (Mozilla Summit のため遅れます)、AMO に Firefox 24 対応のアドオンを登録している方は後日メールをチェックしてみてください。
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 対応のアドオンを登録している方は後日メールをチェックしてみてください。
最新の Firefox 24 ベータ版で nsIBrowserSearchEngine インタフェースに変更が入りました
[これは Mozilla Add-ons Blog の記事 nsIBrowserSearchEngine interface change in latest Firefox 24 beta の翻訳です]
Firefox 24 のアドオン互換性情報は現在準備中ですが、ある変更がベータサイクル中に投入され、このインタフェースを使用しているバイナリアドオンの安定性問題につながる可能性のあることから、特に重要なものとしてここで紹介します。
Bug 493051 で、nsIBrowserSearchEngine
インタフェース、具体的には addEngine
関数のシグネチャが変更されました。しかし、インタフェース UUID が同時に更新されませんでした。これは Bug 907893 で修正され、最新ベータ版には反映されています。つまり、あなたのアドオンがバイナリ XPCOM コンポーネントから nsIBrowserSearchEngine
を使っていて、初期ベータ版のいずれかを対象にビルドしている場合、最新ベータ版や最終リリース版では正しく動作しません。解決策は最新ベータ版を使ってそのコンポーネントを再ビルドすることです。
ベータサイクル中は互換性に影響を及ぼす変更は極力避けるようにしていますが、時折見過ごされる可能性もあります。私たちは、こうしたミスを問題となる前に発見できるよう、解析ツールの改善に努めています。