» アドオン開発

Firefox 28 アドオン互換性情報

[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 28 の翻訳です]

Firefox 28 が 3 月 18 日 [日本時間同日深夜] リリース となります。Firefox 28 の変更点でアドオンの互換性に影響を及ぼす可能性のあるものを以下にまとめました。Firefox 28 for Developers により詳しい情報が載っていますので、こちらも併せてご覧ください。

一般

XPCOM

新機能

この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが 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 により詳しい情報が載っていますので、こちらも併せてご覧ください。

一般

XPCOM

  • JavaScript シンボルのエクスポートが廃止されました。JSAPI は拡張機能から使用できなくなりました。実際これによる影響を受けるのは非常に特殊なバイナリ同梱アドオンに限られるはずです。いずれにしても拡張機能の中で 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デスクトップ環境への移行方法

http://backy0175.at.webry.info/201401/article_3.html

【残念なお知らせ】 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月でサービスを終了します

http://backy0175.at.webry.info/201312/article_7.html

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-paneltoolbar のいずれかです。この 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 により詳しい情報が載っていますので、こちらも併せてご覧ください。

一般

XPCOM

バイナリ

DOM

新機能

この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが 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 により詳しい情報が載っていますので、こちらも併せてご覧ください。

一般

DOM

XPCOM

新機能

この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが 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

XPCOM

新機能

この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが 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 を使っていて、初期ベータ版のいずれかを対象にビルドしている場合、最新ベータ版や最終リリース版では正しく動作しません。解決策は最新ベータ版を使ってそのコンポーネントを再ビルドすることです。

ベータサイクル中は互換性に影響を及ぼす変更は極力避けるようにしていますが、時折見過ごされる可能性もあります。私たちは、こうしたミスを問題となる前に発見できるよう、解析ツールの改善に努めています。