ニュース

Mozilla、「Firefox」のアドオンを「Google Chrome」互換の“WebExtensions”へ

“XUL”“XPCOM”といった技術を利用した従来のアドオンの開発手法は段階的に廃止

公式ブログ“Mozilla Add-ons Blog”

 Mozillaは21日、公式ブログ“Mozilla Add-ons Blog”で、「Firefox」のアドオンを新しいブラウザー拡張API“WebExtensions”ベースのものへ置き換えていく方針を明らかにした。この施策はマルチプロセス化とサンドボックス機能をはじめとする「Firefox」の近代化のために必要なものだが、一方でこれまで「Firefox」の人気を支えてきた高い拡張性が失われ、根強い人気を集める旧来の拡張機能がサポートされなくなることが懸念されている。

 “WebExtensions”は、すでに広く使われている“Blink”(「Google Chrome」「Opera」などが採用しているブラウザーエンジン)のAPIと高い互換性があり、わずかな変更を加えるだけで移植が行えるという。「Microsoft Edge」で将来的にサポートされる予定の拡張機能も“Blink”互換になるとみられており、これまでWebブラウザー間で互換性のなかった拡張機能の標準化が期待できる。“WebExtensions”は現在、“Developer Edition”として公開されている「Firefox 42」でプレビュー提供されている。

 一方で、“XUL”“XPCOM”といった技術を利用した従来のアドオンの開発手法は段階的に廃止される。

 “XUL”や“XPCOM”を利用したアドオンの開発手法は“寛容なアドオンモデル”と呼ばれており、「Firefox」の内部実装へアクセスし、ユーザーインターフェイスをまるごと“改造”してしまえるほどの高い柔軟性をもつ。たとえば「Tree Style Tab」や「Tab Mix Plus」、「FireGestures」、「Classic theme restorer」といった人気の拡張機能は、どれも“寛容なアドオンモデル”で開発されている。

 しかし、Webブラウザーとアドオンの関係が密接な“寛容なアドオンモデル”には欠点も多い。たとえば、アドオンが「Firefox」の内部構造に依存しすぎており、「Firefox」側のちょっとした変更がアドオンの非互換性問題や、「Firefox」のクラッシュ、パフォーマンス低下を引き起こしてしまうことは珍しくない。

 また、「Firefox」に新技術を導入する際の足枷にもなっている。とくに、「Firefox」をマルチプロセス化する“Electrolysis(e10s)”では、“e10s”未対応の古いアドオンを“CPOWs(Cross-Process Object Wrappers)”という互換レイヤーを介して実行する必要があり、「Firefox」の動作速度を著しく低下させてしまうという。

 Mozillaは「Firefox 43」(11月15日に正式リリース予定)で“e10s”を初期状態で有効化する計画を立てており、アドオンの“e10s”対応を推奨している(“WebExtensions”は”e10s”に対応)。古いアドオンを動作させるための“CPOWs”はあくまでもアドオンの“e10s”対応が完了するまでの暫定的な仕組みであり、“e10s”がリリースチャンネルで有効化されて半年後に廃止される予定とのこと。