Places: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
Line 2: Line 2:


Quick links:
Quick links:
* [http://developer.mozilla.org/en/docs/Places Developer documentation] on MDC
 
* [http://people.mozilla.org/~dietrich/places/ Doxygen-generated API documentation]
* Documentation
* [http://people.mozilla.org/~dietrich/places-erd.png Database schema ERD]
** [http://developer.mozilla.org/en/docs/Places Developer documentation] on MDC
** [http://people.mozilla.org/~dietrich/places/ Doxygen-generated API documentation]
** [http://people.mozilla.org/~dietrich/places-erd.png Database schema ERD]
 
Communication:
* [news://news.mozilla.org/mozilla.dev.apps.firefox mozilla.dev.apps.firefox newsgroup]
* [news://news.mozilla.org/mozilla.dev.apps.firefox mozilla.dev.apps.firefox newsgroup]
* [irc://irc.mozilla.org/#places #places] on irc.mozilla.org
* [irc://irc.mozilla.org/#places #places] on irc.mozilla.org
* Weekly meetings on Monday at '''9'''am PST in [irc://irc.mozilla.org/#places #places]. See [[Places/Status_Meetings]] for meeting notes.
 
Source:
* Firefox front-end code: [http://mxr.mozilla.org/mozilla-central/source/browser/components/places/ mozilla/browser/components/places/]
* Toolkit backend code: [http://mxr.mozilla.org/mozilla-central/source/toolkit/components/places/ mozilla/toolkit/components/places/]
 
Active core contributors:
* [http://autonome.wordpress.com/ Dietrich Ayala]
* [http://shawnwilsher.com/ Shawn Wilsher]
* [http://twitter.com/mak77 Marco Bonardo]
 
= Timeline and History =
= Timeline and History =


Line 63: Line 77:
* [[Places:Drag & Drop]]
* [[Places:Drag & Drop]]
* [[Places:Manager]]
* [[Places:Manager]]
* [[Places:Bookmarks Containers]]
* [[Places:Live Bookmarks]]


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].
Line 69: Line 85:


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.
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 ==
* 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 97: Line 108:


See the [https://wiki.mozilla.org/Places:Plan plan] for current work.
See the [https://wiki.mozilla.org/Places:Plan plan] for current work.
== Meetings/Discussion ==
* [http://groups.google.com/group/mozilla.dev.apps.firefox mozilla.dev.apps.firefox]
* [irc://irc.mozilla.org/#places #places] on irc
* Weekly meetings on Monday at '''9'''am PST in [irc://irc.mozilla.org/#places #places].  See [[Places/Status_Meetings]] for the logs of the past meetings.


== API Changes ==
== API Changes ==
Line 119: Line 124:
XXXdietrich - move to developer wiki, replace with an design page for extensibility
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 06:36, 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.

Quick links:

Communication:

Source:

Active core contributors:

Timeline and History

  • Initial Places implementation slated for Firefox 2. Landed for early alphas and then backed out and eventually cut from the release. [TODO: proper links and dates needed]
  • Project re-initialized in fall 2007, slated for Firefox 3.
  • 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.

Goals & Objectives

The primary objectives:

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

Secondary objectives:

  • 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-end for Bookmarks, History and related components 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.

Team

Active core contributors:

Past core contributors:

With help and guidance from:

See the plan for current work.

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

See Places:Performance for more information.

Discussion & Implications

Discussion Elsewhere