スライド

プログラムの構造

タブブラウザ拡張は、Mozillaのタブブラウジング機能の実装と同様、「tabbrowserウィジェットの拡張」と「Webブラウザの拡張」という二つの層(レイヤ)から構成されています。

XULのtabbrowserウィジェットと、その拡張

MultiZillaが「既存のXULの機能を利用してタブブラウザを作る」という形でMozillaのタブブラウザ化を進めていたのに対し、Mozilla0.9.5以降でMozilla本体に実装されたタブブラウジング機能は、基本的に、XULの一つのウィジェット(GUIの部品)として「タブブラウザ」を実装するというアプローチを取っています。Navigatorのコードに大きな手を加えることなくタブブラウザの機能を加えるという意味で、これは有効な方法と言えます。

この「tabbrowserウィジェット」はタブブラウザに最低限必要ないくつかの機能を備えたものですが、その実体はXBLで実装された「小型のXULアプリケーション」で、tabbroxウィジェットとbrowserウィジェットの組み合わせ、そして、JavaScriptで記述されたメソッド群によって構成されています。

タブブラウザ拡張の第一のレイヤは、このアプローチに倣って、tabbrowserウィジェットそのものを拡張することで、他の部分の動作に影響を与えることなくタブブラウジング機能を強化するものです。このアプリの主要な機能のほとんどはこうして実装されています。

これらの機能は全て、tabbrowserウィジェットそのものの機能として実装しています。原理的には、Navigator/Firebird以外の別のXULアプリからも機能をそのまま使うことも可能です。