
Firefox 3の”Awesome”を実現した「Places」
Placesの基本アーキテクチャ
「Places」はFirefox 3で追加された、ブックマークと履歴を統合した新しいユーザインタフェースである。この新システムによって履歴とブックマークがシームレスに連携できるようになり、ロケーションバーからワンクリックでブックマークを登録したり、訪問頻度の高いページにアクセスしやすくする「よく見るページ」などの機能が利用できるようになった。
PlacesではデータをmozStorageインタフェースを利用してSQLiteデータベースに格納する。mozStorageインタフェースそのものは以前より拡張のためのデータの格納などに利用できたが、Placesのデータも同様の仕組みで管理される。したがって従来のbookmarks.htmlはSQLiteのデータベースに置き換えられ、検索や整列などを高速かつ柔軟に行うことができるようになった。
PlacesのアーキテクチャはMVC(Model-View-Controller)に則って図1のようにデザインされているという。FirefoxにはPlacesのための様々なビューが用意されており、ビューからはコントローラとなっているクエリシステムを通じてデータベースにクエリを発行する。クエリシステムはJavaScriptによって拡張機能などからも利用することができる。
Placesでは履歴とブックマークの他にも、ファビコンやタグ、LiveBookmark、注釈(拡張などから利用可能な、Web ページに間する様々な情報を格納するサービス)などのサービスが統合されている。したがってこれらの情報も全てSQLiteデータベースで管理される。
次回は、SQLiteの管理用ソフトウェアを用いてこのPlacesのデータベースの中身を閲覧・操作してみようと思う。