FluxMozilla関係の情報に特化したブログです。Blog(和訳)において、新しい拡張機能APIセットのWebExtensionsを正式に発表した。前記事で紹介したとおり、Blink互換のAPIが採用されている。発表によれば、WebExtensionsの名称には、アドオン開発をWeb開発に近づけたいというMozillaの思いが込められているらしい。挙動が標準仕様化されることで、同じコードが複数のブラウザ上で動作するとともに、複数のベンダーから幅広くドキュメントが提供される状態。Mozillaは、そうしたWeb開発の理想状態をアドオン開発においても実現することを目指す。Edge向けの拡張機能が、わずかな変更でWebExtensionとしてFirefox上で動作するとのこと。EdgeがサポートするFirefoxの拡張機能は、WebExtensionsベースのものを指すようだ。WebExtensionsには、Firefoxのマルチプロセス化(Electrolysis:e10s)に伴うアドオンの移行手段という側面もある。Wrappers)と呼ばれる仕組みを導入して、シングルプロセス時に似せた互換環境を用意している。43)でe10sが有効化されてから6~12か月を経過した時点で廃止される計画となっている。アドオンがe10sに対応する手段としては、WebExtensionsを利用するのが最も安全だ。Add-ons(AMO)での公開が想定される。この点について、上記発表は、WebExtensionsベースのアドオンに対するレビュー期間が短縮される見込みだとしている。timesを見ると、AMOの平均レビュー期間は延びる傾向にあり、最近はその期間がフル/アップデートともに10週にも及ぶ。これに対し、WebExtensionsベースのものであれば、フルレビューの期間を5日に、アップデートレビューの期間を1、2日にできるという。WebExtensionsは、デスクトップ版よりも遅れるものの、Android版Firefoxでもサポートされる。旧APIの廃止に向けた動きと互換性を維持するための方策MozillaがWebExtensionsを導入する背景には、旧来型のアドオンの仕組みがFirefox開発の足枷になっているという実情がある。model)と呼んでいるが、こうしたモデルを維持したままでは、e10sやServoといった新技術の導入に支障をきたすばかりか、Firefoxの開発を遅らせ、クラッシュの原因ともなる。そこで、Mozillaは、今後12~18か月以内に、XUL/XPCOM/XBLを利用するアドオンを非推奨とする。SDKは開発が継続されるようだが、require(‘chrome’)に加えてXUL要素へのアクセスを提供する一部の低レベルAPIもサポートの対象から外れるようだ。これらの措置により、事実上、既存のすべてのアドオンに何らかの影響が及ぶことになる。Blogによれば、以下の有名なアドオンを念頭に置いてWebExtensionsのAPIを拡充していく。Restorerこのことからもわかるように、WebExtensionsはChromeが提供する拡張機能APIの単なるクローンではない。開発コミュニティからのフィードバック次第で各種のAPIが追加されることもあり得る。MozillaWikiを見ると、アドオンがFirefoxのUIを操作しやすいように、Firefoxのフロントエンドコードに多数の「拡張ポイント」を含めるという話も出ている。いえ、既存のアドオンがほぼ何でもできたことに比べると、WebExtensionsが制限的な機能しか提供できない点は否めない。高機能なアドオン向けに特別の権限("superpowers")を付与する仕組みが、過渡的にせよ必要だろう。Maone氏と協力して、そのような特別の権限を付与する仕組みを検討中である旨を明らかにしている。NoScript参照)。Discourseによれば、native.jsはWebExtensionsベースのアドオンのパッケージ内に含まれ、起動時にchrome権限で実行される。APIを利用できるというわけだ。特別な権限を要求するだけに、AMOのレビューも慎重さが欠かせない。通常よりもレビューに日数を要することになるだろう。加えて、アドオン作者はFirefoxの内部実装における変更を自ら把握して、アドオンの互換性の維持に努めねばならない。容易に予想できることだが、Mozillaの上記発表は大きな反響を巻き起こした。本記事執筆時点で、発表記事には140件を超えるコメントが付いているが、大半が否定的な反応だ。Ideas)でさえ、WebExtensionsの採用自体をとりやめるか、Firefoxをフォークせよとの意見が上位を占めるありさまだ。アドオン作者からの反応も厳しいものがある。APIがどれほど整備されても、手間や時間を考えれば新APIへの移行は進まないだろうと述べている。Finke氏は、今回の発表を受けてすべてのアドオンの開発を中止した。DownThemAll!の作者の一人(匿名)も、今回の発表はただただ悲しい、古い親友のFirefoxが死にそうだと知ったときのようだ、と述べている。MozillaがWebExtensionsを撤回することはおそらくないだろうが、開発コミュニティからのフィードバックを受けて、XUL/XPCOM/XBLを利用するアドオンを非推奨とする時期が後ろにずれる可能性はありそうだ。(17/02/12追記)本記事執筆後に動きがあり、本文の内容は最新ではない。Fluxを参照してほしい。はてなブログProMozilla関係の情報に特化したブログです。ZoneMoz-Fxりんごが好きなのでぃすとりかごとなり。@abp_jpUnreviewednorah'#Firefox更新情報Wikiブログ日々のつぶやきスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。