Places: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
Places is a new system for storing bookmarks, history, and other information about pages. It is currently enabled in trunk builds, and will debut in Firefox 3. This document covers the design and user-interface of Places. Developers should read the [http://developer.mozilla.org/en/docs/Places developer documentation].
Places is a system for storing bookmarks, history, and other information about the Web. It is currently enabled in trunk builds, and debuted in Firefox 3. This document covers the design and user-interface of Places. Extension developers should read the [http://developer.mozilla.org/en/docs/Places developer documentation].


Status: History-on-Places was enabled on the trunk in January 2007, and is in Gran Paradiso Alpha 2. Bookmarks-on-Places was enabled in May 2007, and is in Gran Paradiso Alpha 5.
Status:
* History-on-Places was enabled on the trunk in January 2007, first released in Gran Paradiso Alpha 2.
* Bookmarks-on-Places was enabled in May 2007, first released in Gran Paradiso Alpha 5.


Places discussion and communication occurs in the [news://news.mozilla.org/mozilla.dev.apps.firefox mozilla.dev.apps.firefox] newsgroup and on this wiki.
Discussion and communication:
* [news://news.mozilla.org/mozilla.dev.apps.firefox mozilla.dev.apps.firefox newsgroup]
* [irc://irc.mozilla.org/#places #places] on irc.mozilla.org
   
   
= Goals & Objectives =
= Goals & Objectives =
Line 20: Line 24:
= Overview =
= Overview =


Implement new back ends for Bookmarks and History using the mozStorage system. Develop newer, more usable front end components to display results, emphasizing simple search and categorization.  
Implemented new back ends for Bookmarks and History using the mozStorage wrapper for SQLite. Developed newer, more usable front-end components to display results, emphasizing simple search and categorization.


== Background ==
== Background ==
Line 35: Line 39:
== Functional Requirements ==
== Functional Requirements ==


The requirements for Places in Firefox 3 are detailed in the [[Firefox3/Product_Requirements_Document#Places|Firefox 3 PRD]]
The original requirements for Places in Firefox 3 are detailed in the [[Firefox3/Product_Requirements_Document#Places|Firefox 3 PRD]]


= Design =
= Design =
Line 54: Line 58:


More design information is on the [http://developer.mozilla.org/en/docs/Places Places developer wiki].
More design information is on the [http://developer.mozilla.org/en/docs/Places Places developer wiki].
== Special Containers ==
XXXdietrich - move to developer wiki, replace with an design page for extensibility
* [[Places:Bookmarks Containers]]
* [[Places:Live Bookmarks]]
* [[Places:File System Container]]


= Implementation =
= Implementation =


Places is currently enabled on the "trunk" build of Firefox (aka Firefox 3 aka Minefield aka Gran Paradiso), and powers History and Bookmarks, as well as providing plumbing for Livemarks, Annotations and Microsummaries.
Places is currently enabled for Firefox 3 and greater, powering History and Bookmarks, as well as providing plumbing for Livemarks, Annotations and Microsummaries and the Awesomebar.
 
== Builds ==
 
Trunk builds are considered unstable and are recommended only for developers and those testers who like to live dangerously.
 
Please [https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox&component=Places file bugs] in Bugzilla.


== Code Location ==
== Code Location ==


<pre>mozilla/browser/components/places/</pre> for the front-end, <pre>mozilla/toolkit/components/places/</pre> for the back-end.
* Firefox front-end: [http://mxr.mozilla.org/mozilla-central/source/browser/components/places/ mozilla/browser/components/places/]
* Toolkit backend: [http://mxr.mozilla.org/mozilla-central/source/toolkit/components/places/ mozilla/toolkit/components/places/]


== Team ==
== Team ==
Line 111: Line 102:
* [http://developer.mozilla.org/en/docs/Places:Favicon_Service Places: Favicon Service]
* [http://developer.mozilla.org/en/docs/Places:Favicon_Service Places: Favicon Service]
* [http://developer.mozilla.org/en/docs/Places:Tagging_Service Places: Tagging Service]
* [http://developer.mozilla.org/en/docs/Places:Tagging_Service Places: Tagging Service]
== Special Containers ==
XXXdietrich - move to developer wiki, replace with an design page for extensibility
* [[Places:Bookmarks Containers]]
* [[Places:Live Bookmarks]]
* [[Places:File System Container]]


= Impact =
= Impact =

Revision as of 05:41, 17 January 2009

Places is a system for storing bookmarks, history, and other information about the Web. It is currently enabled in trunk builds, and debuted in Firefox 3. This document covers the design and user-interface of Places. Extension developers should read the developer documentation.

Status:

  • History-on-Places was enabled on the trunk in January 2007, first released in Gran Paradiso Alpha 2.
  • Bookmarks-on-Places was enabled in May 2007, first released in Gran Paradiso Alpha 5.

Discussion and communication:

Goals & Objectives

The primary objectives of this project are to:

  • Improve access to History and Bookmarks
  • Make it easier for people to Bookmark pages

Secondary objectives include:

  • Consolidating user data formats
  • Providing a platform for using interesting per-URL metadata
  • Improving the capabilities of Live Bookmarks
  • Providing a solid architecture for bookmark sync and remote storage

Overview

Implemented new back ends for Bookmarks and History using the mozStorage wrapper for SQLite. Developed newer, more usable front-end components to display results, emphasizing simple search and categorization.

Background

Studies from the late 1990s show that while revisitations of pages previously seen counted for roughly 39% of all page navigations (see Google Scholar), Bookmarks and History usage was low (1-3%), despite the fact that roughly 20% of those revisitations were to pages seen > 10 URLs ago (and thus outside the usefulness range of the Back button or menu).

Autocomplete in the URL bar is a useful tool but fails to address some common desires when looking up visited pages. There is a gulf between the capabilities of that tool, the capabilities of the Bookmarks and History systems today, and the desired capabilities of those systems.

Use Cases

Functional Requirements

The original requirements for Places in Firefox 3 are detailed in the Firefox 3 PRD

Design

More design information is on the Places developer wiki.

Implementation

Places is currently enabled for Firefox 3 and greater, powering History and Bookmarks, as well as providing plumbing for Livemarks, Annotations and Microsummaries and the Awesomebar.

Code Location

Team

With help and guidance from:

See the Places bug list for current work.

Meetings/Discussion

API Changes

The APIs for accessing Bookmarks have been replaced. Some history APIs remain the same. See the Places developer wiki for more information.

Special Containers

XXXdietrich - move to developer wiki, replace with an design page for extensibility

Impact

Extensions

The APIs for accessing and manipulating Bookmarks and History are being replaced with new ones, and almost all Bookmarks and History user interface will be replaced or updated significantly. Any extension that does anything with History or Bookmarks will almost certainly have to be rewritten, at the very least to use the new APIs.

Performance

XXXdietrich - point to thunder's page, and the relevant perf bugs.

Bookmarks can have a non-trivial impact on performance, see Places:Performance for more information.

Discussion & Implications

Discussion Elsewhere

Archived Build Notes (obsolete)

Milestone 2 (1/30/2006):

What's new in this build:

  • Your existing history is now preserved and imported into Places.
  • You can search from the Places view
  • You can construct queries over your history/bookmarks and save them
  • If you are migrating to Firefox from another browser, your history and bookmarks are imported into Places.
  • Stability, performance, and bug fixes

Known issues:

  • It is recommended that you delete the file "storage.sdb" in your profile directory if you have previously run a Places build.
  • This build is based on the Firefox 2.0 branch. It still claims to be 1.5, so 1.5-compatible extensions will continue to function. Extensions that utilize the old bookmarks and history interfaces will not work correctly.
  • If you use the installer, you have to do a custom install and disable Quality Feedback Agent. Otherwise, the installation will error out.
  • Bookmark keywords do not work yet.
  • If your profile directory is on NFS, you will see slower performance.

Milestone 1 (12/15/2005):

This is our first public milestone build. It has a working Places view, history, and bookmarks (with import). There are a few known issues:

  • These builds are based on the Firefox trunk. As a result, any extensions which claim only 1.5.0.* compatibility will be disabled.
  • If you use the installer, you have to do a custom install and disable Quality Feedback Agent. Otherwise, the installation will error out.
  • Existing bookmarks are imported, but history is not yet imported.
  • Bookmark keywords do not work yet.
  • If your profile directory is on NFS, you will see slower performance.