Places
This document describes the implementation of the Firefox Places component.
It is a robust system to manage History and Bookmarks through a database on the backend side and a model-view-controller system that connects frontend UI user manipulation.
History and Bookmarks
In Firefox 2, History and Bookmarks used to be kept into separate databases in the Resource Description Framework format (RDF format).
However, Firefox 3 implemented the Places system. It has been done due to multiple reasons, such as:
Performance: certain search or maintenance operations were very slow
Reliability: the filesystem facing side of RDF was not so robust, often causing corruption or unexpected states
Flexibility: being able to cross data allows for interesting features, like the Awesome Bar
Maintainability: the future of RDF was unclear, while SQLite is actively maintained and used by a large number of applications
Where to Start
For the high-level, non-technical summary of how History and Bookmarks works, read Nontechnical Overview. For more specific, technical details of implementation, read Architecture Overview.