Firefox web browser - Faster, more secure & customizable

Firefoxエクステンションの開発者やXPCOMコンポーネントの開発者には面倒なことだが、Firefoxユーザには嬉しい変更が近いうちにFirefoxのナイトリービルド版へ実施されることになる。これはエクステンションにおけるコンポーネントの扱いのいくつかを変更するというもので、エクステンション開発者やXPCOM開発者は変化に追随する必要がある。どういった変更が実施されるかがMultiple breaking changes are coming for components in extensions « Mozilla Add-ons Blogで報告されている。

具体的には次の2つの変更が実施される。

XPCOMコンポーネント登録方法の変更

現在の実装ではすべてのバイナリとJavaScriptコンポーネントファイルを読み込んだうえで、それらに自ら登録を実施するように処理を依頼している。これは時間がかかる上に、アプリケーションの再起動が必要になるという問題がある。今後はchrome.manifestマニフェストファイルに登録情報を記載しておき、これを使うことで処理を完了させるようにする。シンプルでかつ高速。ただし、登録時に読み込みを実施しなくなるため、動作しない可能性があるコンポーネントまで登録できてしまうという課題もある。

通知ポイントの変更

Firefoxにはいくつかのノティフィケーションポイントが用意されている。コンポーネントが起動時に利用するポイントにはxpcom-startup、app-startup、profile-after-changeなどがあり、多くのケースでprofile-after-changeが適切なものとなっている。今後はxpcom-startupとapp-startupは使えないようにする見通し。

これら変更でなにが変わるかだが、エクステンションをインストールしたり、アンインストール、無効化、有効化したときにFirefoxを再起動する必要がなくなる。Firefoxはエクステンションの追加や削除で、基本的にFirefoxそのものの再起動を必要とする。タブやウィンドウは保存されるが、時間がかかるうえにユーザエクスペリエンスの中断がもたらされるため、あまり気分のいいものではない。

上記の変更は、Firefoxの再起動を必要とせずにエクステンションのインストールやアンインストールを可能にする。Extension Manager:Future Work - MozillaWikiにまとまっているが、今後はさらにエクステンション間の依存関係機能の強化なども実現される見通し。エクステンションのインストールと再起動不要はChromeで実現されており、将来のバージョンのFirefoxで同様の機能が実現されることになるとみられる。