このサイトの記事更新は2019年11月に終了されました。過去記事アーカイブを公開しています。
投稿されたすべてのトピック
Firefox 40 サイト互換性情報
Firefox 40 Developer Edition (Aurora) が 5 月 15 日にリリースされました。いつも通りサイト互換性情報を投稿していますので、Web 開発者の皆さんは一読されることをお勧めします。もし一覧に漏れや間違いがあるときは下のコメント欄でお知らせください。
なお、Firefox 39 Beta のリリースは、本来の予定にない 38.0.5 リリースの影響で 5 月 26 日に延期となっています。
アドオン互換性最新情報: Firefox 38 と 38.0.5
[これは Mozilla Add-ons Blog の記事 Compatibility update: Firefox 38 and 38.0.5 の翻訳です]
Firefox 38 アドオン互換性 に関する投稿の補足として、書きそびれた重要な変更について説明したいと思います。それは コンテンツ内設定 です。設定ウィンドウは廃止され、代わりに主要な設定 UI が新しいタブで開かれるようになりました。この変更は設定ウィンドウにオーバーレイしているアドオンにのみ影響しますが、その数は非常に限定的でしょう。
また、6 月 2 日に非定例リリースが予定されていて、そのバージョン番号は 38.0.5 となります。これは リリースノート にあるように 38 にいくつかの機能を加えたものとなります。これによって 38 と互換性のある拡張機能に影響が及ぶことはないはずですが、完全テーマのバージョン不一致を引き起こす可能性があります。38.0.5 は既に ベータチャンネル で公開されていますので、このベータ版を使ってあなたのアドオンをテストすることをお勧めします。
Firefox 39 アドオン互換性情報
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 39 の翻訳です]
Firefox 39 が 6 月 30 日 [日本時間同日深夜] リリース となります。Firefox 39 の変更点でアドオンの互換性に影響を及ぼす可能性のあるものを以下にまとめました。Firefox 39 for Developers により詳しい情報が載っていますので、こちらも併せてご覧ください。
一般
- Lightweight Theme Manager のために組み込みテーマのリストを変更する機能が追加されました。バグの コメント #39 に書かれている通り、
lightweightThemes.usedThemes
、lightweightThemes.isThemeSelected
各設定を使用しているアドオンが影響を受けます。 String.prototype.{search,match,replace}
の非標準flag
引数について、コンソールに警告が追加されました。これは廃止予定の警告に過ぎませんが、最後のflag
引数はいずれ削除されます。-remote
オプションが廃止されました。これにより-remote
コマンドライン引数が削除されました。より頻繁に使われる-no-remote
とは別物です。__noSuchMethod__
について警告が表示されるようになりました。このプロパティはまだ使用できますが、廃止予定となっていますので、バグのコメントで提案されている通り代替手段を検討してください。
XPCOM
XMLHttpRequest
のsendAsBinary
メソッドが削除されました。nsIDocumentLoaderFactory
とnsIURIContentListener
に変更が行われ、MIME タイプを XPCOM 文字列として取るようになりました。nsIClassInfo::getHelperForLanguage
が JavaScript 専用になりました。これによりgetHelperForLanguage
メソッドが削除されています。
新機能
- コンテンツページがクロームと通信するためのシンプルな仕組みが追加されました。Mossop のブログ と MDN に分かりやすい説明があります。
この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが Firefox 39 で動かなくなった場合は、筆者の方でも調査したいと思います。
AMO に登録されているアドオンの 自動互換性テストと対応バージョンの更新 は近日中に行われますので、AMO に Firefox 38 対応のアドオンを登録している方は後日メールをチェックしてみてください。
拡張機能のバイナリコンポーネント対応が廃止されます
[これは Mozilla Add-ons Blog の記事 Dropping support for binary components in extensions の翻訳です]
今年 8 月リリース 予定の Firefox 40 以降、拡張機能のバイナリ XPCOM 対応が廃止されます。
バイナリ XPCOM は古く相当不安定な技術です。バイナリライブラリを独自のアドオンへ統合し、場合によっては Firefox の内部機構を活用するために (そのためどうしても不安定になります)、少数のアドオン開発者によって使われてきました。より優れた技術が開発され XPCOM を置き換えられるようになったため、Mozilla では開発者に移行を促してきました。以下は 元のニュースグループ記事 からの引用です。
ネイティブバイナリを使う必要のある拡張機能作者には、アドオン SDK の
system/child_process
パイプメカニズムを使ってそれを実現するよう推奨します。これで物足りない場合、共有ライブラリを使用できる JS-ctypes が代替技術となるでしょう。ただ、この API はなおさら不安定で、安全でないコードをも簡単に書けてしまいます。
バイナリ XPCOM に依存している開発者は、互換性の問題を回避するため、できる限り早くコードを更新してください。この件に関する質問やコメントがある場合は mozilla.dev.extensions ニュースグループへ投稿してください。
要素をドラッグ、コンソールの履歴など – Firefox Developer Edition 39
原文: Drag Elements, Console History, and more – Firefox Developer Edition 39 on April 14, 2015 by J. Ryan Stinnett
かなり多くの大きな新機能、改良、重要な修正を、Firefox Developer Edition 39 に投入しました。Firefox Developer Edition または Nightly ビルドを更新して、これらをお試しください!
インスペクタ
インスペクタで、要素をドラッグ・アンド・ドロップで移動できるようになりました。要素をクリック・アンド・ホールドすると、好みの場所にドラッグできます。この機能は、Mahdi Dibaiee の貢献によって追加されました。
Firefox 33 で、CSS アニメーションの 3 次ベジェ曲線を編集できるツールチップを、ルールビューに追加しました。Developer Edition 39 では外見をクリーンアップしただけでなく、その場で試すことが可能な、標準的な曲線を多数追加することにより UX が大幅に向上しました。この改良は、新たな貢献者である John Giannakos によって追加されました。
Developer Edition 37 で登場した CSS アニメーションパネルに、タイムマシンを追加しました。アニメーションの早戻し、早送り、特定の位置への移動が可能になります。
コンソール
従来は開発ツールのコンソールを閉じると、コンソールの履歴が失われていました。本バージョンで、履歴がセッションをまたいで維持されるようになりました。ツールボックスを開きなおした後、別のタブ、あるいは Firefox を再起動した後でも、最近実行したコマンドの履歴にアクセスできます。さらに、コマンド履歴をリセットする clearHistory
コンソールコマンドを追加しました。
最後にコンソールで評価された式の結果のエイリアスとして $_
を追加しました。例えば結果を変数に保存しない式を評価した場合に、直前の結果をすばやく取り出すことができます。
疑似的な配列状のオブジェクトを、配列であるかのようにコンソールへ出力するようになりました。この機能により疑似的な配列状のオブジェクトを、配列と同様に推論や調査することができます。この機能は、Johan K. Jensen の貢献によって追加されました。
WebIDE とモバイル
Firefox OS の Wi-Fi デバッグ機能を搭載しました。Wi-Fi デバッグにより、USB ケーブルに代わりローカル Wi-Fi ネットワークを通じて Firefox OS デバイスと WebIDE を接続できます。この機能について詳しく説明する記事を、後ほど投稿する予定です。
WebIDE で、Cordova ベースのプロジェクトをサポートしました。Cordova を使用してモバイルアプリのプロジェクトを進めている場合は、WebIDE で追加の設定を行うことなく、WebIDE がサポートするデバイス向けにプロジェクトをビルドできます。
その他の変更点
- インスペクタのマークアップビューで、属性が変更された場合に要素全体ではなく属性のみハイライトするようになりました。
- Canvas デバッガで、アニメーションのための setTimeout をサポートしました。
- インラインボックスモデルのハイライト機能。
- キーボードショートカット Cmd-Opt-Shit-I / Ctrl-Alt-Shift-I でブラウザツールボックスを開くことができます。
- ネットワークモニタでリモートサーバの IP アドレスとポート番号を表示します。
- インスペクタで要素をハイライト表示しているとき、左矢印キーを使用して親要素、右矢印キーを使用して最初の子要素、または子要素がない場合は次の兄弟要素、または兄弟要素がない場合はツリーで次にある要素をハイライトするようになりました。この機能は特に、ある要素とその親要素がスクリーン上で同じ領域を占めているためにマウスだけではどちらかを選択することが困難なときに役立ちます。
すべての一覧は、Firefox 39 の開発サイクルで解決した 200 件のバグで確認してください。
このリリースで開発ツールに初めて貢献した、新たな開発者に感謝します:
- Anush
- Brandon Max
- Geoffroy Planquart
- Johan K. Jensen
- John Giannakos
- Mahdi Dibaiee
- Nounours Heureux
- Wickie Lee
- Willian Gustavo Veiga
フィードバック、バグ報告、機能の要望、あるいは質問がありますか? いつもどおり、ここでコメントを投稿する、UserVoice でアイデアを投稿・投票する、あるいは Twitter の @FirefoxDevTools でチームに連絡してください。
Firefox 39 サイト互換性情報
Firefox 38 Beta と Firefox 39 Developer Edition (Aurora) が 4 月 2 日と 3 日にリリースされました。それぞれのサイト互換性情報を投稿していますので、Web 開発者の皆さんは一読されることをお勧めします。もし一覧に漏れや間違いがあるときは、下のコメント欄でお知らせください。
今回記事の草稿は早めに出していたのですが、確認と告知が遅くなってしまいました。申し訳ありません…
Firefox 38 アドオン互換性情報
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 38 の翻訳です]
Firefox 38 が 5 月 12 日 [日本時間同日深夜] リリース となります。Firefox 38 の変更点でアドオンの互換性に影響を及ぼす可能性のあるものを以下にまとめました。Firefox 38 for Developers により詳しい情報が載っていますので、こちらも併せてご覧ください。
更新: Firefox 38 と 38.0.5 に関する補足記事 も併せて参照してください。
一般
NetUtil.jsm
API が刷新されました。newChannel2
とasyncFetch2
が廃止予定となり、newChannel
とasyncFetch
は不要な引数を簡単に除外できるようoptions
オブジェクトを取るようになりました。詳しくは 更新されたnewChannel
のドキュメント を参照してください。promptForSaveToFile
がpromptForSaveToFileAsync
に置き換えられる形で削除されました。
XPCOM
nsIProtocolProxyFilter.applyFilter()
が URI の代わりにチャンネルもしくはリクエストを取るようになりました。これによりネットワークプロキシに関する様々なインタフェースに変更が行われています。asyncResolve
とasyncResolve2
が修正され、チャンネルと URI のどちらも受け入れるようになりました。一部アドオンへの影響を回避するため、このような追加修正が行われました。
SendCompositionEvent()
とDispatchEvent()
がmIsSynthesizedForTests
の設定なしにイベントを発行できるようになりました。これにより、nsICompositionStringSynthesizer
に加え、nsIDOMWindowUtils
のsendCompositionEvent
、createCompositionStringSynthesizer
両メソッドが削除されました。一方でnsITextInputProcessor
が導入されました。nsIHttpActivityObserver
が HTTP アクティビティを適切に監視できていない問題が修正されました。一部の低レベル HTTP イベントが特定の状況で実行されていませんでしたが、今回のバージョンで修正されています。mozIndexedDB
が再び削除されました。
新機能
- ノードを引数として渡さない
nsIContentPolicy
の派生版が導入されました。nsIContentPolicy
の e10s 対応版 がnsISimpleContentPolicy
という名前で実装されました。これはコンテンツノードの代わりにブラウザ要素を渡します。今のところ、この 新しいインタフェースファイル 内の説明が最も詳しいドキュメントとなっています。 chrome.manifest
ファイル内のリソースプロトコルマッピングを動的に読み込めるようになりました.resource:
URL をブートストラップ型拡張機能内のchrome.manifest
を通じて宣言できるようになりました。
この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが Firefox 38 で動かなくなった場合は、筆者の方でも調査したいと思います。
AMO に登録されているアドオンの 自動互換性テストと対応バージョンの更新 はおそらく来月上旬に行われますので、AMO に Firefox 37 対応のアドオンを登録している方は後日メールをチェックしてみてください。
Firefox 38 サイト互換性情報
Firefox 37 Beta と Firefox 38 Developer Edition (Aurora) がリリースされました。それぞれのサイト互換性情報を投稿していますので、Web 開発者の皆さんは一読されることをお勧めします。もし一覧に漏れや間違いがあるときは、下のコメント欄でお知らせください。なお、Firefox 37、38 の最終版 リリース日 は通常のサイクルより 1 週間早くなっていますので注意してください。
Firefox 37 アドオン互換性情報
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 37 の翻訳です]
Firefox 37 が 3 月 31 日 [日本時間同日深夜] リリース となります。Firefox 37 の変更点でアドオンの互換性に影響を及ぼす可能性のあるものを以下にまとめました。Firefox 37 for Developers により詳しい情報が載っていますので、こちらも併せてご覧ください。
一般
String.prototype.quote
が削除されました。- プラグインリソースを読み込むための
nsIContentPolicy.shouldProcess
が実装されました。このためコンテンツポリシー実装の関数呼び出しが増加することが見込まれます。不要な呼び出しはなるべく早めに除外すべきでしょう。 - Android 版 Firefox で
Downloads.jsm
への変換が行われました。
XPCOM
- デスクトップ版 Firefox から
nsIDownloadManagerUI
が削除されました。 nsISiteSecurityService.shouldIgnoreHeaders
とその実装が削除されました。
新機能
chrome
URI で読み込まれた JavaScript のソースが参照可能となりました。この変更により、about:
ページや一部アドオン UI と同様に、chrome:
URL 由来のコンテンツ向けスクリプトもデバッガに表示されるようになります。
この一覧に載っていない変更点や間違いを見つけたらコメント欄でお知らせください。もしあなたのアドオンが Firefox 37 で動かなくなった場合は、筆者の方でも調査したいと思います。
AMO に登録されているアドオンの 自動互換性テストと対応バージョンの更新 は 3 月中旬に行われますので、AMO に Firefox 36 対応のアドオンを登録している方は後日メールをチェックしてみてください。
より安全なアドオン体験を提供するため、拡張機能に署名を導入します
[これは Mozilla Add-ons Blog の記事 Introducing Extension Signing: A Safer Add-on Experience の翻訳です]
今年はアドオンの開発に関していくつか大きな変更が予定されています。いずれも安全性やパフォーマンスを向上させるために不可欠であると私たちが考えているものですが、ほとんどのアドオンに対応してもらう作業が必要となります。ここではまず、先行して実装される拡張機能のデジタル署名について説明し、その他の変更については後日別の記事で取り上げます。
Mozilla のアドオンプラットフォームは伝統的に開発者にとって非常にオープンなものとなっています。拡張機能を使えば Firefox の機能を革新的な方法で根本的に変えてしまえるだけでなく、Mozilla のアドオンサイトである AMO への登録も必須ではないため、開発者は自分たちのサイトでも自由にアドオンを配布することができます。これによって開発者は大きな権限と柔軟性を得られていますが、一方で Firefox ユーザに悪さをする人たちにも自由を与えすぎてしまっているのが現実です。
Web ページに広告を挿入したり、ソーシャルメディアサイトに悪質なスクリプトを埋め込んだりするような拡張機能と同じように、ユーザの同意なしにホームページや検索エンジンの設定を変えてしまう拡張機能が広く出回っています。そうした事態を食い止めるため、Mozilla ではすべてのアドオン作者が従うべき一連の アドオンガイドライン を策定するとともに、ブロックリスト機能 (行儀の悪い拡張機能の強制的な無効化) を通じた取り締まりを行っています。しかし、ガイドラインに違反している拡張機能のほとんどは AMO 以外で配布されているため、それらをすべて追跡することはますます困難になってきています。さらに、悪意を持った開発者は拡張機能の検出やブロックを回避する方法を生み出しており、対策は難しくなる一方です。
Mozilla はアドオンのエコシステムに対する責任を負っており、悪さをするアドオンによってユーザが不快な思いをするのを黙って見過ごすわけにはいきません。簡単な解決策は、Google が Chrome 向け拡張機能に課しているのと同じように、すべての開発者に AMO を通じた拡張機能の配布を義務付けることでしょう。しかし、インストールを Mozilla の配布チャンネルに限定することは余計な制約であると私たちは考えます。こうしたバランスを保つため、AMO を唯一のアドオン配布チャンネルとして強要せずにアドオンのエコシステム管理を強化できる、拡張機能の署名という解決策にたどり着きました。
その仕組みは次のようになります。
- AMO に登録され、審査を通った拡張機能は、自動的に署名された上で配布されます。現在公開中の拡張機能についても、審査済みの最新版についてはすべて自動的に署名を行います。
- AMO で配布されていない拡張機能についても、署名を行うために AMO へ登録してもらう必要があります。開発者にはアカウントを作成して拡張機能の情報を提供してもらいますが、その内容が公開されることはありません。それらのファイルは自動審査プロセスに掛けられ、すべてのチェックをパスしたら署名付きパッケージとして出力されます。自動テストをパスしなかった場合、開発者は審査チームによる目視審査を申請することもできます。本審査は、以下で詳しく説明しますが、AMO 非登録のアドオンでも申請可能です。
- 一般には公開されず、組織の内部ネットワークのみで配布される拡張機能に関しては、3 つ目の選択肢があります。これについては近い将来詳しく説明できるかと思います。
- 2 リリースサイクル (計 12 週間) の移行期間を設けます。その間は未署名の拡張機能を Firefox にインストールしようとしても単に警告が表示されるだけです。
- 移行期間後は、未署名の拡張機能を Firefox のリリース版やベータ版にインストールすることは不可能となります。これを無効化する設定やコマンドラインオプションは一切提供されません。
- 未署名拡張機能のインストールは、Nightly と Developer Edition、それに加えて主に開発者が拡張機能をテストできるように公開されるリリース版とベータ版の特別なノーブランド版では引き続き可能となります。
Add-ons SDK でビルドされた拡張機能を含め、すべての Firefox 向け拡張機能がこの変更による影響を受けます。テーマやスペルチェック辞書など その他の種類のアドオン に署名は必要なく、これまで通りインストール、使用できます。署名の検証は Firefox に限られ、現時点でこの機能を Thunderbird や SeaMonkey に実装する予定はありません。
開発者への影響
AMO にアドオンを登録している開発者には今後、Developer Edition、Nightly あるいはいずれかのノーブランド版でテストを行ってもらう必要があります。審査通過時に拡張機能が自動的に署名されることを除けば、登録、審査プロセスの他の部分に変更はありません。
その他の開発者にとって、これはより大きな変更となるでしょう。開発版を使ったテストに関しては、AMO アドオン開発者と同じ選択肢があります。一方でリリース版については、署名のために AMO へ拡張機能ファイルをアップロードするという必須手順が導入されます。多くの場合、この手順は自動化されると思いますが、拡張機能がテストをパスしなかった場合、目視によるコード審査を申請する選択肢が与えられます。
(Web 上の通常のインストール手順ではなくアプリケーションのインストーラを使って) 外部から拡張機能をインストールしている開発者の場合、審査の敷居はより高くなり、(AMO のコンテンツ制限以外は) AMO 上の本審査済みアドオンと同等になるでしょう。こうした手法は、Firefox 向けに独自の拡張機能を提供しているウイルス対策ソフトなど、拡張機能を同梱したアプリケーションによって広く採用されています。
デジタル署名によってもたらされる重要な変更点のひとつは、拡張機能インストール体験の刷新と改善です。本審査基準を満たした拡張機能は、AMO に登録されているかどうかにかかわらず、インストール手順がよりスムーズで分かりやすくなります。この仕組みの初期モックアップを以下に示します。
今のところ、遅くとも今年の第 2 四半期にあたる移行期間中にはこのシステムを実現させる予定です。そのため、拡張機能の未署名警告はおそらく Firefox 39 で実装されます。
ディスカッション
この記事 [原文] へのコメントを歓迎しますが、ここで説明した計画のメリットについて詳しく議論したければ Add-ons User Experience メーリングリスト に参加してください。プロジェクトの関係者は常に目を通していて、何か懸念点について書かれた投稿があれば返信します。