Places: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
(→‎Quick Links: typo, "MDC" to "MDN")
 
(15 intermediate revisions by 4 users not shown)
Line 1: Line 1:
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].
Places is a system for storing bookmarks, history, and other user information about the Web, intended to improve developer access to this data and make it easier for people to Bookmark pages. 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.


Status:
= Quick Links =
* 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.
Documentation
* [http://developer.mozilla.org/en/docs/Places Developer documentation] on MDN
* [http://people.mozilla.org/~dietrich/places/ Doxygen-generated API documentation]
* [http://people.mozilla.org/~dietrich/places-erd.png Database schema ERD]
* [[Places/Places_SQL_queries_best_practices]] for code contributors and internal developers
* [[Places/Places_Branch]] Places branch annotations
* [[Places/Coding_Style]] Places coding style


Discussion and communication:
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.
= Goals & Objectives =
The primary objectives of this project are to:  


* Improve access to History and Bookmarks
Source:
* Make it easier for people to Bookmark pages
* 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/]


Secondary objectives include:
Current work:
* See the [[Places:Plan]] for current work.


* Consolidating user data formats
Active module peers:
* Providing a platform for using interesting per-URL metadata
* [http://autonome.wordpress.com/ Dietrich Ayala] (MO)
* Improving the capabilities of Live Bookmarks
* [http://shawnwilsher.com/ Shawn Wilsher]
* Providing a solid architecture for bookmark sync and remote storage
* [http://www.bonardo.net/ Marco Bonardo]


= Overview =
= Design =


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.
* Contemporary design information is on the [http://developer.mozilla.org/en/docs/Places Places developer wiki].
* [[Places:Design Overview]] contains much of the original design documentation from Firefox 2 and 3 work on Places.
* [[Places:Performance]]
* [[Places:SecurityReview|Places Security Review]]


== Background ==
= Compatibility =


Studies from the late 1990s show that while revisitations of pages previously seen counted for roughly 39% of all page navigations (see [http://scholar.google.com/ 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).  
As of Firefox 3, the APIs for accessing Bookmarks and History have been replaced. Some history APIs remain the same. See the [http://developer.mozilla.org/en/docs/Places Places developer wiki] for more information.


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.
= Extensions =


== Use Cases ==
The APIs for accessing and manipulating Bookmarks and History have been replaced entirely in Firefox 3, and are incompatible. Almost all Bookmarks and History user interface components have been 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.


* [[Places:History Use Cases]]
= Timeline and History =
* [[Bookmarks Use Cases]] (not specific to places)


== Functional Requirements ==
* 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.
The original requirements for Places in Firefox 3 are detailed in the [[Firefox3/Product_Requirements_Document#Places|Firefox 3 PRD]]
* 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.
= Design =
 
* [[Places:User Interface]]
* [[Places:Design Overview]]
 
* [[Places:URL Store]]
* [[Places:Bookmarks]]
* [[Places:place URIs]]
* [[Places:Results]]
* [[Places:Controller]]
* [[Browser History]]
* [[Places:AutoComplete]]
* [[Places:Transactions]]
* [[Places:Drag & Drop]]
* [[Places:Manager]]
 
More design information is on the [http://developer.mozilla.org/en/docs/Places 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 ==
= Credits =


* Firefox front-end: [http://mxr.mozilla.org/mozilla-central/source/browser/components/places/ mozilla/browser/components/places/]
Past core contributors:
* Toolkit backend: [http://mxr.mozilla.org/mozilla-central/source/toolkit/components/places/ mozilla/toolkit/components/places/]


== Team ==
* [http://dietrich.ganx4.com/ Dietrich Ayala]
* Asaf Romano
* Asaf Romano
* [http://www.xulplanet.com/ndeakin/ Neil Deakin]
* [http://www.xulplanet.com/ndeakin/ Neil Deakin]
Line 76: Line 59:
* [http://blog.mozilla.com/sspitzer/ Seth Spitzer]
* [http://blog.mozilla.com/sspitzer/ Seth Spitzer]


With help and guidance from:
Help and guidance from:


* [http://maxradi.us/ Brett Wilson] (former backend contributor)
* [http://maxradi.us/ Brett Wilson] (former back-end contributor)
* [http://www.melez.com/mykzilla/ Myk Melez] (microsummaries)
* [http://www.melez.com/mykzilla/ Myk Melez] (microsummaries)
* [http://www.franklinmint.fm/ Robert Sayre] (feeds)
* [http://www.franklinmint.fm/ Robert Sayre] (feeds)
Line 84: Line 67:
* [http://blog.mozilla.com/faaborg Alex Faaborg]
* [http://blog.mozilla.com/faaborg Alex Faaborg]


See the Places [http://tinyurl.com/2lm8z3 bug list] for current work.
= Discussion & Research =
 
== 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 Thursday at '''2'''pm PST in [irc://irc.mozilla.org/#places #places].  See [[Places/StatusMeetings]] for the logs of the past meetings.
 
== API Changes ==
 
The APIs for accessing Bookmarks have been replaced. Some history APIs remain the same. See the [http://developer.mozilla.org/en/docs/Places Places developer wiki] for more information.
 
* [http://developer.mozilla.org/en/docs/Places:History_Service Places: History Service]
* [http://developer.mozilla.org/en/docs/Places:Bookmarks_Service Places: Bookmarks Service]
* [http://developer.mozilla.org/en/docs/Places:Annotation_Service Places: Annotation Service]
* [http://developer.mozilla.org/en/docs/Places:Livemark_Service Places: Livemark 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]
 
== 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 =
 
== 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 ==
In-depth discussion is in the original design documents, linked from [[Places:Design Overview]].
 
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 =
 
* [[Places:SecurityReview|Places Security Review]]
 
== Discussion Elsewhere ==


* [http://robert.accettura.com/archives/2005/08/01/intelligent-bookmarking-draft/ Intelligent Bookmarking (Draft) - Robert Accettura]
* [http://robert.accettura.com/archives/2005/08/01/intelligent-bookmarking-draft/ Intelligent Bookmarking (Draft) - Robert Accettura]
* [http://pubnotes.wordpress.com/2007/10/14/evolution-of-bookmarking/ The Evolution of Bookmarking -- Bookmarks, Firefox, del.icio.us, Tagging, and Information Management]
* [http://pubnotes.wordpress.com/2007/10/14/evolution-of-bookmarking/ The Evolution of Bookmarking -- Bookmarks, Firefox, del.icio.us, Tagging, and Information Management]
* [http://www.ra.ethz.ch/CDstore/www5/www185/overview.htm Automatically Organizing Bookmarks per Contents], Fifth International World Wide Web Conference, May 6-10, 1996, Paris, France.  ([http://scholar.google.com/scholar?cluster=5092164817324641042 Google Scholar search for the article] if it moves)
* [http://www.ra.ethz.ch/CDstore/www5/www185/overview.htm Automatically Organizing Bookmarks per Contents], Fifth International World Wide Web Conference, May 6-10, 1996, Paris, France.  ([http://scholar.google.com/scholar?cluster=5092164817324641042 Google Scholar search for the article] if it moves)
* [[User:Dria/On Tagging|Deb Richardson's "On Tagging"]]
* [[User:Dria/On Tagging|Deb Richardson's "On Tagging"]]


Line 140: Line 80:
** [http://groups.google.com/group/mozilla.dev.apps.firefox/browse_frm/thread/173ba1f87d7f88c2 newsgroup thread on sync]
** [http://groups.google.com/group/mozilla.dev.apps.firefox/browse_frm/thread/173ba1f87d7f88c2 newsgroup thread on sync]
** [http://www.foxcloud.com/Places/ ERD (possibly obsolete)]
** [http://www.foxcloud.com/Places/ ERD (possibly obsolete)]
= 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.

Latest revision as of 19:32, 15 December 2016

Places is a system for storing bookmarks, history, and other user information about the Web, intended to improve developer access to this data and make it easier for people to Bookmark pages. 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.

Quick Links

Documentation

Communication:

Source:

Current work:

Active module peers:

Design

Compatibility

As of Firefox 3, the APIs for accessing Bookmarks and History have been replaced. Some history APIs remain the same. See the Places developer wiki for more information.

Extensions

The APIs for accessing and manipulating Bookmarks and History have been replaced entirely in Firefox 3, and are incompatible. Almost all Bookmarks and History user interface components have been 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.

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.

Credits

Past core contributors:

Help and guidance from:

Discussion & Research

In-depth discussion is in the original design documents, linked from Places:Design Overview.