https://wiki.mozilla.org/api.php?action=feedcontributions&user=Ben&feedformat=atomMozillaWiki - User contributions [en]2024-03-29T08:31:09ZUser contributionsMediaWiki 1.27.4https://wiki.mozilla.org/index.php?title=Runway/Queue&diff=25675Runway/Queue2006-05-10T17:19:53Z<p>Ben: /* Runway Queue */</p>
<hr />
<div>The runway is used to control landings on the trunk in order to ensure that patches have no significant deleterious effect on the tree. The runway is under complete control of the [[Sheriff_Duty|sheriff]].<br />
<br />
= Runway Queue =<br />
<br />
Add your bugs here to have them scheduled for landing on the [[Runway|runway]]. Be sure to ping the [[Sheriff_Schedule|sheriff on duty]] to let them know once you've added your entry to the list.<br />
<br />
'''How to add to the queue'''<br />
* use { { bug | #} } to add your bug<br />
* the pilot must be around to check in the code and help it land<br />
* include a summary so the sheriff can prioritize<br />
* include the pilot's availability<br />
<br />
{|cellpadding="3"<br />
|- style="background-color: #efefef"<br />
| '''Bug'''<br />
| '''Pilot'''<br />
| '''Summary'''<br />
| '''requested time'''<br />
|-<br />
| {{bug|10001}} <br />
| bz<br />
| Ts regression fix, pretty scary!<br />
| afternoons PDT<br />
|-<br />
| {{bug|10002}}<br />
| Enn<br />
| WHATWG storage piece, Ts impact expected<br />
| afternoons EDT<br />
|-<br />
| {{bug|336945}}<br />
| beng<br />
| Fix web handler selection options on windows. Not so scary. <br />
| evening EDT<br />
|}</div>Benhttps://wiki.mozilla.org/index.php?title=Runway/Queue&diff=25674Runway/Queue2006-05-10T17:19:29Z<p>Ben: /* Runway Queue */</p>
<hr />
<div>The runway is used to control landings on the trunk in order to ensure that patches have no significant deleterious effect on the tree. The runway is under complete control of the [[Sheriff_Duty|sheriff]].<br />
<br />
= Runway Queue =<br />
<br />
Add your bugs here to have them scheduled for landing on the [[Runway|runway]]. Be sure to ping the [[Sheriff_Schedule|sheriff on duty]] to let them know once you've added your entry to the list.<br />
<br />
'''How to add to the queue'''<br />
* use { { bug | #} } to add your bug<br />
* the pilot must be around to check in the code and help it land<br />
* include a summary so the sheriff can prioritize<br />
* include the pilot's availability<br />
<br />
{|cellpadding="3"<br />
|- style="background-color: #efefef"<br />
| '''Bug'''<br />
| '''Pilot'''<br />
| '''Summary'''<br />
| '''requested time'''<br />
|-<br />
| {{bug|10001}} <br />
| bz<br />
| Ts regression fix, pretty scary!<br />
| afternoons PDT<br />
|-<br />
| {{bug|10002}}<br />
| Enn<br />
| WHATWG storage piece, Ts impact expected<br />
| afternoons EDT<br />
|-<br />
| {{bug|333945}}<br />
| beng<br />
| Fix web handler selection options on windows. Not so scary. <br />
| evening EDT<br />
|}</div>Benhttps://wiki.mozilla.org/index.php?title=Firefox2/StatusMeetings/2006-05-09&diff=25363Firefox2/StatusMeetings/2006-05-092006-05-09T16:35:18Z<p>Ben: /* Feeds: UI */</p>
<hr />
<div><small>[[Firefox2/StatusMeetings/2006-05-02|<< previous week]] | [[Firefox2/StatusMeetings|index]] | [[Firefox2/StatusMeetings/2006-05-16|next week>>]]</small><br />
<br />
'''Meeting Details'''<br />
* 11:00am PDT (18:00 UTC)<br />
* Mozilla HQ, 1st floor conference table<br />
* +1 866 216 2181<br />
* join irc.mozilla.org #bonecho for attendance taking<br />
<br />
= Agenda =<br />
# Bon Echo Alpha 2 (Tracking & Status)<br />
# Development Roundtable<br />
# Any other business<br />
<br />
= Bon Echo Alpha 2 =<br />
We're in the final push for Alpha 2. During this meeting we'll triage the following items:<br />
* Bon Echo Alpha 2 tracking bug: {{bug|337193}}<br />
* bugs marked <tt>blocking-firefox2?/+</tt> or <tt>blocking-1.8.1?/+</tt> with a target milestone of "Firefox 2 alpha2": [http://tinyurl.com/z2v7x link to search]<br />
<br />
Then we'll run down the list of what made it in for compiling the release notes. The current list is:<br />
* enhancements to tabbed browsing (?)<br />
* session restore<br />
* microsummaries<br />
* spell checking<br />
* feeds<br />
* extension manager<br />
* search manager<br />
* search box enhancements<br />
* search suggestion infrastructure<br />
* storage<br />
* WHATWG storage<br />
* anti phishing<br />
* new ciphers (ECC)<br />
<br />
<br />
= Developer Roundtable =<br />
Please add any status updates from the past week, including links to relevant bugs, newsgroup discussions, etc:<br />
<br />
=== Visual Refresh: Chrome Polish ===<br />
<br />
=== Visual Refresh: Theme Polish ===<br />
<br />
=== Bookmarks and History: Places ===<br />
<br />
=== User Experience: General & Tabbed Browsing ===<br />
<br />
=== User Experience: Session Restore ===<br />
<br />
=== User Experience: Spell Check ===<br />
<br />
=== User Experience: Microsummaries ===<br />
<br />
=== Feeds: Parser ===<br />
<br />
=== Feeds: UI ===<br />
<br />
In & On, no perf regressions that I could see<br />
<br />
Focus post a2:<br />
- best architecture for security<br />
- UI adjustments<br />
- Sniffer adjustments<br />
<br />
=== Extension Manager: UI ===<br />
<br />
=== Extension Manager: Blocklisting ===<br />
<br />
=== Extension Manager: Locale Packs ===<br />
<br />
=== Search: UI ===<br />
<br />
=== Search: Plugin Format ===<br />
<br />
=== Distribution: Installer ===<br />
<br />
=== Distribution: EULA ===<br />
<br />
=== Distribution: Channel Support ===<br />
<br />
=== Infrastructure: Performance ===<br />
<br />
=== Infrastructure: Platform Uplift ===<br />
<br />
=== Infrastructure: Instrumentation ===<br />
<br />
=== Security: Phishing ===<br />
<br />
=== Security: SSL ===<br />
<br />
=== User Documentation ===<br />
<br />
=== Developer Documentation ===<br />
<br />
=== L10n ===<br />
<br />
= Other Business =</div>Benhttps://wiki.mozilla.org/index.php?title=XUL:Bugs&diff=25230XUL:Bugs2006-05-06T06:06:03Z<p>Ben: </p>
<hr />
<div># "you cannot use a stack to position content over a scrollable view"<br />
# you cannot use a stack to position XUL content over SVG content<br />
# [https://bugzilla.mozilla.org/show_bug.cgi?id=332845|Menu Dismissal Listener does not handle multiple active chains]<br />
<br />
Parent page : [[XUL:Home_Page]]</div>Benhttps://wiki.mozilla.org/index.php?title=XUL:Bugs&diff=25229XUL:Bugs2006-05-06T06:05:33Z<p>Ben: </p>
<hr />
<div># "you cannot use a stack to position content over a scrollable view"<br />
# you cannot use a stack to position XUL content over SVG content<br />
# https://bugzilla.mozilla.org/show_bug.cgi?id=332845<br />
<br />
Parent page : [[XUL:Home_Page]]</div>Benhttps://wiki.mozilla.org/index.php?title=Community:SummerOfCode06&diff=25121Community:SummerOfCode062006-05-04T23:23:50Z<p>Ben: /* Core Browser Engine and Toolkit Development */</p>
<hr />
<div>Add your ideas here for Mozilla Projects that students could take on to participate in the Google [http://code.google.com/summerofcode.html Summer of Code 2006]<br />
<br />
Please use this general format for submitting ideas.<br />
{| border="1" cellpadding="3" width="100%" valign="top"<br />
|- align="center"<br />
| style="background-color: #efefef;" | '''ID'''<br />
| style="background-color: #efefef;" | '''Title'''<br />
| style="background-color: #efefef;" | '''Abstract- links to details/bugs/etc'''<br />
| style="background-color: #efefef;" | '''Reporter & Mentor(s)'''<br />
| style="background-color: #efefef;" | '''Status'''<br />
|-<br />
| valign="top" |<br />
| valign="top" |<br />
| valign="top" | <br />
| valign="top" |<br />
| valign="top" |<br />
|-<br />
|}<br />
<br />
You should provide good detail and links to other information about in the abstract. This will help students writting proposals to submit the best proposals possible.<br />
<br />
All approved projects are going to need mentors, so suggestions in this section are important. I'm looking to recruit more Mozilla module owners to serve as mentors.<br />
<br />
The following list of module owners and peers have signed up to be mentors:<br />
<br />
* Ben Goodger<br />
* Benjamin Smedberg<br />
* Chris Hofmann (admin)<br />
* Darin Fisher <br />
* David Bienvenu<br />
* David Liebreich<br />
* Joshua Aas <br />
* Mike Beltzner<br />
* Mike Pinkerton<br />
* Mark Mentovai<br />
* Robert O'Callahan<br />
* Scott MacGregor<br />
* Stuart Parmenter<br />
* Vladimir Vukicevic<br />
<br />
If you are interested in being a mentor, the requirements and responsibilities are here: http://code.google.com/soc/mentorfaq.html<br />
<br />
Apply to be a mentor by submitting this form:<br />
http://code.google.com/soc/mentor_step1.html<br />
<br />
If you are a student writing a proposal, there is <br />
a good list of guidelines written up at [http://drupal.org/node/59963] that will help as the mentors as they review, evaluate , and decide on your Mozilla Project proposal. <br />
<br />
Thanks<br />
<br />
Chris Hofmann<br />
<br />
<br />
<br />
'''Project Idea List.'''<br />
<br />
<br />
The following projects have been proposed by Mozilla module owners and project participants. Students might also look at interesting individual bugs in the [http://bugzilla.mozilla.org] database, and write proposals that would help to diagnose or fix specific issues described in individual or collections of bugs.<br />
<br />
<br />
== Core Browser Engine and Toolkit Development ==<br />
<br />
{| border="1" cellpadding="3" width="100%" valign="top"<br />
|- align="center"<br />
| style="background-color: #efefef;" | '''ID'''<br />
| style="background-color: #efefef;" | '''Title'''<br />
| style="background-color: #efefef;" | '''Abstract links to details/bugs/etc'''<br />
| style="background-color: #efefef;" | '''Reporter & Mentor(s)'''<br />
| style="background-color: #efefef;" | '''Status'''<br />
|-<br />
| valign="top" |<br />
| valign="top" |"Advance the XUL platform"<br />
| valign="top" |projects (to be defined) e.g. implement <menugroup>, <br />
fix menu bugs, etc.<br />
| valign="top" |[[User:Ben|Ben]] <br />
| valign="top" |submitted 10:38, 17 April 2006 (PDT)<br />
|-<br />
| valign="top" |<br />
| valign="top" |Multi-threaded (accelerated) Download Manager <br />
| valign="top" |([https://bugzilla.mozilla.org/show_bug.cgi?id=40106]) with possible [http://www.metalinker.org Metalink] (bug #[https://bugzilla.mozilla.org/show_bug.cgi?id=331979 331979]) (Mirrors/P2P/checksums) or [http://microformats.org/wiki/hash-examples MD5/SHA-1 hash/checksum microformat] support. <br />
| valign="top" |<br />
| valign="top" | submitted 21:34, 17 April 2006 (PDT)<br />
|-<br />
| valign="top" |<br />
| valign="top" |Auto verify MD5/SHA1 hashes & PGP signatures<br />
| valign="top" |Automatically verifying MD5/SHA1 hashes, and optionally PGP signatures, of downloads. When you have downloaded a file, the download manager should try to download filename.md5, filename.sha, filename.asc and run the associated tool on the downloaded file to verify. Mark the entry as red or something in the download manager, and change the Open link to Info link, if the file did not verify. The Info link would open a page explaining what is wrong. It could perhaps have a open or preferably just delete file button. More difficult case would be to get the md5/sha1 signature if it is just embedded on the page where the download link is, but you could try some heuristics... (see also [https://bugzilla.mozilla.org/show_bug.cgi?id=292481 bug 292481])<br />
| valign="top" |<br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" |pixman rewrite<br />
| valign="top" |Work on cairo to speed up image fallback backend. Requires strong knowledge of image processing, as well as MMX/SSE/etc; the bulk of the work will be writing fast inner-loop compositing operations for in-memory image surfaces.<br />
| valign="top" |[[User:VladVukicevic|VladVukicevic]]<br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" |APNG support<br />
| valign="top" |implementation of [http://rig.vlad1.com/~vladimir/projects/apng/ APNG]<br />
| valign="top" |Vlad<br />
| valign="top" |already assigned<br />
|-<br />
| valign="top" |<br />
| valign="top" |Security Improvements<br />
| valign="top" |Fix some of the bugs and enhancement requests with [https://bugzilla.mozilla.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&field0-0-0=product&type0-0-0=substring&value0-0-0=sg%3Awant&field0-0-1=component&type0-0-1=substring&value0-0-1=sg%3Awant&field0-0-2=short_desc&type0-0-2=substring&value0-0-2=sg%3Awant&field0-0-3=status_whiteboard&type0-0-3=substring&value0-0-3=sg%3Awant&remaction=&query_format=advanced&order=bugs.status_whiteboard,bugs.bug_id%20desc&query_based_on= "sg:want" in the status whiteboard]. These are things that would improve security, but aren't security holes.<br />
| valign="top" |[[User:Jesse|Jesse Ruderman]]<br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" | Process Coverity reports<br />
| valign="top" | Coverity identified hundreds of potential problems in Firefox. Currently, only 117 got filed in bugzilla (about half of them fixed) branch. According to http://scan.coverity.com/ , there should be 245 more. A student could process the rest, and also identify the ones that are worthwile to be included in FF 2.0.<br />
| valign="top" | Reporter: Jo Hermans<br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" | Improvements to web page error reporting<br />
| valign="top" | Implement some proposed changes to the console service API and consumers to allow a much better error console UI (associating errors with specific windows, etc). Possibly implement said UI as well, if desired. [https://bugzilla.mozilla.org/show_bug.cgi?id=228205 bug 228205] covers the API changes.<br />
| valign="top" | Reporter: Boris Zbarsky<br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" |Create a scriptable jar writer or zip writer<br />
| valign="top" |Implement a scriptable nsIZipWriter component and interface. [https://bugzilla.mozilla.org/show_bug.cgi?id=289948 bug 289948] is a bug requesting this feature, and [http://lxr.mozilla.org/mozilla/source/modules/libjar/ libjar] is the directory where the zip reader resides.<br />
| valign="top" |Reporter: [[User:richwklein|richwklein]]<br>Mentor: [[MDC:User:Benjamin Smedberg|bsmedberg]]<br />
| valign="top" |Submitted: 8:26, 21 April 2006 (CST)<br />
|-<br />
| valign="top" |<br />
| valign="top" |Improve the XUL Sort Service<br />
| valign="top" |Generalize nsIXULSortService so non template data can be sorted in lists and trees. [http://lxr.mozilla.org/mozilla/find?string=xulsort nsIXULSortService] is the current implementation, and some ideas for [[XULSortService | improvements]]. [[XUL:Priority_List#Priority_5|XUL Priority List]] includes a reference to sorting as well.<br />
| valign="top" |Reporter: [[User:richwklein|richwklein]] <br />
| valign="top" |Submitted: 8:26, 21 April 2006 (CST)<br />
|-<br />
| valign="top" |<br />
| valign="top" |Enhance selection APIs<br />
| valign="top" |Enhance the selection APIs so that they can provide the features needed for both existing find-in-page use (without modifying the DOM) and for highlighting of all occurrences. Start by reorganizing the selection code based on what requirements it really needs to meet (which include handling of text selection in the page and in form controls, IME, spellcheck, and other things) plus the ability to [https://bugzilla.mozilla.org/show_bug.cgi?id=256773 highlight multiple ranges]. (And maybe do some [https://bugzilla.mozilla.org/show_bug.cgi?id=298715 other cleanup] as part of that learning process.) Then extend CSS and DOM APIs to provide a clean API for what find-in-page needs, and fix find-in-page to use those APIs.<br />
| valign="top" |Reporter: [[User:Dbaron|David Baron]]<br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" |Improve link activation APIs<br />
| valign="top" |[https://bugzilla.mozilla.org/show_bug.cgi?id=335963 Improve link activation APIs] to consolidate link activation code, fix bugs caused by inconsistencies and allow single-window and tabbed-only browsing and open-in-new-window / open-in-new-tab context menu options that really work, even for javascript: URLs and onclick handlers. And then get at least a significant start on the front-end changes needed to use those APIs. See [https://bugzilla.mozilla.org/show_bug.cgi?id=335963 bug] for more details.<br />
| valign="top" |Reporter: [[User:Dbaron|David Baron]]<br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" |DOM Inspector UI Overhaul<br />
| valign="top" |Firebug is great for web developers, but many XUL developers use DOM Inspector for debugging XUL itself. The DOM Inspector could use a firebug-like upgrade. <br />
| valign="top" |[[User:Ben|Ben]] 16:23, 4 May 2006 (PDT)<br />
| valign="top" |submitted 16:23, 4 May 2006 (PDT)<br />
|-<br />
|}<br />
<br />
== Firefox Features and Extensions == <br />
<br />
{| border="1" cellpadding="3" width="100%" valign="top"<br />
|- align="center"<br />
| style="background-color: #efefef;" | '''ID'''<br />
| style="background-color: #efefef;" | '''Title'''<br />
| style="background-color: #efefef;" | '''Abstract links to details/bugs/etc'''<br />
| style="background-color: #efefef;" | '''Reporter & Mentor(s)'''<br />
| style="background-color: #efefef;" | '''Status'''<br />
|-<br />
| valign="top" |<br />
| valign="top" |Complete Torrent-Integration<br />
| valign="top" |[http://firepuddle.mozdev.org/] (started in last year's SoC)<br />
| valign="top" |<br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" |Enhanced Page Info window<br />
| valign="top" |(need spec)...<br />
| valign="top" |[[User:Ben|Ben]] [[User:Beltzner|Beltzner]] for UI<br />
| valign="top" |Submitted 18:07, 18 April 2006 (PDT) <br />
|-<br />
|}<br />
<br />
== Mac Platform Improvements == <br />
<br />
{| border="1" cellpadding="3" width="100%" valign="top"<br />
|- align="center"<br />
| style="background-color: #efefef;" | '''ID'''<br />
| style="background-color: #efefef;" | '''Title'''<br />
| style="background-color: #efefef;" | '''Abstract links to details/bugs/etc'''<br />
| style="background-color: #efefef;" | '''Reporter & Mentor(s)'''<br />
| style="background-color: #efefef;" | '''Status'''<br />
|-<br />
| valign="top" |<br />
| valign="top" |styled text support for Mac clipboard<br />
| valign="top" |Implement copy/paste of styled text to the system clipboard on the Mac; {{bug|79864}} <br />
| valign="top" |Reporter: [[User:Sardisson|sardisson]]<br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" |Mac keybinding and text-editing improvements<br />
| valign="top" |Audit and fix any missing OS-standard text field keybindings and text-editing behaviors on the Mac ([http://hcs.harvard.edu/~jrus/Site/System%20Bindings.html good summary of default bindings here]); {{Bug|330968}}<br />
| valign="top" |Reporter: [[User:Sardisson|sardisson]]<br />
| valign="top" |13:28, 19 April 2006 (PDT)<br />
|-<br />
| valign="top" |<br />
| valign="top" |Improve/expand AppleScript support<br />
| valign="top" |Mozilla-based Mac products have very limited AppleScript support, especially in comparison to Safari, Eudora, and other long-standing Mac applications; Camino {{bug|178917}}, {{bug|160106}}, {{bug|314061}}, {{bug|253486}}, {{bug|156078}} (there may be others in Core, Firefox, Thunderbird, or MAS products) <br />
| valign="top" |Reporter: [[User:Sardisson|sardisson]]<br />
| valign="top" |13:28, 19 April 2006 (PDT)<br />
|-<br />
| valign="top" |<br />
| valign="top" |Revive CHBrowserView.<br />
| valign="top" |Right now, embedding Gecko in a Cocoa application means embedding all of Camino. We need to make it easier to embed Mozilla in Cocoa applications, for WebKit competition. <br />
| valign="top" | [[User:Hwaara|HÃ¥kan Waara]], Mark Mentovai <br />
| valign="top" |13:52, 19 April 2006 (PDT)<br />
|-<br />
| valign="top" |<br />
| valign="top" |Camino Single-Window Mode.<br />
| valign="top" |Now that the APIs for "single window mode" are available to embedding apps, we need to add this capability to Camino; {{bug|274143}}<br />
| valign="top" | [[User:pinkerton|Mike Pinkerton]], Mark Mentovai <br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" |Camino Keychain Rewrite.<br />
| valign="top" |Camino uses the old API for Keychain, we need to update to the new API in order to be compatible with Safari keychain entries. The new implementation needs to be backwards compatible with old keychain entries (maybe a one-time import?) and allow multiple passwords per site (one of our Top-5 feature requests). Bugs: {{bug|172842}}, {{bug|177941}}, {{bug|179672}}, {{bug|178607}}, {{bug|187720}}, (maybe {{bug|202337}}).<br />
| valign="top" | [[User:pinkerton|Mike Pinkerton]], Mark Mentovai <br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" |Camino Tab Reordering<br />
| valign="top" |Users want to be able to drag tabs to reorder them, as well as drag them to other windows, or drag them out of windows to create a new window; {{bug|160720}} and {{bug|318260}}<br />
| valign="top" | [[User:pinkerton|Mike Pinkerton]], Mark Mentovai <br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" |Native form widgets for Mac<br />
| valign="top" |Improve native look/feel of form widgets under Cocoa widgets. This would involved making a list of priorities for improving look/feel and fixing as many things as possible before the end of the project. Examples might be cleaning up text field borders, defining fallback behavior for CSS modifications to form widgets, making listbox scrollbars small-sized scrollbars instead of full-sized, etc... <br />
| valign="top" |Josh Aas<br />
| valign="top" |<br />
|-<br />
|}<br />
<br />
== Minimo Mobile Browsing Features and Extensions == <br />
<br />
{| border="1" cellpadding="3" width="100%" valign="top"<br />
|- align="center"<br />
| style="background-color: #efefef;" | '''ID'''<br />
| style="background-color: #efefef;" | '''Title'''<br />
| style="background-color: #efefef;" | '''Abstract links to details/bugs/etc'''<br />
| style="background-color: #efefef;" | '''Reporter & Mentor(s)'''<br />
| style="background-color: #efefef;" | '''Status'''<br />
|-<br />
| valign="top" |<br />
| valign="top" |Mobile Widgets<br />
| valign="top" |Create XUL based mobile widgets for Minimo/Firefox on the desktop along the lines of stuff at http://www.widgetgallery.com/ and http://www.georgenava.com/applauncher.php - These could be hosted remote XUL content or built-in as extensions to Minimo -<br />
| valign="top" |dougt and mgalli<br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" |Location info for Minimo<br />
| valign="top" |Intergrate GPS and other location information to allow content tailoring. Some early prototype work has been done for Firefox and Minimo ( [http://www.meer.net/~dougt/gps/] , and [http://weblogs.mozillazine.org/dougt/archives/009073.html]) You would work on expanding and extending these ideas.<br />
| valign="top" |[[User:dougt|dougt]]<br />
| valign="top" |<br />
|-<br />
|}<br />
<br />
== Thunderbird Features and Extensions == <br />
<br />
{| border="1" cellpadding="3" width="100%" valign="top"<br />
|- align="center"<br />
| style="background-color: #efefef;" | '''ID'''<br />
| style="background-color: #efefef;" | '''Title'''<br />
| style="background-color: #efefef;" | '''Abstract links to details/bugs/etc'''<br />
| style="background-color: #efefef;" | '''Reporter & Mentor(s)'''<br />
| style="background-color: #efefef;" | '''Status'''<br />
|-<br />
| valign="top" |<br />
| valign="top" |Update T-bird Feed front-end to keep up with NetNewsWire et al.<br />
| valign="top" |keep it simple and minimal. <br />
| valign="top" |[[User:Sayrer|sayrer]]<br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" |Complete Skype-Integration for Thunderbird<br />
| valign="top" |(started in last year's SoC) <br />
| valign="top" |<br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" |Improve Calendar extension within Thunderbird<br />
| valign="top" |Better integration of Calendar extension within Thunderbird <br />
| valign="top" |[[User:Triona|Triona]] <br />
| valign="top" |05:44, 19 April 2006 (PDT)<br />
|-<br />
| valign="top" |<br />
| valign="top" |Tbird Address Book Improvements<br />
| valign="top" | Improve the address book of the thunderbird. The current address book is basically the same of the old Netscape, and it was created on an Internet without instant messaging and other stuffs. Also, it does not permits inter-operability with other programs and/or mobile devices (like cellular phones and handhelds).<br />
| valign="top" |[[User:Kyllercg|Kyller Gorgonio]]<br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" |Addressbook Backend Improvements<br />
| valign="top" |In Address Book, take the Outlook Backend, make it so that its not reliant on Outlook being default Mail Client and provide a UI to allow interfacing to it (i.e. user can select address books to view). At the same time update the import code so that it is also not reliant on Outlook being the default Mail Client. <br />
| valign="top" |-[[User:Standard8|Standard8]] bienvenu, dmose<br />
| valign="top" | 15:29, 21 April 2006 (PDT)<br />
|-<br />
| valign="top" |<br />
| valign="top" |Spam Filtering Improvements<br />
| valign="top" |More info at <br />
[http://wiki.mozilla.org/index.php?title=Thunderbird:SummerOfCode2006:SPAM Thunderbird SummerOfCode2006 - SPAM ]<br />
| valign="top" |mscott, bienvenu<br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" |Other tbird projects<br />
| valign="top" |More info at <br />
[http://wiki.mozilla.org/Thunderbird:SummerOfCode2006]<br />
| valign="top" |mscott, bienvenu<br />
| valign="top" |<br />
|-<br />
|}<br />
<br />
== Tools, Server Infrastructure, and Testing == <br />
<br />
{| border="1" cellpadding="3" width="100%" valign="top"<br />
|- align="center"<br />
| style="background-color: #efefef;" | '''ID'''<br />
| style="background-color: #efefef;" | '''Title'''<br />
| style="background-color: #efefef;" | '''Abstract links to details/bugs/etc'''<br />
| style="background-color: #efefef;" | '''Reporter & Mentor(s)'''<br />
| style="background-color: #efefef;" | '''Status'''<br />
|-<br />
| valign="top" |<br />
| valign="top" |Giving webdevelopers a better JavaScript debugging experience<br />
| valign="top" |Work to give webdevelopers better ways of debugging their JavaScript in Firefox.<br />
| valign="top" | Reporter: [[User:GijsKruitbosch|GijsKruitbosch]]<br />
Mentor: Robert Ginda & Mike Shaver<br />
| valign="top" |<br />
|-<br />
| valign="top" |<br />
| valign="top" |XUL editor plugin for [http://www.eclipse.org Eclipse]<br />
| valign="top" |Build a XUL editor plugin for [http://www.eclipse.org Eclipse] that leverages the XULRunner component and JS debugger from the [http://www.alphaworks.ibm.com/tech/ajaxtk Eclipse Ajax Toolkit Framework] to create a XUL UI development tool. <br />
| valign="top" |[[User:Beltzner|Beltzner]] & [[MDC:User:Benjamin Smedberg|bsmedberg]]<br />
| valign="top" |submitted 09:31, 17 April 2006 (PDT)<br />
|-<br />
|-<br />
| valign="top" |<br />
| valign="top" |UI improvements to DOM inspector<br />
| valign="top" |DOM Inspector is currently really tedious to use. Identify weak points and come up with solutions. This possibly should involve things like allowing the DOM inspector to work with print previews.<br />
| valign="top" | [[User:Ben|Ben]] [[User:Wakeless|Wakeless]] <br />
| valign="top" | submitted 18:06, 18 April 2006 (PDT) <br />
|-<br />
| valign="top" |<br />
| valign="top" |Multi-teired addons.mozilla.org <br />
| valign="top" |based on trust metrics and user experience [http://morgamic.com/2006/02/10/the-danger-of-mediocrity/ See morgamic's blog]<br />
| valign="top" |[[User:Cameron|Cameron]]<br />
| valign="top" | 20:58, 18 April 2006 (PDT)<br />
|-<br />
| valign="top" |<br />
| valign="top" | Firefox Test Harness Extension<br />
| valign="top" |Implement a test harness as an extension, able to be invoked from the command line and recording output to file or content. Possible models are FoxUnit, FIT, and xUnit. <br />
| valign="top" | [[User:Davel|Davel]]<br />
| valign="top" |17:31, 21 April 2006 (PDT)<br />
|-<br />
|}</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling/In_Page_Preview&diff=24353Feed Handling/In Page Preview2006-04-20T19:04:56Z<p>Ben: </p>
<hr />
<div>= Background =<br />
<br />
In [[Feed Handling/Type Determination]] the type sniffing of web feed documents was discussed. When a feed is discovered, its type is coerced to <code>application/vnd.mozilla.maybe.feed</code>. This is a type that not handled internally by Gecko. As a result, the "embedding" Firefox application must register that the docshell loading pages actually can handle it, using a special stream converter that handles the various actions associated with feeds.<br />
<br />
== Content Listeners ==<br />
<br />
The browser front end needs to tell the embedded docshells (one per tab) that they can all handle content in the <code>application/vnd.mozilla.maybe.feed</code> type. It does this by registering a "conversion" with the tabbrowser from <code>application/vnd.mozilla.maybe.feed</code> to <code>application/vnd.mozilla.xul+xml</code>. Each &lt;browser&gt; object in the tabbrowser has an implementation of <code>nsIURIContentListener</code> that is the final arbiter of what can and cannot be loaded in that docshell (since the docshell's own content listener consults its parent - the &lt;browser&gt;'s content listener). Once we register the conversion, when the browser's content listener is asked if that type can be handled, it returns that it can, but must be converted to <code>application/vnd.mozilla.xul+xml</code> first. <br />
<br />
What this causes is the URI Loader to create a stream converter between the two types. The stream converter handles producing the actual data that is rendered. We want this to be a preview page.<br />
<br />
== Stream Converter ==<br />
<br />
In <code>browser/components/feeds/src/FeedConverter.js</code> is an implementation of nsIStreamConverter. This converter remembers the supplied listener (which is the docshell that is going to receive and display the data) and then buffers the feed data. Once all the feed data is present, it parses it using the Feed Processor (see bug 325080) and then opens a channel to the XUL feed handler document. <br />
<br />
It sets the original URI of the feed handler XUL document to that of the feed itself, so that the appropriate URI shows in the location bar of the browser, and View source shows the source of the feed, not the XUL document.<br />
<br />
The parsed Feed Result is stored with the FeedResultService, since there is no direct way for the Stream Converter to communicate with the XUL page that is about to be loaded and so no way for the parsed feed to be sent to it. Using a singleton Feed Result Service means that when it loads, the XUL page can get at the content of the feed and show UI appropriately. <br />
<br />
=== Other Functions ===<br />
<br />
The Feed Converter actually does a few other things, like checking for default handlers that may override the display of the XUL page - such as a default web, desktop application or Live Bookmark handler. In the event that one exists, it performs that action rather than displaying the XUL page.</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling/Type_Determination&diff=24351Feed Handling/Type Determination2006-04-20T18:55:04Z<p>Ben: </p>
<hr />
<div>= Background =<br />
<br />
About a third of web feeds are served with an incorrect MIME type, e.g. text/html. In order to be able to correctly identify web feeds as feeds, parse and handle them correctly we need to resort to '''content sniffing'''. <br />
<br />
= Content Sniffing =<br />
<br />
Through bug 324985, the ability was added to necko to register content sniffers using the net-content-sniffers category entry. A contract id to a component implementing nsIContentSniffer is added. When any file is transferred, the content sniffer is invoked with the raw data, with the method <code>getMIMETypeFromContent</code>. It must look at the data and see if it can determine the type, regardless of what the channel thinks the type is.<br />
<br />
= Feeds and Content Sniffing =<br />
<br />
In <code>browser/components/feeds/src/nsFeedSniffer.cpp</code> is an implementation of nsIContentSniffer which (depending on the Content-Encoding) decompresses the data and then runs some basic tests against it looking for feed content. If it determines the data is a web feed, it sets the content type to <code>application/vnd.mozilla.maybe.feed</code>, so that the document will be handled specially elsewhere in the system.</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling&diff=24350Feed Handling2006-04-20T18:49:48Z<p>Ben: /* Design Docs */</p>
<hr />
<div>= Background =<br />
<br />
The feed handling capabilities of Firefox 1.x are limited to locating feeds advertised by sites in <link> tags and offering to add them as "Live Bookmarks". This is useful to some but not all, as there are many other specialized RSS aggregators, client applications and web services. These are not served by this UI. Also, clicking on links to feeds on web pages usually results in garbage (raw, unstyled XML) being displayed. <br />
<br />
= Goals =<br />
<br />
Make it easy to subscribe to sites so that users can receive updates to them in their favorite reader. Ensure that clicking on links to feeds shows something meaningful. <br />
<br />
= 2.0 User Interface Requirements =<br />
<br />
* [[Feed Handling/Viewing|Viewing]]<br />
* [[Feed Handling/Subscribing|Subscribing]]<br />
* [[Feed Handling/Handlers|Handlers]]<br />
* [[Feed Handling/Configuration|Configuration]]<br />
<br />
= Design Docs =<br />
<br />
* [[Feed Handling/Type Determination]]<br />
* [[Feed Handling/In Page Preview]]<br />
* [[Feed Handling/Default Feed Reader]]<br />
* [[Feed Handling/Determining The Handler]]<br />
* [[Feed Handling/Web Handler Registration]]<br />
<br />
= Bugs =<br />
<br />
This cluster of features is tracked in bugzilla through [[https://bugzilla.mozilla.org/show_bug.cgi?id=325081 bug 325081]]<br />
<br />
= 3.0 Features = <br />
<br />
Extend this UI model to all files for which an automated download action is not configured. Include an "Open With..." context menu item on all file links. <br />
<br />
= Links =<br />
<br />
* [[Feed Handling:Pretty Printing]]<br />
* [[File Handling]] - long term overall architectural wishlist<br />
* '''OBSOLETE''' [[Feed Handling:User Interface]] - User Interface design for proposed feature.</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling&diff=24349Feed Handling2006-04-20T18:49:24Z<p>Ben: /* Design Docs */</p>
<hr />
<div>= Background =<br />
<br />
The feed handling capabilities of Firefox 1.x are limited to locating feeds advertised by sites in <link> tags and offering to add them as "Live Bookmarks". This is useful to some but not all, as there are many other specialized RSS aggregators, client applications and web services. These are not served by this UI. Also, clicking on links to feeds on web pages usually results in garbage (raw, unstyled XML) being displayed. <br />
<br />
= Goals =<br />
<br />
Make it easy to subscribe to sites so that users can receive updates to them in their favorite reader. Ensure that clicking on links to feeds shows something meaningful. <br />
<br />
= 2.0 User Interface Requirements =<br />
<br />
* [[Feed Handling/Viewing|Viewing]]<br />
* [[Feed Handling/Subscribing|Subscribing]]<br />
* [[Feed Handling/Handlers|Handlers]]<br />
* [[Feed Handling/Configuration|Configuration]]<br />
<br />
= Design Docs =<br />
<br />
* [[Feed Handling/In Page Preview]]<br />
* [[Feed Handling/Default Feed Reader]]<br />
* [[Feed Handling/Determining The Handler]]<br />
* [[Feed Handling/Web Handler Registration]]<br />
<br />
= Bugs =<br />
<br />
This cluster of features is tracked in bugzilla through [[https://bugzilla.mozilla.org/show_bug.cgi?id=325081 bug 325081]]<br />
<br />
= 3.0 Features = <br />
<br />
Extend this UI model to all files for which an automated download action is not configured. Include an "Open With..." context menu item on all file links. <br />
<br />
= Links =<br />
<br />
* [[Feed Handling:Pretty Printing]]<br />
* [[File Handling]] - long term overall architectural wishlist<br />
* '''OBSOLETE''' [[Feed Handling:User Interface]] - User Interface design for proposed feature.</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling&diff=24348Feed Handling2006-04-20T18:48:27Z<p>Ben: /* Design Docs */</p>
<hr />
<div>= Background =<br />
<br />
The feed handling capabilities of Firefox 1.x are limited to locating feeds advertised by sites in <link> tags and offering to add them as "Live Bookmarks". This is useful to some but not all, as there are many other specialized RSS aggregators, client applications and web services. These are not served by this UI. Also, clicking on links to feeds on web pages usually results in garbage (raw, unstyled XML) being displayed. <br />
<br />
= Goals =<br />
<br />
Make it easy to subscribe to sites so that users can receive updates to them in their favorite reader. Ensure that clicking on links to feeds shows something meaningful. <br />
<br />
= 2.0 User Interface Requirements =<br />
<br />
* [[Feed Handling/Viewing|Viewing]]<br />
* [[Feed Handling/Subscribing|Subscribing]]<br />
* [[Feed Handling/Handlers|Handlers]]<br />
* [[Feed Handling/Configuration|Configuration]]<br />
<br />
= Design Docs =<br />
<br />
* [[Feed Handling/Default Feed Reader]]<br />
* [[Feed Handling/Determining The Handler]]<br />
* [[Feed Handling/Web Handler Registration]]<br />
<br />
= Bugs =<br />
<br />
This cluster of features is tracked in bugzilla through [[https://bugzilla.mozilla.org/show_bug.cgi?id=325081 bug 325081]]<br />
<br />
= 3.0 Features = <br />
<br />
Extend this UI model to all files for which an automated download action is not configured. Include an "Open With..." context menu item on all file links. <br />
<br />
= Links =<br />
<br />
* [[Feed Handling:Pretty Printing]]<br />
* [[File Handling]] - long term overall architectural wishlist<br />
* '''OBSOLETE''' [[Feed Handling:User Interface]] - User Interface design for proposed feature.</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling&diff=24347Feed Handling2006-04-20T18:47:53Z<p>Ben: /* Bugs */</p>
<hr />
<div>= Background =<br />
<br />
The feed handling capabilities of Firefox 1.x are limited to locating feeds advertised by sites in <link> tags and offering to add them as "Live Bookmarks". This is useful to some but not all, as there are many other specialized RSS aggregators, client applications and web services. These are not served by this UI. Also, clicking on links to feeds on web pages usually results in garbage (raw, unstyled XML) being displayed. <br />
<br />
= Goals =<br />
<br />
Make it easy to subscribe to sites so that users can receive updates to them in their favorite reader. Ensure that clicking on links to feeds shows something meaningful. <br />
<br />
= 2.0 User Interface Requirements =<br />
<br />
* [[Feed Handling/Viewing|Viewing]]<br />
* [[Feed Handling/Subscribing|Subscribing]]<br />
* [[Feed Handling/Handlers|Handlers]]<br />
* [[Feed Handling/Configuration|Configuration]]<br />
<br />
= Design Docs =<br />
<br />
* [[Feed Handling/Default Feed Reader]]<br />
<br />
= Bugs =<br />
<br />
This cluster of features is tracked in bugzilla through [[https://bugzilla.mozilla.org/show_bug.cgi?id=325081 bug 325081]]<br />
<br />
= 3.0 Features = <br />
<br />
Extend this UI model to all files for which an automated download action is not configured. Include an "Open With..." context menu item on all file links. <br />
<br />
= Links =<br />
<br />
* [[Feed Handling:Pretty Printing]]<br />
* [[File Handling]] - long term overall architectural wishlist<br />
* '''OBSOLETE''' [[Feed Handling:User Interface]] - User Interface design for proposed feature.</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling/Default_Feed_Reader&diff=24346Feed Handling/Default Feed Reader2006-04-20T18:47:08Z<p>Ben: </p>
<hr />
<div>= Background =<br />
<br />
Applications register themselves as the "default" feed reader by claiming the "feed" protocol in the system's protocol registry. <br />
<br />
In general, Firefox should not touch this setting, '''unless''':<br />
<br />
* An automatic action is configured for clicking on feeds AND:<br />
* That automatic action is to subscribe in either a web reader OR Live Bookmarks<br />
<br />
e.g. consider the following scenarios:<br />
<br />
== Scenario 1 ==<br />
<br />
User visits a feed document and is shown the pretty print page and presented with the choice to subscribe. They subscribe with a reader, but do not select the "never ask again" checkbox. <br />
<br />
'''feed: protocol system handler:''' claimed by Firefox.<br />
<br />
== Scenario 2 ==<br />
<br />
User visits a feed document and is shown the pretty print page and presented with the choice to subscribe. They subscribe with a desktop application reader, and select the "never ask again" checkbox.<br />
<br />
'''feed: protocol system handler:''' set to desktop application.<br />
<br />
== Scenario 3 ==<br />
<br />
User visits a feed document and is shown the pretty print page and presented with the choice to subscribe. They susbcribe with Bloglines or Live Bookmarks, and select the "never ask again" checkbox.<br />
<br />
'''feed: protocol system handler:''' claimed by Firefox.<br />
<br />
== Other Application Case Studies ==<br />
<br />
User is sent a link via AIM to feed content, e.g.:<br />
<br />
http://www.foo.com/index.rdf<br />
feed://www.foo.com/atom.xml<br />
etc...<br />
<br />
If they always use their desktop application reader to open feeds, and Firefox is configured not ask every time, then clicking either of these links should take the user straight to that application. <br />
<br />
If the user is asked every time, or a web handler or Live Bookmarks are used as the automatic action, Firefox should open either of these links and either present the choice, or subscribe with the web reader or Live Bookmarks.<br />
<br />
This makes sure that just because the user once installed a feed reader, they still have the opportunity to subscribe to links in their favorite web reader, if applicable, even if they stop using the desktop application feed reader. <br />
<br />
This works because Firefox handles http:// protocol URIs typically when set as default browser, and should claim feed:// according to the heuristics above.</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling&diff=24345Feed Handling2006-04-20T18:38:43Z<p>Ben: </p>
<hr />
<div>= Background =<br />
<br />
The feed handling capabilities of Firefox 1.x are limited to locating feeds advertised by sites in <link> tags and offering to add them as "Live Bookmarks". This is useful to some but not all, as there are many other specialized RSS aggregators, client applications and web services. These are not served by this UI. Also, clicking on links to feeds on web pages usually results in garbage (raw, unstyled XML) being displayed. <br />
<br />
= Goals =<br />
<br />
Make it easy to subscribe to sites so that users can receive updates to them in their favorite reader. Ensure that clicking on links to feeds shows something meaningful. <br />
<br />
= 2.0 User Interface Requirements =<br />
<br />
* [[Feed Handling/Viewing|Viewing]]<br />
* [[Feed Handling/Subscribing|Subscribing]]<br />
* [[Feed Handling/Handlers|Handlers]]<br />
* [[Feed Handling/Configuration|Configuration]]<br />
<br />
= Design Docs =<br />
<br />
* [[Feed Handling/Default Feed Reader]]<br />
<br />
== Bugs ==<br />
<br />
This cluster of features is tracked in bugzilla through [[https://bugzilla.mozilla.org/show_bug.cgi?id=325081 bug 325081]]<br />
<br />
= 3.0 Features = <br />
<br />
Extend this UI model to all files for which an automated download action is not configured. Include an "Open With..." context menu item on all file links. <br />
<br />
= Links =<br />
<br />
* [[Feed Handling:Pretty Printing]]<br />
* [[File Handling]] - long term overall architectural wishlist<br />
* '''OBSOLETE''' [[Feed Handling:User Interface]] - User Interface design for proposed feature.</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling&diff=24344Feed Handling2006-04-20T18:38:14Z<p>Ben: </p>
<hr />
<div>= Background =<br />
<br />
The feed handling capabilities of Firefox 1.x are limited to locating feeds advertised by sites in <link> tags and offering to add them as "Live Bookmarks". This is useful to some but not all, as there are many other specialized RSS aggregators, client applications and web services. These are not served by this UI. Also, clicking on links to feeds on web pages usually results in garbage (raw, unstyled XML) being displayed. <br />
<br />
= Goals =<br />
<br />
Make it easy to subscribe to sites so that users can receive updates to them in their favorite reader. Ensure that clicking on links to feeds shows something meaningful. <br />
<br />
= 2.0 User Interface Requirements =<br />
<br />
* [[Feed Handling/Viewing|Viewing]]<br />
* [[Feed Handling/Subscribing|Subscribing]]<br />
* [[Feed Handling/Handlers|Handlers]]<br />
* [[Feed Handling/Configuration|Configuration]]<br />
<br />
== Bugs ==<br />
<br />
This cluster of features is tracked in bugzilla through [[https://bugzilla.mozilla.org/show_bug.cgi?id=325081 bug 325081]]<br />
<br />
= 3.0 Features = <br />
<br />
Extend this UI model to all files for which an automated download action is not configured. Include an "Open With..." context menu item on all file links. <br />
<br />
= Links =<br />
<br />
* [[Feed Handling:Pretty Printing]]<br />
* [[File Handling]] - long term overall architectural wishlist<br />
* '''OBSOLETE''' [[Feed Handling:User Interface]] - User Interface design for proposed feature.</div>Benhttps://wiki.mozilla.org/index.php?title=Community:SummerOfCode06&diff=24218Community:SummerOfCode062006-04-19T01:07:14Z<p>Ben: </p>
<hr />
<div>Add your ideas here for Projects for the Google [http://code.google.com/summerofcode.html Summer of Code 2006]<br />
<br />
We will be reviewing ideas posted here the week of 4/17 and putting together proposals the following week. Please note if you are interested in being a Mentor for one of these projects, or suggest someoneone who could serve as mentor. Mentor requirements are here - http://code.google.com/soc/mentorfaq.html<br />
<br />
Thanks<br />
<br />
Chris Hofmann<br />
<br />
<br />
- Complete Torrent-Integration: [http://firepuddle.mozdev.org/] (started in last year's SoC)<br />
<br />
- Complete Skype-Integration for Thunderbird (started in last year's SoC)<br />
<br />
- Work on Venkman to bring it some good updates/bugfixes/new features. Maybe work to do a 1.0 release? (https://bugzilla.mozilla.org/show_bug.cgi?id=141097)<br />
<br />
- XUL editor plugin for [http://www.eclipse.org Eclipse] that leverages the XULRunner component and JS debugger from the [http://www.alphaworks.ibm.com/tech/ajaxtk Eclipse Ajax Toolkit Framework] to create a XUL UI development tool. ([[User:Beltzner|Beltzner]] 09:31, 17 April 2006 (PDT))<br />
<br />
- "Advance the XUL platform" projects (to be defined) e.g. implement <menugroup>, <br />
fix menu bugs, etc. [[User:Ben|Ben]] 10:38, 17 April 2006 (PDT)<br />
<br />
- Multi-threaded (accelerated) Download Manager <br />
([https://bugzilla.mozilla.org/show_bug.cgi?id=40106]) with possible [http://www.metalinker.org Metalink] (Mirrors/P2P/checksums) support.<br />
<br />
- Automatically verifying MD5/SHA1 hashes, and optionally PGP signatures, of downloads. When you have downloaded a file, the download manager should try to download filename.md5, filename.sha, filename.asc and run the associated tool on the downloaded file to verify. Mark the entry as red or something in the download manager, and change the Open link to Info link, if the file did not verify. The Info link would open a page explaining what is wrong. It could perhaps have a open or preferably just delete file button. More difficult case would be to get the md5/sha1 signature if it is just embedded on the page where the download link is, but you could try some heuristics...<br />
<br />
- UI improvements to DOM inspector... it's currently really tedious to use. [[User:Ben|Ben]] 18:06, 18 April 2006 (PDT)<br />
<br />
- Enhanced Page Info window (need spec)... I'm willing to mentor this. [[User:Ben|Ben]] 18:07, 18 April 2006 (PDT)</div>Benhttps://wiki.mozilla.org/index.php?title=Community:SummerOfCode06&diff=24217Community:SummerOfCode062006-04-19T01:06:19Z<p>Ben: </p>
<hr />
<div>Add your ideas here for Projects for the Google [http://code.google.com/summerofcode.html Summer of Code 2006]<br />
<br />
We will be reviewing ideas posted here the week of 4/17 and putting together proposals the following week. Please note if you are interested in being a Mentor for one of these projects, or suggest someoneone who could serve as mentor. Mentor requirements are here - http://code.google.com/soc/mentorfaq.html<br />
<br />
Thanks<br />
<br />
Chris Hofmann<br />
<br />
<br />
- Complete Torrent-Integration: [http://firepuddle.mozdev.org/] (started in last year's SoC)<br />
<br />
- Complete Skype-Integration for Thunderbird (started in last year's SoC)<br />
<br />
- Work on Venkman to bring it some good updates/bugfixes/new features. Maybe work to do a 1.0 release? (https://bugzilla.mozilla.org/show_bug.cgi?id=141097)<br />
<br />
- XUL editor plugin for [http://www.eclipse.org Eclipse] that leverages the XULRunner component and JS debugger from the [http://www.alphaworks.ibm.com/tech/ajaxtk Eclipse Ajax Toolkit Framework] to create a XUL UI development tool. ([[User:Beltzner|Beltzner]] 09:31, 17 April 2006 (PDT))<br />
<br />
- "Advance the XUL platform" projects (to be defined) e.g. implement <menugroup>, <br />
fix menu bugs, etc. [[User:Ben|Ben]] 10:38, 17 April 2006 (PDT)<br />
<br />
- Multi-threaded (accelerated) Download Manager <br />
([https://bugzilla.mozilla.org/show_bug.cgi?id=40106]) with possible [http://www.metalinker.org Metalink] (Mirrors/P2P/checksums) support.<br />
<br />
- Automatically verifying MD5/SHA1 hashes, and optionally PGP signatures, of downloads. When you have downloaded a file, the download manager should try to download filename.md5, filename.sha, filename.asc and run the associated tool on the downloaded file to verify. Mark the entry as red or something in the download manager, and change the Open link to Info link, if the file did not verify. The Info link would open a page explaining what is wrong. It could perhaps have a open or preferably just delete file button. More difficult case would be to get the md5/sha1 signature if it is just embedded on the page where the download link is, but you could try some heuristics...<br />
<br />
- UI improvements to DOM inspector... it's currently really tedious to use. [[User:Ben|Ben]] 18:06, 18 April 2006 (PDT)</div>Benhttps://wiki.mozilla.org/index.php?title=Community:SummerOfCode06&diff=24085Community:SummerOfCode062006-04-17T17:38:15Z<p>Ben: </p>
<hr />
<div>Add your ideas here for Projects for the Google [http://code.google.com/summerofcode.html Summer of Code 2006]<br />
<br />
- Complete Torrent-Integration: [http://firepuddle.mozdev.org/] (started in last year's SoC)<br />
<br />
- Complete Skype-Integration for Thunderbird (started in last year's SoC)<br />
<br />
- Work on Venkman to bring it some good updates/bugfixes/new features. Maybe work to do a 1.0 release? (https://bugzilla.mozilla.org/show_bug.cgi?id=141097)<br />
<br />
- XUL editor plugin for [http://www.eclipse.org Eclipse] that leverages the XULRunner component and JS debugger from the [http://www.alphaworks.ibm.com/tech/ajaxtk Eclipse Ajax Toolkit Framework] to create a XUL UI development tool. ([[User:Beltzner|Beltzner]] 09:31, 17 April 2006 (PDT))<br />
<br />
- "Advance the XUL platform" projects (to be defined) e.g. implement <menugroup>, fix menu bugs, etc. [[User:Ben|Ben]] 10:38, 17 April 2006 (PDT)</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling&diff=23884Feed Handling2006-04-12T20:30:14Z<p>Ben: </p>
<hr />
<div>= Background =<br />
<br />
The feed handling capabilities of Firefox 1.x are limited to locating feeds advertised by sites in <link> tags and offering to add them as "Live Bookmarks". This is useful to some but not all, as there are many other specialized RSS aggregators, client applications and web services. These are not served by this UI. Also, clicking on links to feeds on web pages usually results in garbage (raw, unstyled XML) being displayed. <br />
<br />
= Goals =<br />
<br />
Make it easy to subscribe to sites so that users can receive updates to them in their favorite reader. Ensure that clicking on links to feeds shows something meaningful. <br />
<br />
= 2.0 Requirements =<br />
<br />
* [[Feed Handling/Viewing|Viewing]]<br />
* [[Feed Handling/Subscribing|Subscribing]]<br />
* [[Feed Handling/Handlers|Handlers]]<br />
* [[Feed Handling/Configuration|Configuration]]<br />
<br />
== Bugs ==<br />
<br />
This cluster of features is tracked in bugzilla through [[https://bugzilla.mozilla.org/show_bug.cgi?id=325081 bug 325081]]<br />
<br />
= 3.0 Features = <br />
<br />
Extend this UI model to all files for which an automated download action is not configured. Include an "Open With..." context menu item on all file links. <br />
<br />
= Links =<br />
<br />
* [[Feed Handling:Pretty Printing]]<br />
* [[File Handling]] - long term overall architectural wishlist<br />
* '''OBSOLETE''' [[Feed Handling:User Interface]] - User Interface design for proposed feature.</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling/Configuration&diff=23883Feed Handling/Configuration2006-04-12T20:29:42Z<p>Ben: </p>
<hr />
<div>TBD.</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling/Handlers&diff=23882Feed Handling/Handlers2006-04-12T20:29:02Z<p>Ben: /* Registering Handlers */</p>
<hr />
<div>= Handlers =<br />
<br />
There are three types of handler:<br />
<br />
* native client application handlers (e.g. Mozilla Thunderbird)<br />
* web handlers (Bloglines, Google Reader, etc)<br />
* Firefox Live Bookmarks<br />
<br />
== Picking a Default ==<br />
<br />
When we show the Subscribe view, it is important to select a good default handler, since feeds may or may not be a new concept to the user.<br />
<br />
There are possibly heuristics here but I'm not yet sure what they are. Ideas welcome. In the interim we can probably pick the first one.<br />
<br />
== Registering Handlers ==<br />
<br />
We can show the default client handler on the system for handling various feed types or the feed protocol.<br />
<br />
As for web handlers, we will want to store a list somewhere, and expose a web API that allows a website to register itself as an alternative. This should be either through a script call or a <link> tag.<br />
<br />
Discussion: [http://groups.google.com/group/mozilla.dev.platform/browse_thread/thread/ca4504a17217fc86/a5beb4d0f3498e17 mozilla.dev.platform]</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling/Handlers&diff=23881Feed Handling/Handlers2006-04-12T20:28:52Z<p>Ben: /* Registering Handlers */</p>
<hr />
<div>= Handlers =<br />
<br />
There are three types of handler:<br />
<br />
* native client application handlers (e.g. Mozilla Thunderbird)<br />
* web handlers (Bloglines, Google Reader, etc)<br />
* Firefox Live Bookmarks<br />
<br />
== Picking a Default ==<br />
<br />
When we show the Subscribe view, it is important to select a good default handler, since feeds may or may not be a new concept to the user.<br />
<br />
There are possibly heuristics here but I'm not yet sure what they are. Ideas welcome. In the interim we can probably pick the first one.<br />
<br />
== Registering Handlers ==<br />
<br />
We can show the default client handler on the system for handling various feed types or the feed protocol.<br />
<br />
As for web handlers, we will want to store a list somewhere, and expose a web API that allows a website to register itself as an alternative. This should be either through a script call or a <link> tag.<br />
<br />
Discussion: [[http://groups.google.com/group/mozilla.dev.platform/browse_thread/thread/ca4504a17217fc86/a5beb4d0f3498e17 mozilla.dev.platform]]</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling/Handlers&diff=23880Feed Handling/Handlers2006-04-12T20:28:42Z<p>Ben: /* Registering Handlers */</p>
<hr />
<div>= Handlers =<br />
<br />
There are three types of handler:<br />
<br />
* native client application handlers (e.g. Mozilla Thunderbird)<br />
* web handlers (Bloglines, Google Reader, etc)<br />
* Firefox Live Bookmarks<br />
<br />
== Picking a Default ==<br />
<br />
When we show the Subscribe view, it is important to select a good default handler, since feeds may or may not be a new concept to the user.<br />
<br />
There are possibly heuristics here but I'm not yet sure what they are. Ideas welcome. In the interim we can probably pick the first one.<br />
<br />
== Registering Handlers ==<br />
<br />
We can show the default client handler on the system for handling various feed types or the feed protocol.<br />
<br />
As for web handlers, we will want to store a list somewhere, and expose a web API that allows a website to register itself as an alternative. This should be either through a script call or a <link> tag.<br />
<br />
Discussion: [[http://groups.google.com/group/mozilla.dev.platform/browse_thread/thread/ca4504a17217fc86/a5beb4d0f3498e17|mozilla.dev.platform]]</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling/Handlers&diff=23875Feed Handling/Handlers2006-04-12T19:54:17Z<p>Ben: </p>
<hr />
<div>= Handlers =<br />
<br />
There are three types of handler:<br />
<br />
* native client application handlers (e.g. Mozilla Thunderbird)<br />
* web handlers (Bloglines, Google Reader, etc)<br />
* Firefox Live Bookmarks<br />
<br />
== Picking a Default ==<br />
<br />
When we show the Subscribe view, it is important to select a good default handler, since feeds may or may not be a new concept to the user.<br />
<br />
There are possibly heuristics here but I'm not yet sure what they are. Ideas welcome. In the interim we can probably pick the first one.<br />
<br />
== Registering Handlers ==<br />
<br />
We can show the default client handler on the system for handling various feed types or the feed protocol.<br />
<br />
As for web handlers, we will want to store a list somewhere, and expose a web API that allows a website to register itself as an alternative. This should be either through a script call or a <link> tag.</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling/Subscribing&diff=23874Feed Handling/Subscribing2006-04-12T19:47:27Z<p>Ben: </p>
<hr />
<div>= Subscribing =<br />
<br />
Users can subscribe to feeds using their favorite reader.<br />
<br />
See [[Feed Handling/Viewing|Viewing]] for details on the in-page subscription experience.<br />
<br />
== Subscribe Button ==<br />
<br />
The Location bar shows a "Subscribe" button when the current page has feed(s) available for subscription. <br />
<br />
The first time the user clicks on the button, the preview page is shown with subscription options expanded. They get the option of remembering their decision for the future. If they do this, clicking the button will subscribe them directly with their preferred reader without showing the preview page, unless there is more than one feed available.<br />
<br />
== Subscribe Menu Item ==<br />
<br />
??? Subscribe menu item in Tools menu under Web Search? (sec508?)</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling/Subscribing&diff=23873Feed Handling/Subscribing2006-04-12T19:47:14Z<p>Ben: </p>
<hr />
<div>= Subscribing =<br />
<br />
Users can subscribe to feeds using their favorite reader.<br />
<br />
See [[Feed Handling/Viewing|Viewing]] for details on the in-page subscription experience.<br />
<br />
== Subscribe Button ==<br />
<br />
The Location bar shows a "Subscribe" button when the current page has feed(s) available for subscription. <br />
<br />
The first time the user clicks on the button, the preview page is shown with subscription options expanded. They get the option of remembering their decision for the future. If they do this, clicking the button will subscribe them directly with their preferred reader without showing the preview page, unless there is more than one feed available.<br />
<br />
== Subscribe Menu Item ==<br />
<br />
??? Subscribe menu item in Tools menu under Web Search?</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling/Viewing&diff=23872Feed Handling/Viewing2006-04-12T19:41:09Z<p>Ben: </p>
<hr />
<div>= In Page Viewing =<br />
<br />
== Workflow ==<br />
<br />
When the user clicks on a link to Feed content, a "pretty printed" page is displayed that shows the user some content from the feed and offers the ability to subscribe with their favorite reader. <br />
<br />
When the user clicks on the "Subscribe" button in the browser toolbar, the user gets the opportunity to subscribe to the feed in their favorite reader. If no auto-handling action is selected, the same preview page as shown for link clicks is shown, with the UI to select a reader to use to subscribe.<br />
<br />
== In Page View ==<br />
<br />
When the user clicks on a link to feed content they have not subscribed to:<br />
<br />
<pre><br />
+----------------------------------------------------+<br />
| This is a web feed blah blah subscribe... |<br />
| |<br />
| + Subscribe to this feed |<br />
|----------------------------------------------------|<br />
| <preview of content> |<br />
| |<br />
</pre><br />
<br />
When the user clicks subscribe, or clicks on the subscribe button in the location bar:<br />
<br />
<pre><br />
+----------------------------------------------------+<br />
| This is a web feed blah blah subscribe... |<br />
| |<br />
| Subscribe with: |<br />
| (*) @ Mozilla Thunderbird ( Change... ) |<br />
| ( ) @ Bloglines (www.bloglines.com)( Change... ) |<br />
| ( ) @ Firefox Live Bookmarks _More_info_ |<br />
| |<br />
| [ ] Subscribe me with this reader automatically |<br />
| from now on. |<br />
| |<br />
| (( Subscribe )) ( Don't Subscribe ) |<br />
|----------------------------------------------------|<br />
| <preview of content> |<br />
| |<br />
</pre><br />
<br />
Clicking Subscribe adds the feed in the specified reader. Depending on the reader, this may result in another page navigation, away from the feed. That's OK. If there is no navigation, the box will disappear. <br />
<br />
When the user visits the feed again either by clicking on a link or by clicking the subscribe button, the informational text and subscribe options are not presented since the user is already subscribed.<br />
<br />
== Handling Many Feeds ==<br />
<br />
When a page offers several distinct feeds for subscription (e.g. CNN.com's "Top Stories" and "Recent Stories", the preview page is shown regardless of the auto-handling option, with the list of available feeds shown to the right:<br />
<br />
<pre><br />
+----------------------------------------------------+<br />
| This is a web feed blah blah ... Other Feeds: |<br />
| _Recent_Stories_|<br />
| + Subscribe to this feed |<br />
|----------------------------------------------------|<br />
| <preview of content> |<br />
| |<br />
</pre></div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling&diff=23871Feed Handling2006-04-12T19:20:38Z<p>Ben: /* 2.0 Requirements */</p>
<hr />
<div>= Background =<br />
<br />
The feed handling capabilities of Firefox 1.x are limited to locating feeds advertised by sites in <link> tags and offering to add them as "Live Bookmarks". This is useful to some but not all, as there are many other specialized RSS aggregators, client applications and web services. These are not served by this UI. Also, clicking on links to feeds on web pages usually results in garbage (raw, unstyled XML) being displayed. <br />
<br />
= Goals =<br />
<br />
Make it easy to subscribe to sites so that users can receive updates to them in their favorite reader. Ensure that clicking on links to feeds shows something meaningful. <br />
<br />
= 2.0 Requirements =<br />
<br />
* [[Feed Handling/Viewing|Viewing]]<br />
* [[Feed Handling/Subscribing|Subscribing]]<br />
* [[Feed Handling/Handlers|Handlers]]<br />
* [[Feed Handling/Configuration|Configuration]]<br />
<br />
== Subscribe Button ==<br />
<br />
A subscribe button appears in the navigation cluster when a feed is discovered attached to a page. Clicking the subscribe button subscribes the user to the feed in their selected feed reader. If no default feed reader is present, the user is shown a selection page. (See below). A right click on this button shows a menu that includes an "Open With..." link for choosing a handler other than the default. <br />
<br />
== Content Handling ==<br />
<br />
When the user clicks on a link to a feed, instead of showing raw XML, a page is shown explaining that the user can subscribe to future updates to this site. They must select a reader and choose subscribe. Clicking Subscribe subscribes them in their reader of choice and takes them to the reader, or back to the page that they clicked on the link from. <br />
<br />
This page is also displayed when the Subscribe Button is clicked and there is no default feed reader configured, or the user has selected to be asked every time before subscribing. In this condition, the page also displays a checkbox that indicates that the user must be asked how to handle the feed before subscribing. <br />
<br />
The user is always asked how to proceed when a link is clicked on, or a feed URI entered in the location bar. <br />
<br />
Optionally, the handling page may offer the ability to see some highlights from the feed (a "preview") but this should not dominate. <br />
<br />
For the engineering discussion about how this feature is to be implemented, see [[Feed Handling:Pretty Printing]]<br />
<br />
== Web Service Registration ==<br />
<br />
There needs to be a way for web sites to add themselves to the list of possible handlers. We should expose a method for allowing sites to register for specific content types. There are two actions - view and subscribe. <br />
<br />
== Preferences ==<br />
<br />
Extend the existing download actions manager to contain a simple (default) UI for configuring the handling of some common types. <br />
<br />
== Design Documents ==<br />
<br />
== Bugs ==<br />
<br />
This cluster of features is tracked in bugzilla through [[https://bugzilla.mozilla.org/show_bug.cgi?id=325081 bug 325081]]<br />
<br />
= 3.0 Features = <br />
<br />
Extend this UI model to all files for which an automated download action is not configured. Include an "Open With..." context menu item on all file links. <br />
<br />
= Links =<br />
<br />
* [[File Handling]] - long term overall architectural wishlist<br />
* '''OBSOLETE''' [[Feed Handling:User Interface]] - User Interface design for proposed feature.</div>Benhttps://wiki.mozilla.org/index.php?title=Feed_Handling&diff=23870Feed Handling2006-04-12T19:20:26Z<p>Ben: /* 2.0 Features */</p>
<hr />
<div>= Background =<br />
<br />
The feed handling capabilities of Firefox 1.x are limited to locating feeds advertised by sites in <link> tags and offering to add them as "Live Bookmarks". This is useful to some but not all, as there are many other specialized RSS aggregators, client applications and web services. These are not served by this UI. Also, clicking on links to feeds on web pages usually results in garbage (raw, unstyled XML) being displayed. <br />
<br />
= Goals =<br />
<br />
Make it easy to subscribe to sites so that users can receive updates to them in their favorite reader. Ensure that clicking on links to feeds shows something meaningful. <br />
<br />
= 2.0 Requirements =<br />
<br />
* [[Feed Handling/Viewing Viewing]]<br />
* [[Feed Handling/Subscribing Subscribing]]<br />
* [[Feed Handling/Handlers Handlers]]<br />
* [[Feed Handling/Configuration Configuration]]<br />
<br />
== Subscribe Button ==<br />
<br />
A subscribe button appears in the navigation cluster when a feed is discovered attached to a page. Clicking the subscribe button subscribes the user to the feed in their selected feed reader. If no default feed reader is present, the user is shown a selection page. (See below). A right click on this button shows a menu that includes an "Open With..." link for choosing a handler other than the default. <br />
<br />
== Content Handling ==<br />
<br />
When the user clicks on a link to a feed, instead of showing raw XML, a page is shown explaining that the user can subscribe to future updates to this site. They must select a reader and choose subscribe. Clicking Subscribe subscribes them in their reader of choice and takes them to the reader, or back to the page that they clicked on the link from. <br />
<br />
This page is also displayed when the Subscribe Button is clicked and there is no default feed reader configured, or the user has selected to be asked every time before subscribing. In this condition, the page also displays a checkbox that indicates that the user must be asked how to handle the feed before subscribing. <br />
<br />
The user is always asked how to proceed when a link is clicked on, or a feed URI entered in the location bar. <br />
<br />
Optionally, the handling page may offer the ability to see some highlights from the feed (a "preview") but this should not dominate. <br />
<br />
For the engineering discussion about how this feature is to be implemented, see [[Feed Handling:Pretty Printing]]<br />
<br />
== Web Service Registration ==<br />
<br />
There needs to be a way for web sites to add themselves to the list of possible handlers. We should expose a method for allowing sites to register for specific content types. There are two actions - view and subscribe. <br />
<br />
== Preferences ==<br />
<br />
Extend the existing download actions manager to contain a simple (default) UI for configuring the handling of some common types. <br />
<br />
== Design Documents ==<br />
<br />
== Bugs ==<br />
<br />
This cluster of features is tracked in bugzilla through [[https://bugzilla.mozilla.org/show_bug.cgi?id=325081 bug 325081]]<br />
<br />
= 3.0 Features = <br />
<br />
Extend this UI model to all files for which an automated download action is not configured. Include an "Open With..." context menu item on all file links. <br />
<br />
= Links =<br />
<br />
* [[File Handling]] - long term overall architectural wishlist<br />
* '''OBSOLETE''' [[Feed Handling:User Interface]] - User Interface design for proposed feature.</div>Benhttps://wiki.mozilla.org/index.php?title=Firefox2/StatusMeetings/2006-04-11&diff=23755Firefox2/StatusMeetings/2006-04-112006-04-11T17:55:09Z<p>Ben: /* Feeds: UI */</p>
<hr />
<div><small>[[Firefox2/StatusMeetings/2006-04-04|<< previous week]] | [[Firefox2/StatusMeetings|index]] | [[Firefox2/StatusMeetings/2006-04-18|next week>>]]</small><br />
<br />
'''Meeting Details'''<br />
* 11:00am PDT (18:00 UTC)<br />
* Mozilla HQ, 1st floor conference table<br />
* +1 866 216 2181<br />
* join irc.mozilla.org #bonecho for attendance taking<br />
<br />
= In Attendance =<br />
<br />
= Agenda =<br />
# Bon Echo Alpha 2 (Tracking & Status)<br />
# Development Roundtable<br />
# Any other business<br />
<br />
= Bon Echo Alpha 2 =<br />
* proposed release for May 9th, code freeze for May 5th<br />
* tracking [[Firefox2/Requirements|against requirements]]<br />
* ''shaver/brendan to discuss what platform pieces are being targetted''<br />
* ''any other release-related issues to start tracking? update channels?''<br />
<br />
= Developer Roundtable =<br />
Add notes about work being actively done at the moment, areas where you'll need help/review, or things which the rest of the team should be made aware of. Leaving the section blank or linking to current discussion threads in [http://groups.google.com/group/mozilla.dev.apps.firefox dev.apps.firefox] is perfectly acceptable.<br />
<br />
=== Visual Refresh: Chrome Polish ===<br />
<br />
=== Visual Refresh: Theme Polish ===<br />
<br />
=== Bookmarks and History: Places ===<br />
<br />
Making good progress:<br />
<br />
- 58 a2 issues open... annie 14 brettw 14 ben 10 joe 13 pam 3 <br />
- annie 19 brettw 13.5 beng 16 joe 15<br />
- focusing on feature complete & major "functionality broken" bugs.<br />
<br />
=== User Experience: Tabbed Browsing ===<br />
<br />
=== User Experience: Session Restore ===<br />
<br />
* Patch available for testing at [https://bugzilla.mozilla.org/show_bug.cgi?id=328162 bug 328162]<br />
* Currently working on fixing Ts regression<br />
<br />
=== User Experience: Spell Check ===<br />
<br />
=== User Experience: Microsummaries ===<br />
<br />
Landed first patch: [https://bugzilla.mozilla.org/show_bug.cgi?id=333052 bug 333052], which makes the bookmarks toolbar observe the "bookmarks/generatedTitle" annotation. When the microsummary service sets or updates that annotation for a particular bookmark, the toolbar now uses the content of the annotation as the bookmark's label.<br />
<br />
Currently working on patch implementing microsummary service.<br />
<br />
=== Feeds: Parser ===<br />
<br />
Robert sayrer needs to address peterv review feedback and get sr asap.<br />
<br />
Needs to complete feed parser js component (beng reviewing)<br />
<br />
=== Feeds: UI ===<br />
<br />
Blocked by prereq (feed parser)<br />
<br />
=== Extension Manager: UI ===<br />
<br />
=== Extension Manager: Blocklisting ===<br />
<br />
=== Extension Manager: Locale Packs ===<br />
<br />
=== Search: UI ===<br />
<br />
=== Search: Plugin Format ===<br />
<br />
=== Distribution: Installer ===<br />
<br />
=== Distribution: EULA ===<br />
<br />
=== Distribution: Channel Support ===<br />
<br />
=== Infrastructure: Performance ===<br />
<br />
=== Infrastructure: Platform Uplift ===<br />
<br />
=== Infrastructure: Instrumentation ===<br />
<br />
=== Security: Phishing ===<br />
<br />
=== Security: SSL ===<br />
<br />
=== User Documentation ===<br />
<br />
= Other Business =</div>Benhttps://wiki.mozilla.org/index.php?title=Firefox2/StatusMeetings/2006-04-11&diff=23754Firefox2/StatusMeetings/2006-04-112006-04-11T17:54:56Z<p>Ben: /* Feeds: Parser */</p>
<hr />
<div><small>[[Firefox2/StatusMeetings/2006-04-04|<< previous week]] | [[Firefox2/StatusMeetings|index]] | [[Firefox2/StatusMeetings/2006-04-18|next week>>]]</small><br />
<br />
'''Meeting Details'''<br />
* 11:00am PDT (18:00 UTC)<br />
* Mozilla HQ, 1st floor conference table<br />
* +1 866 216 2181<br />
* join irc.mozilla.org #bonecho for attendance taking<br />
<br />
= In Attendance =<br />
<br />
= Agenda =<br />
# Bon Echo Alpha 2 (Tracking & Status)<br />
# Development Roundtable<br />
# Any other business<br />
<br />
= Bon Echo Alpha 2 =<br />
* proposed release for May 9th, code freeze for May 5th<br />
* tracking [[Firefox2/Requirements|against requirements]]<br />
* ''shaver/brendan to discuss what platform pieces are being targetted''<br />
* ''any other release-related issues to start tracking? update channels?''<br />
<br />
= Developer Roundtable =<br />
Add notes about work being actively done at the moment, areas where you'll need help/review, or things which the rest of the team should be made aware of. Leaving the section blank or linking to current discussion threads in [http://groups.google.com/group/mozilla.dev.apps.firefox dev.apps.firefox] is perfectly acceptable.<br />
<br />
=== Visual Refresh: Chrome Polish ===<br />
<br />
=== Visual Refresh: Theme Polish ===<br />
<br />
=== Bookmarks and History: Places ===<br />
<br />
Making good progress:<br />
<br />
- 58 a2 issues open... annie 14 brettw 14 ben 10 joe 13 pam 3 <br />
- annie 19 brettw 13.5 beng 16 joe 15<br />
- focusing on feature complete & major "functionality broken" bugs.<br />
<br />
=== User Experience: Tabbed Browsing ===<br />
<br />
=== User Experience: Session Restore ===<br />
<br />
* Patch available for testing at [https://bugzilla.mozilla.org/show_bug.cgi?id=328162 bug 328162]<br />
* Currently working on fixing Ts regression<br />
<br />
=== User Experience: Spell Check ===<br />
<br />
=== User Experience: Microsummaries ===<br />
<br />
Landed first patch: [https://bugzilla.mozilla.org/show_bug.cgi?id=333052 bug 333052], which makes the bookmarks toolbar observe the "bookmarks/generatedTitle" annotation. When the microsummary service sets or updates that annotation for a particular bookmark, the toolbar now uses the content of the annotation as the bookmark's label.<br />
<br />
Currently working on patch implementing microsummary service.<br />
<br />
=== Feeds: Parser ===<br />
<br />
Robert sayrer needs to address peterv review feedback and get sr asap.<br />
<br />
Needs to complete feed parser js component (beng reviewing)<br />
<br />
=== Feeds: UI ===<br />
<br />
=== Extension Manager: UI ===<br />
<br />
=== Extension Manager: Blocklisting ===<br />
<br />
=== Extension Manager: Locale Packs ===<br />
<br />
=== Search: UI ===<br />
<br />
=== Search: Plugin Format ===<br />
<br />
=== Distribution: Installer ===<br />
<br />
=== Distribution: EULA ===<br />
<br />
=== Distribution: Channel Support ===<br />
<br />
=== Infrastructure: Performance ===<br />
<br />
=== Infrastructure: Platform Uplift ===<br />
<br />
=== Infrastructure: Instrumentation ===<br />
<br />
=== Security: Phishing ===<br />
<br />
=== Security: SSL ===<br />
<br />
=== User Documentation ===<br />
<br />
= Other Business =</div>Benhttps://wiki.mozilla.org/index.php?title=Firefox2/StatusMeetings/2006-04-11&diff=23753Firefox2/StatusMeetings/2006-04-112006-04-11T17:54:22Z<p>Ben: /* Bookmarks and History: Places */</p>
<hr />
<div><small>[[Firefox2/StatusMeetings/2006-04-04|<< previous week]] | [[Firefox2/StatusMeetings|index]] | [[Firefox2/StatusMeetings/2006-04-18|next week>>]]</small><br />
<br />
'''Meeting Details'''<br />
* 11:00am PDT (18:00 UTC)<br />
* Mozilla HQ, 1st floor conference table<br />
* +1 866 216 2181<br />
* join irc.mozilla.org #bonecho for attendance taking<br />
<br />
= In Attendance =<br />
<br />
= Agenda =<br />
# Bon Echo Alpha 2 (Tracking & Status)<br />
# Development Roundtable<br />
# Any other business<br />
<br />
= Bon Echo Alpha 2 =<br />
* proposed release for May 9th, code freeze for May 5th<br />
* tracking [[Firefox2/Requirements|against requirements]]<br />
* ''shaver/brendan to discuss what platform pieces are being targetted''<br />
* ''any other release-related issues to start tracking? update channels?''<br />
<br />
= Developer Roundtable =<br />
Add notes about work being actively done at the moment, areas where you'll need help/review, or things which the rest of the team should be made aware of. Leaving the section blank or linking to current discussion threads in [http://groups.google.com/group/mozilla.dev.apps.firefox dev.apps.firefox] is perfectly acceptable.<br />
<br />
=== Visual Refresh: Chrome Polish ===<br />
<br />
=== Visual Refresh: Theme Polish ===<br />
<br />
=== Bookmarks and History: Places ===<br />
<br />
Making good progress:<br />
<br />
- 58 a2 issues open... annie 14 brettw 14 ben 10 joe 13 pam 3 <br />
- annie 19 brettw 13.5 beng 16 joe 15<br />
- focusing on feature complete & major "functionality broken" bugs.<br />
<br />
=== User Experience: Tabbed Browsing ===<br />
<br />
=== User Experience: Session Restore ===<br />
<br />
* Patch available for testing at [https://bugzilla.mozilla.org/show_bug.cgi?id=328162 bug 328162]<br />
* Currently working on fixing Ts regression<br />
<br />
=== User Experience: Spell Check ===<br />
<br />
=== User Experience: Microsummaries ===<br />
<br />
Landed first patch: [https://bugzilla.mozilla.org/show_bug.cgi?id=333052 bug 333052], which makes the bookmarks toolbar observe the "bookmarks/generatedTitle" annotation. When the microsummary service sets or updates that annotation for a particular bookmark, the toolbar now uses the content of the annotation as the bookmark's label.<br />
<br />
Currently working on patch implementing microsummary service.<br />
<br />
=== Feeds: Parser ===<br />
<br />
=== Feeds: UI ===<br />
<br />
=== Extension Manager: UI ===<br />
<br />
=== Extension Manager: Blocklisting ===<br />
<br />
=== Extension Manager: Locale Packs ===<br />
<br />
=== Search: UI ===<br />
<br />
=== Search: Plugin Format ===<br />
<br />
=== Distribution: Installer ===<br />
<br />
=== Distribution: EULA ===<br />
<br />
=== Distribution: Channel Support ===<br />
<br />
=== Infrastructure: Performance ===<br />
<br />
=== Infrastructure: Platform Uplift ===<br />
<br />
=== Infrastructure: Instrumentation ===<br />
<br />
=== Security: Phishing ===<br />
<br />
=== Security: SSL ===<br />
<br />
=== User Documentation ===<br />
<br />
= Other Business =</div>Benhttps://wiki.mozilla.org/index.php?title=Places:Drag_%26_Drop&diff=23341Places:Drag & Drop2006-04-04T00:47:03Z<p>Ben: /* Controller Drop Handling Helper */</p>
<hr />
<div>== Tree Drop Handling ==<br />
<br />
The Places Tree View (tree.xml) implements <code>nsINavHistoryResultViewObserver</code>, which provides a method <code>onDrop</code> which is called by the view when a drop occurs. When this happens, the following steps occur:<br />
<br />
# Check whether or not the drop is valid by calling the <code>canDrop</code> method, returning silently if it is not.<br />
# Determine how many new items will be inserted into open folders in the tree view after the drop completes.<br />
# If the drag and drop operation occured within the same view, adjust the insertion index to account for the fact that items may have been removed before it.<br />
# Call the controller's onDrop helper.<br />
<br />
== Controller Drop Handling Helper ==<br />
<br />
The <code>PlacesControllerDragHelper</code> provides an <code>onDrop</code> method that performs view-agnostic drop handling. This method performs the following actions:<br />
<br />
# Determine what mime types of objects are being dragged (from the dragged transferable), and compares this list of types supported as droppable by the target view (<code>peerDropTypes, childDropTypes</code>).<br />
# For each dropped item, unwrap the data, generate insertion or copy transactions, and execute the transactions on the transaction manager.</div>Benhttps://wiki.mozilla.org/index.php?title=Places:Drag_%26_Drop&diff=23340Places:Drag & Drop2006-04-04T00:46:30Z<p>Ben: </p>
<hr />
<div>== Tree Drop Handling ==<br />
<br />
The Places Tree View (tree.xml) implements <code>nsINavHistoryResultViewObserver</code>, which provides a method <code>onDrop</code> which is called by the view when a drop occurs. When this happens, the following steps occur:<br />
<br />
# Check whether or not the drop is valid by calling the <code>canDrop</code> method, returning silently if it is not.<br />
# Determine how many new items will be inserted into open folders in the tree view after the drop completes.<br />
# If the drag and drop operation occured within the same view, adjust the insertion index to account for the fact that items may have been removed before it.<br />
# Call the controller's onDrop helper.<br />
<br />
== Controller Drop Handling Helper ==<br />
<br />
The PlacesControllerDragHelper provides an <code>onDrop</code> method that performs view-agnostic drop handling. This method performs the following actions:<br />
<br />
# Determine what mime types of objects are being dragged (from the dragged transferable), and compares this list of types supported as droppable by the target view (<code>peerDropTypes, childDropTypes</code>).<br />
# For each dropped item, unwrap the data, generate insertion or copy transactions, and execute the transactions on the transaction manager.</div>Benhttps://wiki.mozilla.org/index.php?title=Places&diff=23253Places2006-03-31T19:11:26Z<p>Ben: /* Design Documents */</p>
<hr />
<div>''Please comment in the Talk page (use the Discussion tab above)''<br />
<br />
Bug list: [http://tinyurl.com/8xgkf Places bugs by milestone, owner]<br />
<br />
= Goals & Objectives =<br />
The primary objectives of this project are to: <br />
<br />
* Improve access to History and Bookmarks<br />
* Make it easier for people to Bookmark pages<br />
<br />
Secondary objectives include:<br />
<br />
* Consolidating user data formats<br />
* Provide a platform for using interesting per-URL metadata<br />
* Improving the capabilities of Live Bookmarks<br />
<br />
== Planned Milestones ==<br />
<br />
All milestone builds are hosted at http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/experimental/places/<br />
<br />
Milestone 2 (1/30/2006):<br />
<br />
What's new in this build:<br />
<br />
* Your existing history is now preserved and imported into Places.<br />
* You can search from the Places view<br />
* You can construct queries over your history/bookmarks and save them<br />
* If you are migrating to Firefox from another browser, your history and bookmarks are imported into Places.<br />
* Stability, performance, and bug fixes<br />
<br />
Known issues:<br />
<br />
* It is recommended that you delete the file "storage.sdb" in your profile directory if you have previously run a Places build.<br />
* 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.<br />
* If you use the installer, you have to do a custom install and disable Quality Feedback Agent. Otherwise, the installation will error out.<br />
* Bookmark keywords do not work yet.<br />
* If your profile directory is on NFS, you will see slower performance.<br />
<br />
Milestone 1 (12/15/2005):<br />
<br />
This is our first public milestone build. It has a working Places view, history, and bookmarks (with import). There are a few known issues:<br />
<br />
* These builds are based on the Firefox trunk. As a result, any extensions which claim only 1.5.0.* compatibility will be disabled.<br />
* If you use the installer, you have to do a custom install and disable Quality Feedback Agent. Otherwise, the installation will error out.<br />
* Existing bookmarks are imported, but history is not yet imported.<br />
* Bookmark keywords do not work yet.<br />
* If your profile directory is on NFS, you will see slower performance.<br />
<br />
Please file bugs in bugzilla. You can use this link: <br />
https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox&component=Places<br />
<br />
= Overview =<br />
<br />
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. <br />
<br />
== Background ==<br />
<br />
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). <br />
<br />
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.<br />
<br />
== Use Cases ==<br />
<br />
TBD.<br />
<br />
== Functional Requirements ==<br />
<br />
TBD, but reasonable compatibility with Firefox 1.x<br />
<br />
== Plans & Design Documents ==<br />
<br />
=== Design Documents ===<br />
<br />
* [[Places:User Interface]]<br />
* [[Places:Design Overview]]<br />
<br />
* [[Places:URL Store]]<br />
* [[Places:Bookmarks]]<br />
* [[Places:Query System]]<br />
* [[Places:place URIs]]<br />
* [[Places:Results]]<br />
* [[Places:Controller]]<br />
* [[Browser History]]<br />
* [[Places:AutoComplete]]<br />
* [[Places:Transactions]]<br />
* [[Places:Drag & Drop]]<br />
<br />
==== Special Containers ====<br />
* [[Places:Bookmarks Containers]]<br />
* [[Places:Live Bookmarks]]<br />
* [[Places:File System Container]]<br />
<br />
More to come...<br />
<br />
=== Code Location ===<br />
<br />
<pre>mozilla/browser/components/places/</pre> for the most part. Build with --enable-places in your .mozconfig file. This development is happening simultaneously on the trunk and MOZILLA_1_8_BRANCH. To avoid conflicting with the browser and causing bustage, there are some shims in place that overlay the browser to insert the Places UI access points.<br />
<br />
=== Team ===<br />
<br />
* [[Places:Task List]]<br />
<br />
== API Changes Required ==<br />
<br />
The APIs for accessing Bookmarks and History will be replaced. APIs abstracting the layout of the metadata tables used in the profile storage file will be provided. See above for details.<br />
<br />
* [[Places:History API]]<br />
* [[Places:Bookmarks API]]<br />
* [[Places:Annotations API]]<br />
<br />
== Impact ==<br />
<br />
=== Extensions ===<br />
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.<br />
<br />
= Discussion & Implications =<br />
<br />
== Discussion Elsewhere ==<br />
<br />
[http://robert.accettura.com/archives/2005/08/01/intelligent-bookmarking-draft/ Intelligent Bookmarking (Draft) - Robert Accettura]<br />
<br />
[http://tdot.blog-city.com/evolution_bookmarking.htm/The Evolution of Bookmarking -- Bookmarks, Firefox, del.icio.us, Tagging, and Information Management]<br />
<br />
[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)<br />
<br />
[[User:Dria/On Tagging|Deb Richardson's "On Tagging"]]</div>Benhttps://wiki.mozilla.org/index.php?title=Places:Controller&diff=23223Places:Controller2006-03-31T01:33:56Z<p>Ben: /* Code Location */</p>
<hr />
<div>= Background = <br />
<br />
The controller is part of the Places System's MVC architecture. The controller is responsible for enabling, disabling and performing commands based on the state of a PlacesView. <br />
<br />
= Code Location =<br />
<br />
The Places Controller is implemented in the <code>PlacesController</code> object, which lives in <code>browser/components/places/content/controller.js</code> and is included by <code>chrome://browser/content/places/places.js</code><br />
<br />
The controller is the one constant factor about any Places instantiation. The <code>PlacesController</code> object is required by the views. You must include this script file for things to work.<br />
<br />
= Functionality =<br />
<br />
== Command Updating ==<br />
<br />
== Command Execution ==<br />
<br />
== Utilities ==</div>Benhttps://wiki.mozilla.org/index.php?title=Places:Controller&diff=23222Places:Controller2006-03-31T01:33:07Z<p>Ben: </p>
<hr />
<div>= Background = <br />
<br />
The controller is part of the Places System's MVC architecture. The controller is responsible for enabling, disabling and performing commands based on the state of a PlacesView. <br />
<br />
= Code Location =<br />
<br />
The Places Controller is implemented in the <code>PlacesController</code> object, which lives in <code>browser/components/places/content/controller.js</code> and is included by <code>chrome://browser/content/places/places.js</code><br />
<br />
The controller is the one constant factor about any Places instantiation. The <code>PlacesController</code> object is required by the views. You must include this script file for <br />
<br />
= Functionality =<br />
<br />
== Command Updating ==<br />
<br />
== Command Execution ==<br />
<br />
== Utilities ==</div>Benhttps://wiki.mozilla.org/index.php?title=Places:Transactions&diff=23221Places:Transactions2006-03-31T01:27:39Z<p>Ben: /* Removing Folders */</p>
<hr />
<div>= Introduction = <br />
<br />
The [[Places:Controller]] performs all edit operations (node creation, removal, modification) on Bookmark items using Transactions. Transactions support the execution of commands, as well as reverting (undoing) and repeating (redoing) them. Transactions thus support the Undo/Redo feature. <br />
<br />
This document talks about how the Transactions are used, and what you should know as a programmer. <br />
<br />
= All Edits Are Transaction-Based = <br />
<br />
Any edit you perform to a bookmark item in a Places View is generally undo-able using the undo command (and then subsequently re-doable). To take advantage of this in your code, you need to use one of the <code>Places*Transaction</code>s defined in <code>controller.js</code>, rather than just using the data APIs directly. <br />
<br />
== Consturcting a Transaction ==<br />
<br />
To create a new folder called "Foo" at the end of the Bookmarks Toolbar, you might write code that looks like this:<br />
<br />
<pre><br />
var bms = <br />
Cc["@mozilla.org/browser/nav-bookmarks-service;1"].<br />
getService(Ci.nsINavBookmarksService);<br />
var txn = new PlacesCreateFolderTransaction("Foo", bms.toolbarRoot, -1);<br />
PlacesController.tm.doTransaction(txn);<br />
</pre><br />
<br />
The <code>PlacesController</code> maintains an active transaction manager for each instance of itself (e.g. one for the Places Organizer, one for each browser window, etc. This object implements nsITransactionManager. <br />
<br />
= Basic Transactions = <br />
<br />
All Places transactions inherit from <code>PlacesBaseTransaction</code>. <br />
<br />
Here are some of the basic transactions provided:<br />
<br />
<pre><br />
function PlacesCreateItemTransaction(uri, container, index);<br />
function PlacesCreateSeparatorTransaction(container, index);<br />
function PlacesMoveFolderTransaction(id, oldContainer, oldIndex, newContainer, newIndex);<br />
function PlacesMoveItemTransaction(uri, oldContainer, oldIndex, newContainer, newIndex);<br />
function PlacesRemoveItemTransaction(uri, oldContainer, oldIndex);<br />
function PlacesRemoveSeparatorTransaction(oldContainer, oldIndex);<br />
function PlacesEditItemTitleTransaction(uri, newTitle);<br />
function PlacesEditFolderTitleTransaction(id, newTitle);<br />
function PlacesEditBookmarkKeywordTransaction(uri, newKeyword);<br />
</pre><br />
<br />
= Grouping Transactions =<br />
<br />
Several transactions can be aggregated together into a single atomic unit of work using <code>PlacesAggregateTransaction</code>. For example, consider creating and naming a new Bookmark:<br />
<br />
<pre><br />
var ios = <br />
Cc["@mozilla.org/network/io-service"].<br />
getService(Ci.nsIIOService);<br />
var uri = ios.newURI("http://www.mozilla.org/", null, null);<br />
var bms = <br />
Cc["@mozilla.org/browser/nav-bookmarks-service;1"].<br />
getService(Ci.nsINavBookmarksService);<br />
var createTxn = new PlacesCreateItemTransaction(uri, bms.toolbarRoot, -1);<br />
var nameTxn = new PlacesEditItemTitleTransaction(uri, "Mozilla.org");<br />
<br />
var aggTxn = new PlacesAggregateTransaction("Create Bookmark", <br />
[createTxn, nameTxn]);<br />
PlacesController.tm.doTransaction(aggTxn);<br />
</pre><br />
<br />
The aggregator does/undoes/redoes each of the transactions in the set provided.<br />
<br />
= Creating Folders =<br />
<br />
Normally, creating folders is no big hassle. You just use <code>PlacesCreateFolderTransaction</code>:<br />
<br />
<pre><br />
var bms =<br />
Cc["@mozilla.org/browser/nav-bookmarks-service;1"].<br />
getService(Ci.nsINavBookmarksService);<br />
var createTxn = <br />
new PlacesCreateFolderTransaction("Something", bms.toolbarRoot, -1);<br />
PlacesController.tm.doTransaction(createTxn);<br />
</pre><br />
<br />
For pasting, the <code>PlacesController</code> does something a little special. Since the user may be pasting in a nested folder structure, when it creates the set of CreateTransactions for the insert operation, there is a problem: the insertion is two-pass. The first pass generates a list of transactions for the insertion, and the second pass is the execution of the transactions using <code>doTransaction</code>. The problem is that all the CreateTransactions take the insertion container as a parameter to the constructor, but the folder the items are being inserted into hasn't been created yet for nested contents! <br />
<br />
The solution is that on CreateTransactions, the <code>container</code> property is a public field, and that every pasted folder creates its own list of CreateTransactions to create child items. <br />
<br />
The <code>PlacesCreateFolderTransaction</code> method has a <code>childTransactions</code> field which is an array of CreateTransactions taht are used to construct child nodes. <br />
<br />
During the first phase of the paste, <code>PlacesCreateFolderTransaction</code> objects' <code>childTransactions</code> fields are recursively populated with these CreateTransactions. <br />
<br />
During the second phase of the paste, these <code>childTransactions</code> lists are walked after the containing folder is created, and for each child CreateTransaction, the <code>container</code> property is set to the id of the newly created folder, so that the item is created into the right place.<br />
<br />
= Removing Folders =<br />
<br />
Removing a folder is pretty straight forward:<br />
<br />
<pre><br />
var txn = new PlacesRemoveFolderTransaction(folderId);<br />
PlacesController.tm.doTransaction(txn);<br />
</pre><br />
<br />
The implementation is a little more complex. Some of this functionality is implemented by the bookmarks service itself. For a complete description of how this is implemented, read [http://groups.google.com/group/mozilla.dev.apps.firefox/msg/215e88fcdb91ff25 this posting to dev-apps-firefox].</div>Benhttps://wiki.mozilla.org/index.php?title=Places:Transactions&diff=23220Places:Transactions2006-03-31T01:23:00Z<p>Ben: /* Creating Folders */</p>
<hr />
<div>= Introduction = <br />
<br />
The [[Places:Controller]] performs all edit operations (node creation, removal, modification) on Bookmark items using Transactions. Transactions support the execution of commands, as well as reverting (undoing) and repeating (redoing) them. Transactions thus support the Undo/Redo feature. <br />
<br />
This document talks about how the Transactions are used, and what you should know as a programmer. <br />
<br />
= All Edits Are Transaction-Based = <br />
<br />
Any edit you perform to a bookmark item in a Places View is generally undo-able using the undo command (and then subsequently re-doable). To take advantage of this in your code, you need to use one of the <code>Places*Transaction</code>s defined in <code>controller.js</code>, rather than just using the data APIs directly. <br />
<br />
== Consturcting a Transaction ==<br />
<br />
To create a new folder called "Foo" at the end of the Bookmarks Toolbar, you might write code that looks like this:<br />
<br />
<pre><br />
var bms = <br />
Cc["@mozilla.org/browser/nav-bookmarks-service;1"].<br />
getService(Ci.nsINavBookmarksService);<br />
var txn = new PlacesCreateFolderTransaction("Foo", bms.toolbarRoot, -1);<br />
PlacesController.tm.doTransaction(txn);<br />
</pre><br />
<br />
The <code>PlacesController</code> maintains an active transaction manager for each instance of itself (e.g. one for the Places Organizer, one for each browser window, etc. This object implements nsITransactionManager. <br />
<br />
= Basic Transactions = <br />
<br />
All Places transactions inherit from <code>PlacesBaseTransaction</code>. <br />
<br />
Here are some of the basic transactions provided:<br />
<br />
<pre><br />
function PlacesCreateItemTransaction(uri, container, index);<br />
function PlacesCreateSeparatorTransaction(container, index);<br />
function PlacesMoveFolderTransaction(id, oldContainer, oldIndex, newContainer, newIndex);<br />
function PlacesMoveItemTransaction(uri, oldContainer, oldIndex, newContainer, newIndex);<br />
function PlacesRemoveItemTransaction(uri, oldContainer, oldIndex);<br />
function PlacesRemoveSeparatorTransaction(oldContainer, oldIndex);<br />
function PlacesEditItemTitleTransaction(uri, newTitle);<br />
function PlacesEditFolderTitleTransaction(id, newTitle);<br />
function PlacesEditBookmarkKeywordTransaction(uri, newKeyword);<br />
</pre><br />
<br />
= Grouping Transactions =<br />
<br />
Several transactions can be aggregated together into a single atomic unit of work using <code>PlacesAggregateTransaction</code>. For example, consider creating and naming a new Bookmark:<br />
<br />
<pre><br />
var ios = <br />
Cc["@mozilla.org/network/io-service"].<br />
getService(Ci.nsIIOService);<br />
var uri = ios.newURI("http://www.mozilla.org/", null, null);<br />
var bms = <br />
Cc["@mozilla.org/browser/nav-bookmarks-service;1"].<br />
getService(Ci.nsINavBookmarksService);<br />
var createTxn = new PlacesCreateItemTransaction(uri, bms.toolbarRoot, -1);<br />
var nameTxn = new PlacesEditItemTitleTransaction(uri, "Mozilla.org");<br />
<br />
var aggTxn = new PlacesAggregateTransaction("Create Bookmark", <br />
[createTxn, nameTxn]);<br />
PlacesController.tm.doTransaction(aggTxn);<br />
</pre><br />
<br />
The aggregator does/undoes/redoes each of the transactions in the set provided.<br />
<br />
= Creating Folders =<br />
<br />
Normally, creating folders is no big hassle. You just use <code>PlacesCreateFolderTransaction</code>:<br />
<br />
<pre><br />
var bms =<br />
Cc["@mozilla.org/browser/nav-bookmarks-service;1"].<br />
getService(Ci.nsINavBookmarksService);<br />
var createTxn = <br />
new PlacesCreateFolderTransaction("Something", bms.toolbarRoot, -1);<br />
PlacesController.tm.doTransaction(createTxn);<br />
</pre><br />
<br />
For pasting, the <code>PlacesController</code> does something a little special. Since the user may be pasting in a nested folder structure, when it creates the set of CreateTransactions for the insert operation, there is a problem: the insertion is two-pass. The first pass generates a list of transactions for the insertion, and the second pass is the execution of the transactions using <code>doTransaction</code>. The problem is that all the CreateTransactions take the insertion container as a parameter to the constructor, but the folder the items are being inserted into hasn't been created yet for nested contents! <br />
<br />
The solution is that on CreateTransactions, the <code>container</code> property is a public field, and that every pasted folder creates its own list of CreateTransactions to create child items. <br />
<br />
The <code>PlacesCreateFolderTransaction</code> method has a <code>childTransactions</code> field which is an array of CreateTransactions taht are used to construct child nodes. <br />
<br />
During the first phase of the paste, <code>PlacesCreateFolderTransaction</code> objects' <code>childTransactions</code> fields are recursively populated with these CreateTransactions. <br />
<br />
During the second phase of the paste, these <code>childTransactions</code> lists are walked after the containing folder is created, and for each child CreateTransaction, the <code>container</code> property is set to the id of the newly created folder, so that the item is created into the right place.<br />
<br />
= Removing Folders =</div>Benhttps://wiki.mozilla.org/index.php?title=Places:Transactions&diff=23219Places:Transactions2006-03-31T01:21:33Z<p>Ben: /* Creating Folders */</p>
<hr />
<div>= Introduction = <br />
<br />
The [[Places:Controller]] performs all edit operations (node creation, removal, modification) on Bookmark items using Transactions. Transactions support the execution of commands, as well as reverting (undoing) and repeating (redoing) them. Transactions thus support the Undo/Redo feature. <br />
<br />
This document talks about how the Transactions are used, and what you should know as a programmer. <br />
<br />
= All Edits Are Transaction-Based = <br />
<br />
Any edit you perform to a bookmark item in a Places View is generally undo-able using the undo command (and then subsequently re-doable). To take advantage of this in your code, you need to use one of the <code>Places*Transaction</code>s defined in <code>controller.js</code>, rather than just using the data APIs directly. <br />
<br />
== Consturcting a Transaction ==<br />
<br />
To create a new folder called "Foo" at the end of the Bookmarks Toolbar, you might write code that looks like this:<br />
<br />
<pre><br />
var bms = <br />
Cc["@mozilla.org/browser/nav-bookmarks-service;1"].<br />
getService(Ci.nsINavBookmarksService);<br />
var txn = new PlacesCreateFolderTransaction("Foo", bms.toolbarRoot, -1);<br />
PlacesController.tm.doTransaction(txn);<br />
</pre><br />
<br />
The <code>PlacesController</code> maintains an active transaction manager for each instance of itself (e.g. one for the Places Organizer, one for each browser window, etc. This object implements nsITransactionManager. <br />
<br />
= Basic Transactions = <br />
<br />
All Places transactions inherit from <code>PlacesBaseTransaction</code>. <br />
<br />
Here are some of the basic transactions provided:<br />
<br />
<pre><br />
function PlacesCreateItemTransaction(uri, container, index);<br />
function PlacesCreateSeparatorTransaction(container, index);<br />
function PlacesMoveFolderTransaction(id, oldContainer, oldIndex, newContainer, newIndex);<br />
function PlacesMoveItemTransaction(uri, oldContainer, oldIndex, newContainer, newIndex);<br />
function PlacesRemoveItemTransaction(uri, oldContainer, oldIndex);<br />
function PlacesRemoveSeparatorTransaction(oldContainer, oldIndex);<br />
function PlacesEditItemTitleTransaction(uri, newTitle);<br />
function PlacesEditFolderTitleTransaction(id, newTitle);<br />
function PlacesEditBookmarkKeywordTransaction(uri, newKeyword);<br />
</pre><br />
<br />
= Grouping Transactions =<br />
<br />
Several transactions can be aggregated together into a single atomic unit of work using <code>PlacesAggregateTransaction</code>. For example, consider creating and naming a new Bookmark:<br />
<br />
<pre><br />
var ios = <br />
Cc["@mozilla.org/network/io-service"].<br />
getService(Ci.nsIIOService);<br />
var uri = ios.newURI("http://www.mozilla.org/", null, null);<br />
var bms = <br />
Cc["@mozilla.org/browser/nav-bookmarks-service;1"].<br />
getService(Ci.nsINavBookmarksService);<br />
var createTxn = new PlacesCreateItemTransaction(uri, bms.toolbarRoot, -1);<br />
var nameTxn = new PlacesEditItemTitleTransaction(uri, "Mozilla.org");<br />
<br />
var aggTxn = new PlacesAggregateTransaction("Create Bookmark", <br />
[createTxn, nameTxn]);<br />
PlacesController.tm.doTransaction(aggTxn);<br />
</pre><br />
<br />
The aggregator does/undoes/redoes each of the transactions in the set provided.<br />
<br />
= Creating Folders =<br />
<br />
Normally, creating folders is no big hassle. You just use <code>PlacesCreateFolderTransaction</code>. For pasting, the <code>PlacesController</code> does something a little special. Since the user may be pasting in a nested folder structure, when it creates the set of CreateTransactions for the insert operation, there is a problem: the insertion is two-pass. The first pass generates a list of transactions for the insertion, and the second pass is the execution of the transactions using <code>doTransaction</code>. The problem is that all the CreateTransactions take the insertion container as a parameter to the constructor, but the folder the items are being inserted into hasn't been created yet for nested contents! <br />
<br />
The solution is that on CreateTransactions, the <code>container</code> property is a public field, and that every pasted folder creates its own list of CreateTransactions to create child items. <br />
<br />
The <code>PlacesCreateFolderTransaction</code> method has a <code>childTransactions</code> field which is an array of CreateTransactions taht are used to construct child nodes. <br />
<br />
During the first phase of the paste, <code>PlacesCreateFolderTransaction</code> objects' <code>childTransactions</code> fields are recursively populated with these CreateTransactions. <br />
<br />
During the second phase of the paste, these <code>childTransactions</code> lists are walked after the containing folder is created, and for each child CreateTransaction, the <code>container</code> property is set to the id of the newly created folder, so that the item is created into the right place.<br />
<br />
= Removing Folders =</div>Benhttps://wiki.mozilla.org/index.php?title=Places:Transactions&diff=23218Places:Transactions2006-03-31T01:12:36Z<p>Ben: /* Basic Transactions */</p>
<hr />
<div>= Introduction = <br />
<br />
The [[Places:Controller]] performs all edit operations (node creation, removal, modification) on Bookmark items using Transactions. Transactions support the execution of commands, as well as reverting (undoing) and repeating (redoing) them. Transactions thus support the Undo/Redo feature. <br />
<br />
This document talks about how the Transactions are used, and what you should know as a programmer. <br />
<br />
= All Edits Are Transaction-Based = <br />
<br />
Any edit you perform to a bookmark item in a Places View is generally undo-able using the undo command (and then subsequently re-doable). To take advantage of this in your code, you need to use one of the <code>Places*Transaction</code>s defined in <code>controller.js</code>, rather than just using the data APIs directly. <br />
<br />
== Consturcting a Transaction ==<br />
<br />
To create a new folder called "Foo" at the end of the Bookmarks Toolbar, you might write code that looks like this:<br />
<br />
<pre><br />
var bms = <br />
Cc["@mozilla.org/browser/nav-bookmarks-service;1"].<br />
getService(Ci.nsINavBookmarksService);<br />
var txn = new PlacesCreateFolderTransaction("Foo", bms.toolbarRoot, -1);<br />
PlacesController.tm.doTransaction(txn);<br />
</pre><br />
<br />
The <code>PlacesController</code> maintains an active transaction manager for each instance of itself (e.g. one for the Places Organizer, one for each browser window, etc. This object implements nsITransactionManager. <br />
<br />
= Basic Transactions = <br />
<br />
All Places transactions inherit from <code>PlacesBaseTransaction</code>. <br />
<br />
Here are some of the basic transactions provided:<br />
<br />
<pre><br />
function PlacesCreateItemTransaction(uri, container, index);<br />
function PlacesCreateSeparatorTransaction(container, index);<br />
function PlacesMoveFolderTransaction(id, oldContainer, oldIndex, newContainer, newIndex);<br />
function PlacesMoveItemTransaction(uri, oldContainer, oldIndex, newContainer, newIndex);<br />
function PlacesRemoveItemTransaction(uri, oldContainer, oldIndex);<br />
function PlacesRemoveSeparatorTransaction(oldContainer, oldIndex);<br />
function PlacesEditItemTitleTransaction(uri, newTitle);<br />
function PlacesEditFolderTitleTransaction(id, newTitle);<br />
function PlacesEditBookmarkKeywordTransaction(uri, newKeyword);<br />
</pre><br />
<br />
= Grouping Transactions =<br />
<br />
Several transactions can be aggregated together into a single atomic unit of work using <code>PlacesAggregateTransaction</code>. For example, consider creating and naming a new Bookmark:<br />
<br />
<pre><br />
var ios = <br />
Cc["@mozilla.org/network/io-service"].<br />
getService(Ci.nsIIOService);<br />
var uri = ios.newURI("http://www.mozilla.org/", null, null);<br />
var bms = <br />
Cc["@mozilla.org/browser/nav-bookmarks-service;1"].<br />
getService(Ci.nsINavBookmarksService);<br />
var createTxn = new PlacesCreateItemTransaction(uri, bms.toolbarRoot, -1);<br />
var nameTxn = new PlacesEditItemTitleTransaction(uri, "Mozilla.org");<br />
<br />
var aggTxn = new PlacesAggregateTransaction("Create Bookmark", <br />
[createTxn, nameTxn]);<br />
PlacesController.tm.doTransaction(aggTxn);<br />
</pre><br />
<br />
The aggregator does/undoes/redoes each of the transactions in the set provided.<br />
<br />
= Creating Folders = <br />
<br />
= Removing Folders =</div>Benhttps://wiki.mozilla.org/index.php?title=Places:Transactions&diff=23217Places:Transactions2006-03-31T01:12:05Z<p>Ben: /* Grouping Transactions */</p>
<hr />
<div>= Introduction = <br />
<br />
The [[Places:Controller]] performs all edit operations (node creation, removal, modification) on Bookmark items using Transactions. Transactions support the execution of commands, as well as reverting (undoing) and repeating (redoing) them. Transactions thus support the Undo/Redo feature. <br />
<br />
This document talks about how the Transactions are used, and what you should know as a programmer. <br />
<br />
= All Edits Are Transaction-Based = <br />
<br />
Any edit you perform to a bookmark item in a Places View is generally undo-able using the undo command (and then subsequently re-doable). To take advantage of this in your code, you need to use one of the <code>Places*Transaction</code>s defined in <code>controller.js</code>, rather than just using the data APIs directly. <br />
<br />
== Consturcting a Transaction ==<br />
<br />
To create a new folder called "Foo" at the end of the Bookmarks Toolbar, you might write code that looks like this:<br />
<br />
<pre><br />
var bms = <br />
Cc["@mozilla.org/browser/nav-bookmarks-service;1"].<br />
getService(Ci.nsINavBookmarksService);<br />
var txn = new PlacesCreateFolderTransaction("Foo", bms.toolbarRoot, -1);<br />
PlacesController.tm.doTransaction(txn);<br />
</pre><br />
<br />
The <code>PlacesController</code> maintains an active transaction manager for each instance of itself (e.g. one for the Places Organizer, one for each browser window, etc. This object implements nsITransactionManager. <br />
<br />
= Basic Transactions = <br />
<br />
All Places transactions inherit from <code>PlacesBaseTransaction</code>. <br />
<br />
Here are some of the basic transactions provided:<br />
<br />
<code>function PlacesCreateItemTransaction(uri, container, index);</code><br />
<code>function PlacesCreateSeparatorTransaction(container, index);</code><br />
<code>function PlacesMoveFolderTransaction(id, oldContainer, oldIndex, newContainer, newIndex);</code><br />
<code>function PlacesMoveItemTransaction(uri, oldContainer, oldIndex, newContainer, newIndex);</code><br />
<code>function PlacesRemoveItemTransaction(uri, oldContainer, oldIndex);</code><br />
<code>function PlacesRemoveSeparatorTransaction(oldContainer, oldIndex);</code><br />
<code>function PlacesEditItemTitleTransaction(uri, newTitle);</code><br />
<code>function PlacesEditFolderTitleTransaction(id, newTitle);</code><br />
<code>function PlacesEditBookmarkKeywordTransaction(uri, newKeyword);</code><br />
<br />
= Grouping Transactions =<br />
<br />
Several transactions can be aggregated together into a single atomic unit of work using <code>PlacesAggregateTransaction</code>. For example, consider creating and naming a new Bookmark:<br />
<br />
<pre><br />
var ios = <br />
Cc["@mozilla.org/network/io-service"].<br />
getService(Ci.nsIIOService);<br />
var uri = ios.newURI("http://www.mozilla.org/", null, null);<br />
var bms = <br />
Cc["@mozilla.org/browser/nav-bookmarks-service;1"].<br />
getService(Ci.nsINavBookmarksService);<br />
var createTxn = new PlacesCreateItemTransaction(uri, bms.toolbarRoot, -1);<br />
var nameTxn = new PlacesEditItemTitleTransaction(uri, "Mozilla.org");<br />
<br />
var aggTxn = new PlacesAggregateTransaction("Create Bookmark", <br />
[createTxn, nameTxn]);<br />
PlacesController.tm.doTransaction(aggTxn);<br />
</pre><br />
<br />
The aggregator does/undoes/redoes each of the transactions in the set provided.<br />
<br />
= Creating Folders = <br />
<br />
= Removing Folders =</div>Benhttps://wiki.mozilla.org/index.php?title=Places:Transactions&diff=23216Places:Transactions2006-03-31T01:04:55Z<p>Ben: </p>
<hr />
<div>= Introduction = <br />
<br />
The [[Places:Controller]] performs all edit operations (node creation, removal, modification) on Bookmark items using Transactions. Transactions support the execution of commands, as well as reverting (undoing) and repeating (redoing) them. Transactions thus support the Undo/Redo feature. <br />
<br />
This document talks about how the Transactions are used, and what you should know as a programmer. <br />
<br />
= All Edits Are Transaction-Based = <br />
<br />
Any edit you perform to a bookmark item in a Places View is generally undo-able using the undo command (and then subsequently re-doable). To take advantage of this in your code, you need to use one of the <code>Places*Transaction</code>s defined in <code>controller.js</code>, rather than just using the data APIs directly. <br />
<br />
== Consturcting a Transaction ==<br />
<br />
To create a new folder called "Foo" at the end of the Bookmarks Toolbar, you might write code that looks like this:<br />
<br />
<pre><br />
var bms = <br />
Cc["@mozilla.org/browser/nav-bookmarks-service;1"].<br />
getService(Ci.nsINavBookmarksService);<br />
var txn = new PlacesCreateFolderTransaction("Foo", bms.toolbarRoot, -1);<br />
PlacesController.tm.doTransaction(txn);<br />
</pre><br />
<br />
The <code>PlacesController</code> maintains an active transaction manager for each instance of itself (e.g. one for the Places Organizer, one for each browser window, etc. This object implements nsITransactionManager. <br />
<br />
= Basic Transactions = <br />
<br />
All Places transactions inherit from <code>PlacesBaseTransaction</code>. <br />
<br />
Here are some of the basic transactions provided:<br />
<br />
<code>function PlacesCreateItemTransaction(uri, container, index);</code><br />
<code>function PlacesCreateSeparatorTransaction(container, index);</code><br />
<code>function PlacesMoveFolderTransaction(id, oldContainer, oldIndex, newContainer, newIndex);</code><br />
<code>function PlacesMoveItemTransaction(uri, oldContainer, oldIndex, newContainer, newIndex);</code><br />
<code>function PlacesRemoveItemTransaction(uri, oldContainer, oldIndex);</code><br />
<code>function PlacesRemoveSeparatorTransaction(oldContainer, oldIndex);</code><br />
<code>function PlacesEditItemTitleTransaction(uri, newTitle);</code><br />
<code>function PlacesEditFolderTitleTransaction(id, newTitle);</code><br />
<code>function PlacesEditBookmarkKeywordTransaction(uri, newKeyword);</code><br />
<br />
= Grouping Transactions = <br />
<br />
= Creating Folders = <br />
<br />
= Removing Folders =</div>Benhttps://wiki.mozilla.org/index.php?title=Places&diff=23215Places2006-03-31T00:51:46Z<p>Ben: /* Design Documents */</p>
<hr />
<div>''Please comment in the Talk page (use the Discussion tab above)''<br />
<br />
Bug list: [http://tinyurl.com/8xgkf Places bugs by milestone, owner]<br />
<br />
= Goals & Objectives =<br />
The primary objectives of this project are to: <br />
<br />
* Improve access to History and Bookmarks<br />
* Make it easier for people to Bookmark pages<br />
<br />
Secondary objectives include:<br />
<br />
* Consolidating user data formats<br />
* Provide a platform for using interesting per-URL metadata<br />
* Improving the capabilities of Live Bookmarks<br />
<br />
== Planned Milestones ==<br />
<br />
All milestone builds are hosted at http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/experimental/places/<br />
<br />
Milestone 2 (1/30/2006):<br />
<br />
What's new in this build:<br />
<br />
* Your existing history is now preserved and imported into Places.<br />
* You can search from the Places view<br />
* You can construct queries over your history/bookmarks and save them<br />
* If you are migrating to Firefox from another browser, your history and bookmarks are imported into Places.<br />
* Stability, performance, and bug fixes<br />
<br />
Known issues:<br />
<br />
* It is recommended that you delete the file "storage.sdb" in your profile directory if you have previously run a Places build.<br />
* 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.<br />
* If you use the installer, you have to do a custom install and disable Quality Feedback Agent. Otherwise, the installation will error out.<br />
* Bookmark keywords do not work yet.<br />
* If your profile directory is on NFS, you will see slower performance.<br />
<br />
Milestone 1 (12/15/2005):<br />
<br />
This is our first public milestone build. It has a working Places view, history, and bookmarks (with import). There are a few known issues:<br />
<br />
* These builds are based on the Firefox trunk. As a result, any extensions which claim only 1.5.0.* compatibility will be disabled.<br />
* If you use the installer, you have to do a custom install and disable Quality Feedback Agent. Otherwise, the installation will error out.<br />
* Existing bookmarks are imported, but history is not yet imported.<br />
* Bookmark keywords do not work yet.<br />
* If your profile directory is on NFS, you will see slower performance.<br />
<br />
Please file bugs in bugzilla. You can use this link: <br />
https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox&component=Places<br />
<br />
= Overview =<br />
<br />
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. <br />
<br />
== Background ==<br />
<br />
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). <br />
<br />
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.<br />
<br />
== Use Cases ==<br />
<br />
TBD.<br />
<br />
== Functional Requirements ==<br />
<br />
TBD, but reasonable compatibility with Firefox 1.x<br />
<br />
== Plans & Design Documents ==<br />
<br />
=== Design Documents ===<br />
<br />
* [[Places:User Interface]]<br />
* [[Places:Design Overview]]<br />
<br />
* [[Places:URL Store]]<br />
* [[Places:Bookmarks]]<br />
* [[Places:Query System]]<br />
* [[Places:place URIs]]<br />
* [[Places:Results]]<br />
* [[Places:Controller]]<br />
* [[Browser History]]<br />
* [[Places:AutoComplete]]<br />
* [[Places:Transactions]]<br />
<br />
==== Special Containers ====<br />
* [[Places:Bookmarks Containers]]<br />
* [[Places:Live Bookmarks]]<br />
* [[Places:File System Container]]<br />
<br />
More to come...<br />
<br />
=== Code Location ===<br />
<br />
<pre>mozilla/browser/components/places/</pre> for the most part. Build with --enable-places in your .mozconfig file. This development is happening simultaneously on the trunk and MOZILLA_1_8_BRANCH. To avoid conflicting with the browser and causing bustage, there are some shims in place that overlay the browser to insert the Places UI access points.<br />
<br />
=== Team ===<br />
<br />
* [[Places:Task List]]<br />
<br />
== API Changes Required ==<br />
<br />
The APIs for accessing Bookmarks and History will be replaced. APIs abstracting the layout of the metadata tables used in the profile storage file will be provided. See above for details.<br />
<br />
* [[Places:History API]]<br />
* [[Places:Bookmarks API]]<br />
* [[Places:Annotations API]]<br />
<br />
== Impact ==<br />
<br />
=== Extensions ===<br />
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.<br />
<br />
= Discussion & Implications =<br />
<br />
== Discussion Elsewhere ==<br />
<br />
[http://robert.accettura.com/archives/2005/08/01/intelligent-bookmarking-draft/ Intelligent Bookmarking (Draft) - Robert Accettura]<br />
<br />
[http://tdot.blog-city.com/evolution_bookmarking.htm/The Evolution of Bookmarking -- Bookmarks, Firefox, del.icio.us, Tagging, and Information Management]<br />
<br />
[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)<br />
<br />
[[User:Dria/On Tagging|Deb Richardson's "On Tagging"]]</div>Benhttps://wiki.mozilla.org/index.php?title=Places&diff=23214Places2006-03-31T00:50:41Z<p>Ben: </p>
<hr />
<div>''Please comment in the Talk page (use the Discussion tab above)''<br />
<br />
Bug list: [http://tinyurl.com/8xgkf Places bugs by milestone, owner]<br />
<br />
= Goals & Objectives =<br />
The primary objectives of this project are to: <br />
<br />
* Improve access to History and Bookmarks<br />
* Make it easier for people to Bookmark pages<br />
<br />
Secondary objectives include:<br />
<br />
* Consolidating user data formats<br />
* Provide a platform for using interesting per-URL metadata<br />
* Improving the capabilities of Live Bookmarks<br />
<br />
== Planned Milestones ==<br />
<br />
All milestone builds are hosted at http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/experimental/places/<br />
<br />
Milestone 2 (1/30/2006):<br />
<br />
What's new in this build:<br />
<br />
* Your existing history is now preserved and imported into Places.<br />
* You can search from the Places view<br />
* You can construct queries over your history/bookmarks and save them<br />
* If you are migrating to Firefox from another browser, your history and bookmarks are imported into Places.<br />
* Stability, performance, and bug fixes<br />
<br />
Known issues:<br />
<br />
* It is recommended that you delete the file "storage.sdb" in your profile directory if you have previously run a Places build.<br />
* 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.<br />
* If you use the installer, you have to do a custom install and disable Quality Feedback Agent. Otherwise, the installation will error out.<br />
* Bookmark keywords do not work yet.<br />
* If your profile directory is on NFS, you will see slower performance.<br />
<br />
Milestone 1 (12/15/2005):<br />
<br />
This is our first public milestone build. It has a working Places view, history, and bookmarks (with import). There are a few known issues:<br />
<br />
* These builds are based on the Firefox trunk. As a result, any extensions which claim only 1.5.0.* compatibility will be disabled.<br />
* If you use the installer, you have to do a custom install and disable Quality Feedback Agent. Otherwise, the installation will error out.<br />
* Existing bookmarks are imported, but history is not yet imported.<br />
* Bookmark keywords do not work yet.<br />
* If your profile directory is on NFS, you will see slower performance.<br />
<br />
Please file bugs in bugzilla. You can use this link: <br />
https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox&component=Places<br />
<br />
= Overview =<br />
<br />
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. <br />
<br />
== Background ==<br />
<br />
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). <br />
<br />
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.<br />
<br />
== Use Cases ==<br />
<br />
TBD.<br />
<br />
== Functional Requirements ==<br />
<br />
TBD, but reasonable compatibility with Firefox 1.x<br />
<br />
== Plans & Design Documents ==<br />
<br />
=== Design Documents ===<br />
<br />
* [[Places:User Interface]]<br />
* [[Places:Design Overview]]<br />
<br />
* [[Places:URL Store]]<br />
* [[Places:Bookmarks]]<br />
* [[Places:Query System]]<br />
* [[Places:place URIs]]<br />
* [[Places:Results]]<br />
* [[Places:Controller]]<br />
* [[Browser History]]<br />
* [[Places:AutoComplete]]<br />
<br />
==== Special Containers ====<br />
* [[Places:Bookmarks Containers]]<br />
* [[Places:Live Bookmarks]]<br />
* [[Places:File System Container]]<br />
<br />
More to come...<br />
<br />
=== Code Location ===<br />
<br />
<pre>mozilla/browser/components/places/</pre> for the most part. Build with --enable-places in your .mozconfig file. This development is happening simultaneously on the trunk and MOZILLA_1_8_BRANCH. To avoid conflicting with the browser and causing bustage, there are some shims in place that overlay the browser to insert the Places UI access points.<br />
<br />
=== Team ===<br />
<br />
* [[Places:Task List]]<br />
<br />
== API Changes Required ==<br />
<br />
The APIs for accessing Bookmarks and History will be replaced. APIs abstracting the layout of the metadata tables used in the profile storage file will be provided. See above for details.<br />
<br />
* [[Places:History API]]<br />
* [[Places:Bookmarks API]]<br />
* [[Places:Annotations API]]<br />
<br />
== Impact ==<br />
<br />
=== Extensions ===<br />
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.<br />
<br />
= Discussion & Implications =<br />
<br />
== Discussion Elsewhere ==<br />
<br />
[http://robert.accettura.com/archives/2005/08/01/intelligent-bookmarking-draft/ Intelligent Bookmarking (Draft) - Robert Accettura]<br />
<br />
[http://tdot.blog-city.com/evolution_bookmarking.htm/The Evolution of Bookmarking -- Bookmarks, Firefox, del.icio.us, Tagging, and Information Management]<br />
<br />
[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)<br />
<br />
[[User:Dria/On Tagging|Deb Richardson's "On Tagging"]]</div>Benhttps://wiki.mozilla.org/index.php?title=Places:Firefox_2_User_Interface_Ideas&diff=22852Places:Firefox 2 User Interface Ideas2006-03-24T00:09:26Z<p>Ben: /* Command Updating */</p>
<hr />
<div>= Background =<br />
<br />
Improve the usability of Bookmarks and History, since roughly 20% of page visits are to pages visited > 10 pages ago. <br />
<br />
== Use Cases ==<br />
<br />
From a UI perspective, make it easier to use Bookmarks and History, optimized for these tasks, in decreasing priority order:<br />
<br />
# searching or fast access<br />
# browsing<br />
# organizing<br />
<br />
The number one task someone usually wants to do with respect to Bookmarks or History is quickly find a page and open it. Then comes considered browsing which often happens as a result of either desire to kill time, process a list of tasks, or frustration at the failure of the search mechanism. Finally there is organization: assigning metadata to entries and sometimes filing them into folders.<br />
<br />
At the same time, many folk are not adding bookmarks, perhaps for reasons such as:<br />
<br />
* UI for adding is not exposed where they'll find it (I have a feeling people don't interact with menus very much, unless something is wrong and they're frustrated and trying to fix it)<br />
* The addition experience has traditionally been awful. The dialog box presented forces the user to think about a categorization scheme. Ignoring it may make the user feel guilty for not taking part. The process seems heavyweight. It doesn't seem as trivial as simply saying "save for later" - like dog-earing a page. <br />
<br />
= Proposed System = <br />
<br />
The proposed system is described in this document. <br />
<br />
== Topics ==<br />
<br />
The Places system is made up of the following components:<br />
<br />
For access (use case matched in parentheses):<br />
* Places Search Popup (1)<br />
* Places Popup (2)<br />
* Bookmarks Menu (2)<br />
* History Menu (2)<br />
* Bookmarks Toolbar (1)<br />
* Places Manager (2, 3)<br />
* Autocomplete Fields (1)<br />
* Session History List (1)<br />
* Tag Selector (1, 2, 3)<br />
<br />
Additional topics:<br />
* Search Result Ranking (1)<br />
* Place Item Context Menus (3)<br />
<br />
For adding:<br />
* Add Bookmark <br />
* Content Area Integration<br />
* Tab Browser Integration<br />
<br />
For organizing:<br />
* Bookmark Properties<br />
<br />
=== Places Search Popup ===<br />
<br />
==== Search History & Bookmarks Button ====<br />
<br />
A new customizable button is added to the left of the Bookmarks Toolbar entries and is called "Search History and Bookmarks". (Displaying this text in a tooltip, showing only an icon). <br />
(XXX open issue: what to show as the text when this button is dropped onto a toolbar that is showing labels, too)<br />
<br />
<code><pre><br />
|<br />
+------------------------------------------------------<br />
| @= | / PTBookmark 1 / PTBookmark 2 / PTBookma...<br />
+------------------------------------------------------<br />
</pre></code><br />
<br />
==== Searching ====<br />
<br />
When the user clicks the button, the following popup is displayed, visually connected to the button:<br />
<br />
<code><pre><br />
|<br />
+------------------------------------------------------<br />
|#@=#| / PTBookmark 1 / PTBookmark 2 / PTBookma...<br />
| +------------------------------+<br />
| Search: [ ](*) | <-- (1)<br />
| ( >> ) | <-- (2)<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# A text field that searches over Bookmarks and History, with autocomplete semantics defined in the Autocomplete Fields section, and a Tag Selector widget for mouse-based tag selection<br />
# A disclosure widget that expands this popup into the Places Popup, allowing fast browsing. The state of this widget is persisted so that if the popup is expanded, it will be expanded the next time the popup is shown, too.<br />
<br />
==== Search Results ====<br />
<br />
The user can type some terms into the field, autocompleted according to the semantics defined in the Autocomplete Fields section. When they do this, after a short delay (to prevent excessive querying) results are displayed in the popup:<br />
<br />
<code><pre><br />
|<br />
+------------------------------------------------------<br />
|#@=#| / PTBookmark 1 / PTBookmark 2 / PTBookma...<br />
| +------------------------------+<br />
| Search: [ goat teleporter (x)](*) | <-- (1)<br />
| |<br />
| +-------------------------------+ |<br />
| | The Goat Teleporter & You | | <-- (2)<br />
| | http://www.goatweekly.net... | | <br />
| |...............................| |<br />
| | Livestock teleportation | |<br />
| | http://www.arginews.co.uk... | |<br />
| |...............................| |<br />
| | Goat species | |<br />
| | http://en.wikipedia.org/G... | |<br />
| |...............................| |<br />
| | Teleportation Newsletter | |<br />
| | http://www.ieee.org/adv.c... | |<br />
| +-------------------------------+ |<br />
| ( >> ) |<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# In this view, when the user has entered terms, a close box appears on the right side of the field to allow mouse-centric users to cancel the search and hide the results. Pressing the ESC key also accomplishes this task. <br />
# Results are shown below the field, and the popup is sized to the number of results, up to a maximum height at which the results list begins to scroll. Clicking or pressing Enter on a result loads the page in the current tab, a modified click/Enter press opens in a new tab or window, as configured. (XXX open issue: show the URL below the title, for disambiguation for poorly titled pages)<br />
<br />
=== Places Popup ===<br />
<br />
When the disclosure button in the Places Search Popup is clicked, the popup changes to show the contents of a selected Place (by default: the Bookmarks Menu) (XXX open issue: should this be the All Bookmarks query?)<br />
<br />
<code><pre><br />
|<br />
+------------------------------------------------------<br />
|#@=#| / PTBookmark 1 / PTBookmark 2 / PTBookma...<br />
| +------------------------------+<br />
| Search: [ ](*) | <-- (1)<br />
| |<br />
| +-------------------------------+ |<br />
| | / Foo | | <-- (2)<br />
| | / Bar | |<br />
| | # Baz | |<br />
| | / FooFoo | |<br />
| | | |<br />
| | | |<br />
| | | |<br />
| | | |<br />
| | | |<br />
| | | |<br />
| +-------------------------------+ |<br />
| Showing: [ @ Bookmarks Menu :^] | <-- (3)<br />
| |<br />
| ( Organize... ) ( << ) | <-- (4)<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# XXX open issue: should searching at this point search all Bookmarks and History as before, or the currently shown Place?<br />
# This list is a simple hierarchical view of folders and leaf items. It shows the content of the Place selected in the Place selector. The sort order for this list may be different from the sort order last selected in the Places manager, it is likely to be something more suitable for this fast-access view, although it should be overridable using the context menu. <br />
# The Place selector lets the user pick a Place to show the content of. The contents of this list maps to the contents of the left bar in the Places Manager. XXX open issue: menu selector does not make it clear the list can be changed that easily. IE7 uses separate buttons for Favorites and History. <br />
# The Organize button shows the Places Manager in a separate window. <br />
<br />
XXXben: document context menu for the view itself<br />
<br />
=== Bookmarks Menu ===<br />
<br />
The Browser Menu Bar has a "Bookmarks" menu item containing:<br />
<br />
<code><pre><br />
+-----------+<br />
| Bookmarks |<br />
| +-----------------------+<br />
| Bookmark this Page... Ctrl+D | <-- (1)<br />
| Bookmark all Tabs... | <-- (2)<br />
| Search in Bookmarks... Ctrl+B | <-- (3)<br />
| Organize Bookmarks... | <-- (4)<br />
| --------------------------------- |<br />
| <items> | <-- (5)<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# Show a dialog allowing the user to add a bookmark to the current page.<br />
# Show a dialog allowing the user to add bookmarks to all of the pages opened in tabs within this window, in a new Folder.<br />
# Show the Places Search Popup for quick searching of Bookmarks and History. <br />
# Show the Places Organizer Window for more detailed browsing or organization. <br />
# Shows the contents of the Bookmarks Menu folder. <br />
<br />
Items are inserted into the Bookmarks Menu as they are into any other folder, in the order they added. When there are too many items to display, the list scrolls.<br />
<br />
=== History Menu ===<br />
<br />
The Browser Menu Bar has a "History" menu item containing:<br />
<br />
<code><pre><br />
+---------+<br />
| History |<br />
| +-------------------------+<br />
| Back Alt+<- | <-- (1)<br />
| Forward Alt+-> | <br />
| --------------------------------- |<br />
| Tag this Page Ctrl+Shift+8 | <-- (2)<br />
| Recently Tagged > | <-- (3)<br />
| --------------------------------- |<br />
| Search in History... Ctrl+H | <-- (4)<br />
| View All History... | <-- (5)<br />
| --------------------------------- |<br />
| <session history for current tab> | <-- (6)<br />
| --------------------------------- |<br />
| Clear Private Data... C+S+Del | <-- (7)<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# Menu items for Back and Forward (advertise key bindings)<br />
# Shows the Tagging Balloon<br />
# Shos a submenu of recently tagged pages. XXX<br />
# Show the Places Search Popup for quick searching of Bookmarks and History. <br />
# Show the Places Organizer Window for more detailed browsing and searching.<br />
# Shows the Session History List for the current document. The pivot (current page) in the list is represented by a bullet. See Session History List for more information.<br />
# A link to the Clear Private Data function (which moves here from Tools). <br />
<br />
=== Session History List ===<br />
<br />
The Session History is a list of pages visited by the user. The user navigates backwards and forwards in this list by individual pages using the back and forward buttons, or to a discrete point in the list using the History or Back/Forward button menus. <br />
<br />
The '''pivot''' is the page the user is currently at in the list. There may be pages ahead and behind the pivot page in the Session History list. <br />
<br />
To make navigation to recently visited pages faster, especially when the Session History list is deep (e.g. viewing a slideshow) page groups (grouping is determined according to the Session History Grouping Heuristic) are collapsed at either end when displayed in the UI to allow the user to quickly navigate in "chapters", e.g. back to the entry point of a site. <br />
<br />
A complete display of a visual representation of the Session History list for the History Menu, with many pages before and after the pivot page:<br />
<br />
<code><pre><br />
@ Chapter Stop<br />
@ Chapter Stop<br />
@ Page<br />
@ Page<br />
@ Page<br />
* Pivot<br />
@ Page<br />
@ Page<br />
@ Page<br />
@ Chapter Stop<br />
@ Chapter Stop<br />
</pre></code><br />
<br />
==== Grouping Heuristic ====<br />
<br />
XXX open issue<br />
<br />
=== Tag Selector ===<br />
<br />
A checklist of the all user's tags, presented in a popup. Used in the Search and Add UIs:<br />
<br />
<code><pre><br />
+-+<br />
|*|<br />
| +--------------+<br />
|##goats#########|<br />
|##teleporter####|<br />
| work |<br />
| mozilla |<br />
|----------------|<br />
| ( Done )|<br />
+----------------+<br />
</pre></code><br />
<br />
The list expands up to a certain height at which point it scrolls. <br />
<br />
=== Bookmarks Toolbar ===<br />
<br />
The Bookmarks Toolbar is a Customizable Toolbar Item which contains the contents of the Bookmarks Toolbar Folder. Bookmarks, Live Bookmarks and Folders are shown here. <br />
<br />
The user can drag links onto the toolbar (drop feedback shown to either side of each item) and drag them into Folders. When the user hovers over a folder during a drag for a few seconds, the folder opens and the user can drag the item deeper into the folder hierarchy. <br />
<br />
Items that do not fit in the available space are removed from the view and a chevron menu appears at the end of the strip, containing a menu that shows each of the "overflowed" items.<br />
<br />
When the user clicks on a folder to open it, the user is then able to move their mouse around over other folders on the strip to open them, without having to click again. This is especially useful for Live Bookmarks on the toolbar where the user can quickly scan new postings across several Live Bookmarks with a single gesture.<br />
<br />
Each item on the Toolbar has the standard Places Item Context Menu, with the addition of items specific to the toolbar: <br />
<br />
<code><pre><br />
| |<br />
| --------------------- |<br />
| Change Folder... | <-- (1)<br />
| ------------------------ |<br />
| Customize Toolbars... | <-- (2)<br />
+--------------------------+<br />
</pre></code><br />
<br />
# XXX open issue: this is probably uber-geek but fits with ideas i've heard people discussing. Shows a dialog that lets the user choose a folder or Place: query to root the toolbar on. This may let the user root their toolbar on a delicious folder, for instance, with a delicious extension installed. Related to this, it may be interesting to allow the instantiation of N instances of the Bookmarks toolbar to show the content of different folders. <br />
# Show the Customize Toolbar dialog. Added to make it easier to show the Customize dialog since at present showing it means clicking on just the ''right'' button, and users will not understand the distinction. This menu item should be shown on all context menus for any Toolbar item. <br />
<br />
=== Places Organizer ===<br />
<br />
The Places Organizer is a window that allows the user to search, browse and organize their bookmarks.<br />
<br />
<code><pre><br />
+-----------------------------------------------------------------------+<br />
| File Edit View Help |<br />
+-----------------------------------------------------------------------+<br />
| [@ Search Bookmarks & History ] | @ New Folder @ Delete |<br />
+-----------------------------------------------------------------------+<br />
| +----------------------+ +------------------------------------------+ |<br />
| | @ All History | | Showing Bookmarks Menu | |<br />
| |#@#Bookmarks#Menu#####| |==========================================| |<br />
| | @ Bookmarks Toolbar | | Name | Location | |<br />
| | @ Subscriptions | |------------------+-----------------------| |<br />
| | @ Bonjour | | CNN.com http://www.cnn.com/ | |<br />
| | @ Most Visited | | | |<br />
| | @ Updated Today | | | |<br />
| | @ Folder 1 | | | |<br />
| | @ Folder 2 | | | |<br />
| | @ Folder 3 | | | |<br />
| | @ Folder 4 | | | |<br />
| | @ Folder 5 | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| +----------------------+ +------------------------------------------+ |<br />
| ( + New Folder ) ( + New Folder ) /|<br />
+-----------------------------------------------------------------------+<br />
</pre></code><br />
<br />
(Subsequent captures will show only the view area, excluding the toolbar and menu)<br />
<br />
==== Places List ====<br />
<br />
The Places Pane is the pane on the left that shows the top level of the Places root. Its contents include several predefined entries. Some are "special" and cannot be removed because doing so would obscure access to areas of the user's History or Bookmarks. Users may also add items to the list.<br />
<br />
The Places Pane includes entries for (in this order):<br />
<br />
In the static area: <br />
<br />
* All History<br />
* All Bookmarks<br />
* Bookmarks Menu<br />
* Bookmarks Toolbar<br />
* Subscriptions<br />
* Any other item that cannot be deleted by the user (e.g. Bonjour Sites)<br />
<br />
In the user-editable area:<br />
<br />
* Most often visited <br />
* Any place: query that could equally have been generated by the user using the Save Search Query functionality. <br />
* User created Folders<br />
<br />
===== All History =====<br />
<br />
Shows a list of all of the user's browsing history, by default sorted in reverse chronological order so the most recent entries are at the top. This list can be sorted, or grouped according to the grouping options described in the History section below. <br />
<br />
===== All Bookmarks =====<br />
<br />
Shows a flat list of all pages that are Bookmarked. This includes pages that have been marked as interesting but not placed in any folder. This list can be sorted. <br />
<br />
===== Bookmarks Menu, Toolbar =====<br />
<br />
Shows a list of the contents of the Bookmarks Menu or Toolbar, grouped by folders. The user can reorder this list using sorting, or by using drag and drop. <br />
<br />
===== Subscriptions =====<br />
<br />
Shows a flat list of pages that represent posts from Live Bookmarks, sorted by Post Date by default. This list can be sorted, or grouped by Feed according to the Subscriptions section below. <br />
<br />
==== History ====<br />
<br />
<code><pre><br />
+-----------------------------------------------------------------------+<br />
| +----------------------+ +------------------------------------------+ |<br />
| |[ ]| | Showing History for (date range) | |<br />
| | @ All History | |==========================================| |<br />
| | @ All Bookmarks | | Name | Location | |<br />
| | @ Bookmarks Menu | |------------------+-----------------------| |<br />
| | @ Bookmarks Toolbar | | MLS Listings http://www.mlslis... | |<br />
| | @ Subscriptions | | L.J. Hooker http://www.lhhook... | |<br />
| | @ Most Visited | | v Barfoot & Th... http://www.barfoo... | |<br />
| | @ Updated Today | | Epsom Stunner! http://www.barfoo... ||<br />
| | @ Folder 1 | | Grammar Zone! http://www.barfoo... | |<br />
| | @ Folder 2 | | Charming, P... http://www.barfoo... | |<br />
| | @ Folder 3 | | | |<br />
| | @ Folder 4 | | | |<br />
| | @ Folder 5 | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| +----------------------+ +------------------------------------------+ |<br />
| ( + New Folder ) Group by: (#Site#| Page ) |<br />
+-----------------------------------------------------------------------+<br />
</pre></code><br />
<br />
===== Grouping Options =====<br />
<br />
* '''Group by Page''' - flat list of all pages<br />
* '''Group by Site''' - host/site based grouping, showing entry page as folder and other pages on site as children<br />
<br />
==== Searching ====<br />
<br />
<code><pre><br />
+-----------------------------------------------------------------------+<br />
| +----------------------+ +------------------------------------------+ |<br />
| |[ real estate| ]| | Search Results for 'foo': ( Save )(+)| |<br />
| | @ All History | |==========================================| |<br />
| | @ All Bookmarks | | Name | Location | |<br />
| | @ Bookmarks Menu | |------------------+-----------------------| |<br />
| | @ Bookmarks Toolbar | | MLS Listings http://www.mlslis... | |<br />
| | @ Subscriptions | | L.J. Hooker http://www.lhhook... | |<br />
| | @ Most Visited | | Barfoot & Thompson http://www.barfoo... | |<br />
| | @ Updated Today | | Century 21 http://www.centur... | |<br />
| | @ Folder 1 | | | |<br />
| | @ Folder 2 | | | |<br />
| | @ Folder 3 | | | |<br />
| | @ Folder 4 | | | |<br />
| | @ Folder 5 | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| +----------------------+ +------------------------------------------+ |<br />
| ( + New Folder ) Group by: ( Site | Page ) |<br />
+-----------------------------------------------------------------------+<br />
</pre></code><br />
<br />
===== Grouping Options =====<br />
<br />
* '''Group by Page''' - flat list of all pages<br />
* '''Group by Site''' - host/site based grouping, showing entry page as folder and other pages on site as children<br />
<br />
===== Advanced Search =====<br />
<br />
When the user searches for some terms, they can specify additional keys by clicking the "+" button in the banner strip next to "Save". This adds a new constraint, from the following set:<br />
<br />
'''Text Search'''<br />
<br />
Matches items whose title, etc matches the specified terms. Future versions will scan page content. <br />
<br />
<code><pre><br />
Containing the text: [ goat ]<br />
</pre></code><br />
<br />
'''Visit Time'''<br />
<br />
Matches items whose visit date falls within the specified range. <br />
<br />
<code><pre><br />
Visited [ between :^] [ 27 July, 2006 ] and [ 29 July, 2006 ] <-- (1)<br />
Visited [ after :^] [ 27 July, 2006 ] <br />
Visited [ before :^] [ 27 July, 2006 ] <br />
Visited [ more than :^] [ 4 ] [ days :^] ago<br />
Visited [ more than :^] [ 3 ] [ weeks :^] ago<br />
Visited [ less than :^] [ 4 ] [ days :^] ago<br />
Visited [ less than :^] [ 1 ] [ months :^] ago<br />
Visited [ today :^]<br />
</pre></code><br />
<br />
# These are non-user-editable static date fields. When the user clicks in the field, a calendar picker is shown. <br />
<br />
'''Location'''<br />
<br />
Matches items whose location (URL) matches the specified terms.<br />
<br />
<code><pre><br />
Location [ starts with :^] [ http://www.goats ]<br />
Location [ is :^] [ http://www.news.com/ ]<br />
Location [ is on site :^] [ news.com ]<br />
</pre></code><br />
<br />
'''Type'''<br />
<br />
Matches items whose type matches the selection.<br />
<br />
<code><pre><br />
Link is [x] a bookmark [x] a subscribed feed [x] a blog post or news item<br />
</pre></code><br />
<br />
'''Tags'''<br />
<br />
Matches items tagged with the specified terms.<br />
<br />
<code><pre><br />
Tags [ contain :^] [ goat, teleporter ] <-- (1)<br />
Tags [ are :^] [ goat, teleporter ]<br />
</pre></code><br />
<br />
# This is a tag autocompletion field<br />
<br />
'''Folders'''<br />
<br />
Matches items within the specified folders.<br />
<br />
<code><pre><br />
In folders: [ Bookmarks Menu, Goats ] ( Add... ) ( Reset )<br />
</pre></code><br />
<br />
'''Maximum Results'''<br />
<br />
Specifies a maximum number of results to return, e.g. 10. <br />
<br />
<code><pre><br />
Limit to [ 10 ] pages <br />
</pre></code><br />
<br />
XXX open issue: option for default sort order.<br />
<br />
Items are shown when they match all of the conditions set in each of the above areas. <br />
<br />
Each criteria can be selected from a dropdown list when a new row is added to the view:<br />
<br />
<code><pre><br />
+------------------------------------------------------+<br />
| Search results for "foo" ( Save )(+) |<br />
+------------------------------------------------------+<br />
| Containing the text: [ foo ] (+)(-)|<br />
| Visited [ after: ^] [ 27 July, 2005 ] (+)(-)|<br />
+------------------------------------------------------+<br />
| Name | Location |<br />
|--------------------+---------------------------------|<br />
| Barfoot & Thompson http://www.barfoots.co.nz/ |<br />
| |<br />
</pre></code><br />
<br />
===== Saving a Search Query =====<br />
<br />
The user can save a set of conditions as a Place to be shown on the Places bar. They can copy or drag the conditions elsewhere within their Bookmarks, e.g. onto their toolbar. The user saves the query by pressing the Save button on the banner:<br />
<br />
<code><pre><br />
+------------------------------------------------------+<br />
| Search results for "foo" ( Save )(+) | <-- SAVE<br />
+------------------------------------------------------+<br />
| Containing the text: [ foo ] (+)(-)|<br />
| Visited [ from: ^] [ 27 July, 2005 ] (+)(-)|<br />
+------------------------------------------------------+<br />
| Name | Location |<br />
|--------------------+---------------------------------|<br />
| Barfoot & Thompson http://www.barfoots.co.nz/ |<br />
| |<br />
</pre></code><br />
<br />
When a place is selected in the Places UI, it can be edited by clicking the Edit button in the banner:<br />
<br />
<code><pre><br />
+------------------------------------------------------+<br />
| Showing My Smart Folder ( Edit )|<br />
+------------------------------------------------------+<br />
| Name | Location |<br />
|--------------------+---------------------------------|<br />
| Barfoot & Thompson http://www.barfoots.co.nz/ |<br />
| |<br />
</pre></code><br />
<br />
==== Subscriptions ====<br />
<br />
A case study of smart folders. Show all folders whose type is "feed", and their contents. Should show additional column for published date and author. Should also show read state (bold = unread, normal = read)<br />
<br />
===== Aggregation View (Group by Post) =====<br />
<code><pre><br />
+-----------------------------------------------------------------------+<br />
| +----------------------+ +------------------------------------------+ |<br />
| |[ Search Bkmks & Hist]| | Showing All Subscriptions | |<br />
| | @ All History | |==========================================| |<br />
| | @ Bookmarks Menu | | Name | Location | |<br />
| | @ Bookmarks Toolbar | |------------------+-----------------------| |<br />
| |#@#Subscriptions######| | Blog A Post 1 http://foo.blogge... | |<br />
| | @ Bonjour | | Blog B Post 1 http://bar.blogge... | |<br />
| | @ Most Visited | | Blog A Post 2 http://foo.blogge... | |<br />
| | @ Updated Today | | Blog B Post 2 http://bar.blogge... | |<br />
| | @ Folder 1 | | | |<br />
| | @ Folder 2 | | | |<br />
| | @ Folder 3 | | | |<br />
| | @ Folder 4 | | | |<br />
| | @ Folder 5 | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| +----------------------+ +------------------------------------------+ |<br />
| ( + New Folder ) Group by: ( Feed |#Post#) |<br />
+-----------------------------------------------------------------------+<br />
</pre></code><br />
<br />
===== Feed View (Group by Feed) =====<br />
<code><pre><br />
+-----------------------------------------------------------------------+<br />
| +----------------------+ +------------------------------------------+ |<br />
| |[ Search Bkmks & Hist]| | Showing All Subscriptions | |<br />
| | @ All History | |==========================================| |<br />
| | @ Bookmarks Menu | | Name | Location | |<br />
| | @ Bookmarks Toolbar | |------------------+-----------------------| |<br />
| |#@#Subscriptions######| | v Blog A | |<br />
| | @ Bonjour | | Post 1 http://foo.blogge... | |<br />
| | @ Most Visited | | Post 2 http://foo.blogge... | |<br />
| | @ Updated Today | | v Blog B | |<br />
| | @ Folder 1 | | Post 1 http://bar.blogge... | |<br />
| | @ Folder 2 | | Post 2 http://bar.blogge... | |<br />
| | @ Folder 3 | | | |<br />
| | @ Folder 4 | | | |<br />
| | @ Folder 5 | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| +----------------------+ +------------------------------------------+ |<br />
| ( + New Folder ) Group by: (#Feed#| Post ) |<br />
+-----------------------------------------------------------------------+<br />
</pre></code><br />
<br />
==== Browsing By and Changing Tags ====<br />
<br />
In any view, items can be selected and tagged (marked as interesting for later <br />
use) using the tagging UI at the bottom of the main view:<br />
<br />
<code><pre><br />
|<br />
+------------------------------------------------+<br />
| Browse Tags: [ ] | <-- (1)<br />
+-------+ [ ] |<br />
| Edit | [ ] | <-- (2)<br />
+------------------------------------------------+<br />
</pre></code><br />
<br />
# The Browse tags panel lets the user filter the list by any combination of available tags. <br />
# The Edit tags panel lets the user type new tags to be applied to the selection. The selected panel is remembered. <br />
<br />
XXX open issue: is this the right UI?<br />
XXX open issue: which is the default panel?<br />
<br />
==== Menus ====<br />
<br />
===== File Menu =====<br />
<br />
<code><pre><br />
+------+<br />
| File |<br />
| +-----------------------+<br />
| New Bookmark... |<br />
| New Folder... |<br />
| New Separator |<br />
| ---------------------------- |<br />
| Import... |<br />
| Export... |<br />
| ---------------------------- |<br />
| Close Ctrl+W |<br />
+------------------------------+<br />
</pre></code><br />
<br />
===== Edit Menu =====<br />
<br />
<code><pre><br />
+------+<br />
| Edit |<br />
| +-----------------------+<br />
| Undo Ctrl+Z |<br />
| Redo Ctrl+Y |<br />
| ---------------------------- |<br />
| Cut Ctrl+X | <br />
| Copy Ctrl+C |<br />
| Paste Ctrl+V |<br />
| Delete Del |<br />
| ---------------------------- |<br />
| Select All Ctrl+A |<br />
| ---------------------------- |<br />
| Search Bookmarks/H.. Ctrl+F |<br />
| ---------------------------- |<br />
| Properties... Ctrl+I |<br />
+------------------------------+<br />
</pre></code><br />
<br />
===== View Menu =====<br />
<br />
<code><pre><br />
+------+<br />
| View |<br />
| +-----------------------+<br />
| Reload Ctrl+R | <br />
| ---------------------------- |<br />
| x Toolbar |<br />
| Show Columns > |<br />
| ---------------------------- |<br />
| * Unsorted |<br />
| Sort by Title |<br />
| Sort by Location |<br />
| <cols> |<br />
| ---------------------------- |<br />
| A > Z Sort Order |<br />
| Z < A Sort Order |<br />
+------------------------------+<br />
</pre></code><br />
<br />
===== Help Menu =====<br />
<br />
<code><pre><br />
+------+<br />
| Help |<br />
| +-----------------------+<br />
| Using Bookmarks |<br />
| Using History |<br />
| Advanced Tips & Tricks |<br />
| For Internet Explorer Users |<br />
| ---------------------------- |<br />
| Help Contents F1 |<br />
| Release Notes |<br />
| ---------------------------- |<br />
| Check for Updates... |<br />
| ---------------------------- |<br />
| About Mozilla Firefox |<br />
+------------------------------+<br />
</pre></code><br />
<br />
=== Tag Autocompletion ===<br />
<br />
=== Search Result Ranking ===<br />
<br />
Bookmarks and History results should show up in several autocomplete lists: <br />
<br />
* Places Search Popup search results<br />
* Places Organizer search results<br />
* Location Bar Autocomplete <br />
<br />
When the user searches for a URL, the results are sorted ... XXX document<br />
<br />
When the user searches for tags, the results are sorted ... XXX document<br />
<br />
=== Place Item Context Menu ===<br />
<br />
The most complete Place context menu:<br />
<br />
<code><pre><br />
+-----------------------+<br />
| Open | <-- (1)<br />
| Open in Tabs | <-- (2)<br />
| Open in new Tab | <-- (3)<br />
| Open in new Window | <-- (4)<br />
| --------------------- | <br />
| New Folder... | <-- (5)<br />
| New Separator | <-- (6)<br />
| --------------------- | <br />
| Cut | <-- (7)<br />
| Copy | <-- (8)<br />
| Paste | <-- (9)<br />
| Delete | <-- (10)<br />
| --------------------- | <br />
| Reload | <-- (11)<br />
| Sort by Name | <-- (12)<br />
| --------------------- | <br />
| Properties... | <-- (13)<br />
+-----------------------+<br />
</pre></code><br />
<br />
# Opens the selected item in the current tab (link)<br />
# Opens the selected item(s) or the contents of the selected folder in new tabs (links,folder)<br />
# Opens the selected item in a new tab (link)<br />
# Opens the selected item in a new window (link)<br />
# Creates a new folder adjacent to the selection (mutable)<br />
# Creates a new separator adjacent to the selection (mutable)<br />
# Cuts the selection (mutable)<br />
# Copies the selection (mixed)<br />
# Pastes the selection (mutable)<br />
# Deletes the selection (mutable)<br />
# Reloads the currently selected Live Bookmark (livemark)<br />
# Sorts the current folder permanently by name (mutable)<br />
# Shows the property editor for the current item (link,folder)<br />
<br />
Each item is shown only if the selection matches the requirements described in parentheses: link - single link selection, links - multiple links selected, folder - single folder selected, mutable - contents of editable folder selected, mixed - any content selected, livemark - live bookmark or content of live bookmark selected.<br />
<br />
=== Adding Bookmarks ===<br />
<br />
The objective for adding bookmarks is to create a lightweight experience for marking pages while supporting the traditional methods of filing bookmarks. <br />
<br />
==== Add Bookmark Dialog ====<br />
<br />
The Add Bookmark Dialog is a more heavyweight way to add a bookmark. It has several display modes:<br />
<br />
===== Tagging =====<br />
<br />
<code><pre><br />
+-----------------------------------------+<br />
| Tags: [ Work, Play ] | <-- (1)<br />
| Notes: [ ] | <-- (2)<br />
| [ ] |<br />
| [ ] |<br />
| |<br />
| ( Remove ) ( Add Bookmark ) (( Done )) | <-- (3)<br />
+-----------------------------------------+<br />
</pre></code><br />
<br />
# A field that contains the list of tags applying to the item. This uses the Tag Autocomplete widget. <br />
# A field that lets the user make some quick notes about why the page is interesting to them. <br />
# The Remove button un-tags the page. Add Bookmark shows the filing UI. Done applies the changes and closes the dialog.<br />
<br />
===== Filing =====<br />
<br />
<code><pre><br />
+-----------------------------------------------+<br />
| Name: [ Foo ] |<br />
| Location: [ http://www.foo.com/ ] |<br />
| Tags: [ Work, Play ] |<br />
| File into: [ Bookmarks Menu :^] | <-- (1)<br />
| > More |<br />
| |<br />
| ( Cancel ) (( Add Bookmark )) | <-- (2)<br />
+-----------------------------------------------+<br />
</pre></code><br />
<br />
# A list of bookmarks folders is shown also by default in the compact view. <br />
# Cancel cancels the addition of the Bookmark. Add Adds the Bookmark. Both close the dialog.<br />
<br />
===== Full Disclosure =====<br />
<br />
<code><pre><br />
+-----------------------------------------------+<br />
| Name: [ Foo ] |<br />
| Location: [ http://www.foo.com/ ] |<br />
| Tags: [ Work, Play ] |<br />
| |<br />
| File into: [ Bookmarks Menu :^] |<br />
| Shortcut: [ ] | <-- (1)<br />
| Tip: Type the shortcut in the location bar |<br />
| to open this page. |<br />
| Notes: [ ] | <-- (2)<br />
| [ ] |<br />
| [ ] |<br />
| |<br />
| ( Remove ) (( Add Bookmark )) |<br />
+-----------------------------------------------+<br />
</pre></code><br />
<br />
# A shortcut that can be entered in the location bar to load the page<br />
# Some notes on the page.<br />
<br />
===== Full Disclosure (Properties) =====<br />
<br />
In property editing mode, the dialog does not show a "File into: " line for Bookmarks that are already filed into Folders.<br />
<br />
<code><pre><br />
+-----------------------------------------------+<br />
| Name: [ Foo ] |<br />
| Location: [ http://www.foo.com/ ] |<br />
| Tags: [ Work, Play ] |<br />
| |<br />
| Shortcut: [ ] | <-- (1)<br />
| Tip: Type the shortcut in the location bar |<br />
| to open this page. |<br />
| Notes: [ ] | <-- (2)<br />
| [ ] |<br />
| [ ] |<br />
| |<br />
| (( OK )) ( Cancel ) |<br />
+-----------------------------------------------+<br />
</pre></code><br />
<br />
==== Filing Bookmarks ====<br />
<br />
===== Any Bookmarks Menu =====<br />
<br />
Bookmarks can be created in the any Bookmarks menu popup using the Bookmark this Page menu item. When this item is chosen, it will show the Add Bookmark dialog in the "Filing" mode with the selected folder selected. For instance, in the Bookmarks Menu, it would show the "Bookmarks Menu" folder selected.<br />
<br />
XXX open issue: is filing into any folder in this way a good idea? What are the usage figures on drag and drop? This could be a way for folk to discover they can file into folders on the bookmarks toolbar. <br />
<br />
===== Drag & Drop, Paste =====<br />
<br />
Bookmarks can be created by dragging links into the menu, the Places Organizer, or onto the Bookmarks Toolbar. When this is done the item is inserted without showing any dialog, it is created with the attributes of the dragged item (title, url) and filed into the folder that it is dropped into. <br />
<br />
==== Marking Pages As Interesting ====<br />
<br />
More lightweight than filing a bookmark into a folder for later frequent use is marking a page as interesting later. We suspect this is what a lot of bookmark actions actually are, and the reason why people's Bookmarks menus become quickly cluttered with items they don't use a lot. For whatever reason, folk don't use Bookmarks a lot, part of the reason for this may be the scalability of the Menu and cryptic nature of the toolbar. <br />
<br />
The "Tag" button on the browser toolbar (a clickable attachment at the end of the location bar, next to the Subscribe button which appears for pages with Feeds that can be subscribed to) provides a quick way to mark a page as interesting for later access. <br />
<br />
<code><pre>[ @ http://www.foo.com/ |v|+|S]</pre></code><br />
<br />
Pages marked as interesting are stored in Bookmarks, but not in any folder. Rather, they appear only when the All Bookmarks item is chosen from the Places bar. They can be filed into folders from this location. They also contribute with History and Filed Bookmarks to Location Bar autocompletion, and can be searched for if they are marked with tags. <br />
<br />
To mark a page as interesting, the user clicks the button and a Bookmark is added, but not into any folder, using the default title, location, etc. An info tip is shown explaining what happened:<br />
<br />
<code><pre><br />
|v|+|S]<br />
+-----------------------------------+<br />
| Page marked. | <-- (1)<br />
| Click again to edit Name/Tags |<br />
| |<br />
| ( Remove ) ( Show All Bookmarks ) | <-- (2)<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# XXX open issue: terminology!<br />
# Remove (XXX open issue: better name ... unmark?) Show All Bookmarks shows the Places Organizer, with the All Bookmarks Place selected. <br />
<br />
===== Tagging Interesting Pages =====<br />
<br />
When the user clicks the Tag button again, an Add Bookmark Dialog opened in "Tagging" mode is shown. The user can enter some tags to allow easier access later, or expand the dialog to file it as a Bookmark in a particular folder, edit additional metadata, etc. <br />
<br />
==== Editing Bookmarks ====<br />
<br />
When the user visits a page that exists within their bookmarks, the Tag button lights up and can be clicked to edit metadata. When clicked, the Add Bookmark dialog is shown in either "Tagging" or "Full Disclosure (Properties)" mode, depending on how the disclosure widget was left the last time the UI was used.<br />
<br />
From any Places view, when a user presses Ctrl+I or chooses the Properties/Get Info command from a menu, the Add Bookmark dialog is shown according to the rules described above for visiting a Bookmarked page. <br />
<br />
===== Simple Inline Edit =====<br />
<br />
Simple metadata changes can be accomplished in the tree view. This will not be done for 2.0 due to toolkit limitations.<br />
<br />
=== Content Area Integration ===<br />
<br />
On any page, a "Bookmark this Page..." menu item is available in the context menu. This shows the Filing dialog.<br />
<br />
=== Tabbed Browser Integration ===<br />
<br />
On any tab, "Bookmark this Tab..." and "Bookmark all Tabs..." menu items are available in the context menu. The Filing dialog is shown when this option is selected.<br />
<br />
= Command Updating = <br />
<br />
== Commands ==<br />
<br />
The following commands are available in each place that Places views are instantiated:<br />
<br />
{| border="1"<br />
|-<br />
! Command Alias<br />
! Command Action<br />
|-<br />
| Open<br />
| Open in last tab<br />
|-<br />
| OpenNW<br />
| Open in a new window<br />
|-<br />
| OpenT<br />
| Open in a new tab<br />
|-<br />
| OpenTS<br />
| Open in Tabs<br />
|-<br />
| NewB<br />
| New Bookmark<br />
|-<br />
| NewF<br />
| New Folder<br />
|-<br />
| NewS<br />
| New Separator<br />
|-<br />
| Cut<br />
| Cut Selection<br />
|-<br />
| Copy<br />
| Copy Selection<br />
|-<br />
| Paste<br />
| Paste/Drop<br />
|-<br />
| Delete<br />
| Delete Selection<br />
|-<br />
| SelectA<br />
| Select All<br />
|-<br />
| Sort<br />
| Sort By Name<br />
|-<br />
| Info<br />
| Link Properties<br />
|-<br />
| Reload<br />
| Reload Live Bookmark<br />
|-<br />
| Edit<br />
| Edit Query<br />
|}<br />
<br />
== Containers ==<br />
<br />
{| border="1"<br />
|-<br />
! Abbrieviation<br />
! Description<br />
|-<br />
| R/W Container<br />
| Read/Write Container (e.g. bookmark folder)<br />
|-<br />
| R Container<br />
| Read Only Container (e.g. Live Bookmark folder)<br />
|-<br />
| RD Container<br />
| Read Only Container that supports Deletion (e.g. history query)<br />
|-<br />
| System Area<br />
| Queries or Folders within the "non-user-editable" section of the Places Root<br />
|}<br />
<br />
== Enabling Rules ==<br />
<br />
The following rule-command matrix shows when UI for various commands should be ''visible'' (V = visible, I = invisible) and ''enabled'' (E = enabled, D = disabled)<br />
<br />
{| border="1"<br />
|-<br />
! Selection Type:<br />
! Selection In:<br />
! Open<br />
! OpenNW<br />
! OpenT<br />
! OpenTS<br />
! NewB<br />
! NewF<br />
! NewS<br />
! Cut<br />
! Copy<br />
! Paste<br />
! Delete<br />
! SelectA<br />
! Sort<br />
! Info<br />
! Reload<br />
! Edit<br />
|-<br />
| Link, Peers<br />
| R/W Container<br />
| VE<br />
| VE<br />
| VE<br />
| ID<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE?<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
|-<br />
| Link, Peers<br />
| R Container<br />
| VE<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VD<br />
| VE<br />
| VD<br />
| VD<br />
| VE<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
|-<br />
| Link, Peers<br />
| RD Container<br />
| VE<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VD<br />
| VE<br />
| VE<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
|-<br />
| colspan="20" | &nbsp;<br />
|-<br />
| Links, Peers<br />
| R/W Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE?<br />
| VE<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| Links, Peers<br />
| R Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| VD<br />
| VE<br />
| VD<br />
| VD<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| Links, Peers<br />
| RD Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VD<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| colspan="20" | &nbsp;<br />
|-<br />
| Separator, Peers<br />
| R/W Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE?<br />
| VE<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| Separator, Peers<br />
| R Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VD<br />
| VE<br />
| VD<br />
| VD<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| Separator, Peers<br />
| RD Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VD<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| colspan="20" | &nbsp;<br />
|-<br />
| Folder, Peers<br />
| R/W Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE?<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
|-<br />
| Folder, Peers<br />
| R Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| VD<br />
| VE<br />
| VD<br />
| VD<br />
| VE<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
|-<br />
| Folder, Peers<br />
| RD Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VD<br />
| VE<br />
| VE<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
|-<br />
| Folder, Peers<br />
| System Area<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
|-<br />
| colspan="20" | &nbsp;<br />
|-<br />
| Query, Peers<br />
| R/W Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE?<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| ID<br />
| VE<br />
|-<br />
| Query, Peers<br />
| R Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| VD<br />
| VE<br />
| VD<br />
| VD<br />
| VE<br />
| ID<br />
| VE<br />
| ID<br />
| VD<br />
|-<br />
| Query, Peers<br />
| RD Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VD<br />
| VE<br />
| VE<br />
| ID<br />
| VE<br />
| ID<br />
| VD<br />
|-<br />
| Query, Peers<br />
| System Area<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| VD<br />
|-<br />
| colspan="20" | &nbsp;<br />
|-<br />
| Mixed<br />
| R/W Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE?<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| Mixed<br />
| R Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VD<br />
| VE<br />
| VD<br />
| VD<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| Mixed<br />
| RD Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VD<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| colspan="20" | &nbsp;<br />
|-<br />
| none<br />
| R/W Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VE<br />
| VD<br />
| VD<br />
| VE?<br />
| VD<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| none<br />
| R Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| none<br />
| RD Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|}<br />
<br />
= Differences Explained =<br />
<br />
TBD.<br />
<br />
== From Firefox 1.x ==<br />
<br />
== From Earlier Versions of this Document ==<br />
<br />
== From IE ==<br />
<br />
== From Safari ==</div>Benhttps://wiki.mozilla.org/index.php?title=Places:Firefox_2_User_Interface_Ideas&diff=22851Places:Firefox 2 User Interface Ideas2006-03-24T00:06:52Z<p>Ben: </p>
<hr />
<div>= Background =<br />
<br />
Improve the usability of Bookmarks and History, since roughly 20% of page visits are to pages visited > 10 pages ago. <br />
<br />
== Use Cases ==<br />
<br />
From a UI perspective, make it easier to use Bookmarks and History, optimized for these tasks, in decreasing priority order:<br />
<br />
# searching or fast access<br />
# browsing<br />
# organizing<br />
<br />
The number one task someone usually wants to do with respect to Bookmarks or History is quickly find a page and open it. Then comes considered browsing which often happens as a result of either desire to kill time, process a list of tasks, or frustration at the failure of the search mechanism. Finally there is organization: assigning metadata to entries and sometimes filing them into folders.<br />
<br />
At the same time, many folk are not adding bookmarks, perhaps for reasons such as:<br />
<br />
* UI for adding is not exposed where they'll find it (I have a feeling people don't interact with menus very much, unless something is wrong and they're frustrated and trying to fix it)<br />
* The addition experience has traditionally been awful. The dialog box presented forces the user to think about a categorization scheme. Ignoring it may make the user feel guilty for not taking part. The process seems heavyweight. It doesn't seem as trivial as simply saying "save for later" - like dog-earing a page. <br />
<br />
= Proposed System = <br />
<br />
The proposed system is described in this document. <br />
<br />
== Topics ==<br />
<br />
The Places system is made up of the following components:<br />
<br />
For access (use case matched in parentheses):<br />
* Places Search Popup (1)<br />
* Places Popup (2)<br />
* Bookmarks Menu (2)<br />
* History Menu (2)<br />
* Bookmarks Toolbar (1)<br />
* Places Manager (2, 3)<br />
* Autocomplete Fields (1)<br />
* Session History List (1)<br />
* Tag Selector (1, 2, 3)<br />
<br />
Additional topics:<br />
* Search Result Ranking (1)<br />
* Place Item Context Menus (3)<br />
<br />
For adding:<br />
* Add Bookmark <br />
* Content Area Integration<br />
* Tab Browser Integration<br />
<br />
For organizing:<br />
* Bookmark Properties<br />
<br />
=== Places Search Popup ===<br />
<br />
==== Search History & Bookmarks Button ====<br />
<br />
A new customizable button is added to the left of the Bookmarks Toolbar entries and is called "Search History and Bookmarks". (Displaying this text in a tooltip, showing only an icon). <br />
(XXX open issue: what to show as the text when this button is dropped onto a toolbar that is showing labels, too)<br />
<br />
<code><pre><br />
|<br />
+------------------------------------------------------<br />
| @= | / PTBookmark 1 / PTBookmark 2 / PTBookma...<br />
+------------------------------------------------------<br />
</pre></code><br />
<br />
==== Searching ====<br />
<br />
When the user clicks the button, the following popup is displayed, visually connected to the button:<br />
<br />
<code><pre><br />
|<br />
+------------------------------------------------------<br />
|#@=#| / PTBookmark 1 / PTBookmark 2 / PTBookma...<br />
| +------------------------------+<br />
| Search: [ ](*) | <-- (1)<br />
| ( >> ) | <-- (2)<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# A text field that searches over Bookmarks and History, with autocomplete semantics defined in the Autocomplete Fields section, and a Tag Selector widget for mouse-based tag selection<br />
# A disclosure widget that expands this popup into the Places Popup, allowing fast browsing. The state of this widget is persisted so that if the popup is expanded, it will be expanded the next time the popup is shown, too.<br />
<br />
==== Search Results ====<br />
<br />
The user can type some terms into the field, autocompleted according to the semantics defined in the Autocomplete Fields section. When they do this, after a short delay (to prevent excessive querying) results are displayed in the popup:<br />
<br />
<code><pre><br />
|<br />
+------------------------------------------------------<br />
|#@=#| / PTBookmark 1 / PTBookmark 2 / PTBookma...<br />
| +------------------------------+<br />
| Search: [ goat teleporter (x)](*) | <-- (1)<br />
| |<br />
| +-------------------------------+ |<br />
| | The Goat Teleporter & You | | <-- (2)<br />
| | http://www.goatweekly.net... | | <br />
| |...............................| |<br />
| | Livestock teleportation | |<br />
| | http://www.arginews.co.uk... | |<br />
| |...............................| |<br />
| | Goat species | |<br />
| | http://en.wikipedia.org/G... | |<br />
| |...............................| |<br />
| | Teleportation Newsletter | |<br />
| | http://www.ieee.org/adv.c... | |<br />
| +-------------------------------+ |<br />
| ( >> ) |<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# In this view, when the user has entered terms, a close box appears on the right side of the field to allow mouse-centric users to cancel the search and hide the results. Pressing the ESC key also accomplishes this task. <br />
# Results are shown below the field, and the popup is sized to the number of results, up to a maximum height at which the results list begins to scroll. Clicking or pressing Enter on a result loads the page in the current tab, a modified click/Enter press opens in a new tab or window, as configured. (XXX open issue: show the URL below the title, for disambiguation for poorly titled pages)<br />
<br />
=== Places Popup ===<br />
<br />
When the disclosure button in the Places Search Popup is clicked, the popup changes to show the contents of a selected Place (by default: the Bookmarks Menu) (XXX open issue: should this be the All Bookmarks query?)<br />
<br />
<code><pre><br />
|<br />
+------------------------------------------------------<br />
|#@=#| / PTBookmark 1 / PTBookmark 2 / PTBookma...<br />
| +------------------------------+<br />
| Search: [ ](*) | <-- (1)<br />
| |<br />
| +-------------------------------+ |<br />
| | / Foo | | <-- (2)<br />
| | / Bar | |<br />
| | # Baz | |<br />
| | / FooFoo | |<br />
| | | |<br />
| | | |<br />
| | | |<br />
| | | |<br />
| | | |<br />
| | | |<br />
| +-------------------------------+ |<br />
| Showing: [ @ Bookmarks Menu :^] | <-- (3)<br />
| |<br />
| ( Organize... ) ( << ) | <-- (4)<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# XXX open issue: should searching at this point search all Bookmarks and History as before, or the currently shown Place?<br />
# This list is a simple hierarchical view of folders and leaf items. It shows the content of the Place selected in the Place selector. The sort order for this list may be different from the sort order last selected in the Places manager, it is likely to be something more suitable for this fast-access view, although it should be overridable using the context menu. <br />
# The Place selector lets the user pick a Place to show the content of. The contents of this list maps to the contents of the left bar in the Places Manager. XXX open issue: menu selector does not make it clear the list can be changed that easily. IE7 uses separate buttons for Favorites and History. <br />
# The Organize button shows the Places Manager in a separate window. <br />
<br />
XXXben: document context menu for the view itself<br />
<br />
=== Bookmarks Menu ===<br />
<br />
The Browser Menu Bar has a "Bookmarks" menu item containing:<br />
<br />
<code><pre><br />
+-----------+<br />
| Bookmarks |<br />
| +-----------------------+<br />
| Bookmark this Page... Ctrl+D | <-- (1)<br />
| Bookmark all Tabs... | <-- (2)<br />
| Search in Bookmarks... Ctrl+B | <-- (3)<br />
| Organize Bookmarks... | <-- (4)<br />
| --------------------------------- |<br />
| <items> | <-- (5)<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# Show a dialog allowing the user to add a bookmark to the current page.<br />
# Show a dialog allowing the user to add bookmarks to all of the pages opened in tabs within this window, in a new Folder.<br />
# Show the Places Search Popup for quick searching of Bookmarks and History. <br />
# Show the Places Organizer Window for more detailed browsing or organization. <br />
# Shows the contents of the Bookmarks Menu folder. <br />
<br />
Items are inserted into the Bookmarks Menu as they are into any other folder, in the order they added. When there are too many items to display, the list scrolls.<br />
<br />
=== History Menu ===<br />
<br />
The Browser Menu Bar has a "History" menu item containing:<br />
<br />
<code><pre><br />
+---------+<br />
| History |<br />
| +-------------------------+<br />
| Back Alt+<- | <-- (1)<br />
| Forward Alt+-> | <br />
| --------------------------------- |<br />
| Tag this Page Ctrl+Shift+8 | <-- (2)<br />
| Recently Tagged > | <-- (3)<br />
| --------------------------------- |<br />
| Search in History... Ctrl+H | <-- (4)<br />
| View All History... | <-- (5)<br />
| --------------------------------- |<br />
| <session history for current tab> | <-- (6)<br />
| --------------------------------- |<br />
| Clear Private Data... C+S+Del | <-- (7)<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# Menu items for Back and Forward (advertise key bindings)<br />
# Shows the Tagging Balloon<br />
# Shos a submenu of recently tagged pages. XXX<br />
# Show the Places Search Popup for quick searching of Bookmarks and History. <br />
# Show the Places Organizer Window for more detailed browsing and searching.<br />
# Shows the Session History List for the current document. The pivot (current page) in the list is represented by a bullet. See Session History List for more information.<br />
# A link to the Clear Private Data function (which moves here from Tools). <br />
<br />
=== Session History List ===<br />
<br />
The Session History is a list of pages visited by the user. The user navigates backwards and forwards in this list by individual pages using the back and forward buttons, or to a discrete point in the list using the History or Back/Forward button menus. <br />
<br />
The '''pivot''' is the page the user is currently at in the list. There may be pages ahead and behind the pivot page in the Session History list. <br />
<br />
To make navigation to recently visited pages faster, especially when the Session History list is deep (e.g. viewing a slideshow) page groups (grouping is determined according to the Session History Grouping Heuristic) are collapsed at either end when displayed in the UI to allow the user to quickly navigate in "chapters", e.g. back to the entry point of a site. <br />
<br />
A complete display of a visual representation of the Session History list for the History Menu, with many pages before and after the pivot page:<br />
<br />
<code><pre><br />
@ Chapter Stop<br />
@ Chapter Stop<br />
@ Page<br />
@ Page<br />
@ Page<br />
* Pivot<br />
@ Page<br />
@ Page<br />
@ Page<br />
@ Chapter Stop<br />
@ Chapter Stop<br />
</pre></code><br />
<br />
==== Grouping Heuristic ====<br />
<br />
XXX open issue<br />
<br />
=== Tag Selector ===<br />
<br />
A checklist of the all user's tags, presented in a popup. Used in the Search and Add UIs:<br />
<br />
<code><pre><br />
+-+<br />
|*|<br />
| +--------------+<br />
|##goats#########|<br />
|##teleporter####|<br />
| work |<br />
| mozilla |<br />
|----------------|<br />
| ( Done )|<br />
+----------------+<br />
</pre></code><br />
<br />
The list expands up to a certain height at which point it scrolls. <br />
<br />
=== Bookmarks Toolbar ===<br />
<br />
The Bookmarks Toolbar is a Customizable Toolbar Item which contains the contents of the Bookmarks Toolbar Folder. Bookmarks, Live Bookmarks and Folders are shown here. <br />
<br />
The user can drag links onto the toolbar (drop feedback shown to either side of each item) and drag them into Folders. When the user hovers over a folder during a drag for a few seconds, the folder opens and the user can drag the item deeper into the folder hierarchy. <br />
<br />
Items that do not fit in the available space are removed from the view and a chevron menu appears at the end of the strip, containing a menu that shows each of the "overflowed" items.<br />
<br />
When the user clicks on a folder to open it, the user is then able to move their mouse around over other folders on the strip to open them, without having to click again. This is especially useful for Live Bookmarks on the toolbar where the user can quickly scan new postings across several Live Bookmarks with a single gesture.<br />
<br />
Each item on the Toolbar has the standard Places Item Context Menu, with the addition of items specific to the toolbar: <br />
<br />
<code><pre><br />
| |<br />
| --------------------- |<br />
| Change Folder... | <-- (1)<br />
| ------------------------ |<br />
| Customize Toolbars... | <-- (2)<br />
+--------------------------+<br />
</pre></code><br />
<br />
# XXX open issue: this is probably uber-geek but fits with ideas i've heard people discussing. Shows a dialog that lets the user choose a folder or Place: query to root the toolbar on. This may let the user root their toolbar on a delicious folder, for instance, with a delicious extension installed. Related to this, it may be interesting to allow the instantiation of N instances of the Bookmarks toolbar to show the content of different folders. <br />
# Show the Customize Toolbar dialog. Added to make it easier to show the Customize dialog since at present showing it means clicking on just the ''right'' button, and users will not understand the distinction. This menu item should be shown on all context menus for any Toolbar item. <br />
<br />
=== Places Organizer ===<br />
<br />
The Places Organizer is a window that allows the user to search, browse and organize their bookmarks.<br />
<br />
<code><pre><br />
+-----------------------------------------------------------------------+<br />
| File Edit View Help |<br />
+-----------------------------------------------------------------------+<br />
| [@ Search Bookmarks & History ] | @ New Folder @ Delete |<br />
+-----------------------------------------------------------------------+<br />
| +----------------------+ +------------------------------------------+ |<br />
| | @ All History | | Showing Bookmarks Menu | |<br />
| |#@#Bookmarks#Menu#####| |==========================================| |<br />
| | @ Bookmarks Toolbar | | Name | Location | |<br />
| | @ Subscriptions | |------------------+-----------------------| |<br />
| | @ Bonjour | | CNN.com http://www.cnn.com/ | |<br />
| | @ Most Visited | | | |<br />
| | @ Updated Today | | | |<br />
| | @ Folder 1 | | | |<br />
| | @ Folder 2 | | | |<br />
| | @ Folder 3 | | | |<br />
| | @ Folder 4 | | | |<br />
| | @ Folder 5 | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| +----------------------+ +------------------------------------------+ |<br />
| ( + New Folder ) ( + New Folder ) /|<br />
+-----------------------------------------------------------------------+<br />
</pre></code><br />
<br />
(Subsequent captures will show only the view area, excluding the toolbar and menu)<br />
<br />
==== Places List ====<br />
<br />
The Places Pane is the pane on the left that shows the top level of the Places root. Its contents include several predefined entries. Some are "special" and cannot be removed because doing so would obscure access to areas of the user's History or Bookmarks. Users may also add items to the list.<br />
<br />
The Places Pane includes entries for (in this order):<br />
<br />
In the static area: <br />
<br />
* All History<br />
* All Bookmarks<br />
* Bookmarks Menu<br />
* Bookmarks Toolbar<br />
* Subscriptions<br />
* Any other item that cannot be deleted by the user (e.g. Bonjour Sites)<br />
<br />
In the user-editable area:<br />
<br />
* Most often visited <br />
* Any place: query that could equally have been generated by the user using the Save Search Query functionality. <br />
* User created Folders<br />
<br />
===== All History =====<br />
<br />
Shows a list of all of the user's browsing history, by default sorted in reverse chronological order so the most recent entries are at the top. This list can be sorted, or grouped according to the grouping options described in the History section below. <br />
<br />
===== All Bookmarks =====<br />
<br />
Shows a flat list of all pages that are Bookmarked. This includes pages that have been marked as interesting but not placed in any folder. This list can be sorted. <br />
<br />
===== Bookmarks Menu, Toolbar =====<br />
<br />
Shows a list of the contents of the Bookmarks Menu or Toolbar, grouped by folders. The user can reorder this list using sorting, or by using drag and drop. <br />
<br />
===== Subscriptions =====<br />
<br />
Shows a flat list of pages that represent posts from Live Bookmarks, sorted by Post Date by default. This list can be sorted, or grouped by Feed according to the Subscriptions section below. <br />
<br />
==== History ====<br />
<br />
<code><pre><br />
+-----------------------------------------------------------------------+<br />
| +----------------------+ +------------------------------------------+ |<br />
| |[ ]| | Showing History for (date range) | |<br />
| | @ All History | |==========================================| |<br />
| | @ All Bookmarks | | Name | Location | |<br />
| | @ Bookmarks Menu | |------------------+-----------------------| |<br />
| | @ Bookmarks Toolbar | | MLS Listings http://www.mlslis... | |<br />
| | @ Subscriptions | | L.J. Hooker http://www.lhhook... | |<br />
| | @ Most Visited | | v Barfoot & Th... http://www.barfoo... | |<br />
| | @ Updated Today | | Epsom Stunner! http://www.barfoo... ||<br />
| | @ Folder 1 | | Grammar Zone! http://www.barfoo... | |<br />
| | @ Folder 2 | | Charming, P... http://www.barfoo... | |<br />
| | @ Folder 3 | | | |<br />
| | @ Folder 4 | | | |<br />
| | @ Folder 5 | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| +----------------------+ +------------------------------------------+ |<br />
| ( + New Folder ) Group by: (#Site#| Page ) |<br />
+-----------------------------------------------------------------------+<br />
</pre></code><br />
<br />
===== Grouping Options =====<br />
<br />
* '''Group by Page''' - flat list of all pages<br />
* '''Group by Site''' - host/site based grouping, showing entry page as folder and other pages on site as children<br />
<br />
==== Searching ====<br />
<br />
<code><pre><br />
+-----------------------------------------------------------------------+<br />
| +----------------------+ +------------------------------------------+ |<br />
| |[ real estate| ]| | Search Results for 'foo': ( Save )(+)| |<br />
| | @ All History | |==========================================| |<br />
| | @ All Bookmarks | | Name | Location | |<br />
| | @ Bookmarks Menu | |------------------+-----------------------| |<br />
| | @ Bookmarks Toolbar | | MLS Listings http://www.mlslis... | |<br />
| | @ Subscriptions | | L.J. Hooker http://www.lhhook... | |<br />
| | @ Most Visited | | Barfoot & Thompson http://www.barfoo... | |<br />
| | @ Updated Today | | Century 21 http://www.centur... | |<br />
| | @ Folder 1 | | | |<br />
| | @ Folder 2 | | | |<br />
| | @ Folder 3 | | | |<br />
| | @ Folder 4 | | | |<br />
| | @ Folder 5 | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| +----------------------+ +------------------------------------------+ |<br />
| ( + New Folder ) Group by: ( Site | Page ) |<br />
+-----------------------------------------------------------------------+<br />
</pre></code><br />
<br />
===== Grouping Options =====<br />
<br />
* '''Group by Page''' - flat list of all pages<br />
* '''Group by Site''' - host/site based grouping, showing entry page as folder and other pages on site as children<br />
<br />
===== Advanced Search =====<br />
<br />
When the user searches for some terms, they can specify additional keys by clicking the "+" button in the banner strip next to "Save". This adds a new constraint, from the following set:<br />
<br />
'''Text Search'''<br />
<br />
Matches items whose title, etc matches the specified terms. Future versions will scan page content. <br />
<br />
<code><pre><br />
Containing the text: [ goat ]<br />
</pre></code><br />
<br />
'''Visit Time'''<br />
<br />
Matches items whose visit date falls within the specified range. <br />
<br />
<code><pre><br />
Visited [ between :^] [ 27 July, 2006 ] and [ 29 July, 2006 ] <-- (1)<br />
Visited [ after :^] [ 27 July, 2006 ] <br />
Visited [ before :^] [ 27 July, 2006 ] <br />
Visited [ more than :^] [ 4 ] [ days :^] ago<br />
Visited [ more than :^] [ 3 ] [ weeks :^] ago<br />
Visited [ less than :^] [ 4 ] [ days :^] ago<br />
Visited [ less than :^] [ 1 ] [ months :^] ago<br />
Visited [ today :^]<br />
</pre></code><br />
<br />
# These are non-user-editable static date fields. When the user clicks in the field, a calendar picker is shown. <br />
<br />
'''Location'''<br />
<br />
Matches items whose location (URL) matches the specified terms.<br />
<br />
<code><pre><br />
Location [ starts with :^] [ http://www.goats ]<br />
Location [ is :^] [ http://www.news.com/ ]<br />
Location [ is on site :^] [ news.com ]<br />
</pre></code><br />
<br />
'''Type'''<br />
<br />
Matches items whose type matches the selection.<br />
<br />
<code><pre><br />
Link is [x] a bookmark [x] a subscribed feed [x] a blog post or news item<br />
</pre></code><br />
<br />
'''Tags'''<br />
<br />
Matches items tagged with the specified terms.<br />
<br />
<code><pre><br />
Tags [ contain :^] [ goat, teleporter ] <-- (1)<br />
Tags [ are :^] [ goat, teleporter ]<br />
</pre></code><br />
<br />
# This is a tag autocompletion field<br />
<br />
'''Folders'''<br />
<br />
Matches items within the specified folders.<br />
<br />
<code><pre><br />
In folders: [ Bookmarks Menu, Goats ] ( Add... ) ( Reset )<br />
</pre></code><br />
<br />
'''Maximum Results'''<br />
<br />
Specifies a maximum number of results to return, e.g. 10. <br />
<br />
<code><pre><br />
Limit to [ 10 ] pages <br />
</pre></code><br />
<br />
XXX open issue: option for default sort order.<br />
<br />
Items are shown when they match all of the conditions set in each of the above areas. <br />
<br />
Each criteria can be selected from a dropdown list when a new row is added to the view:<br />
<br />
<code><pre><br />
+------------------------------------------------------+<br />
| Search results for "foo" ( Save )(+) |<br />
+------------------------------------------------------+<br />
| Containing the text: [ foo ] (+)(-)|<br />
| Visited [ after: ^] [ 27 July, 2005 ] (+)(-)|<br />
+------------------------------------------------------+<br />
| Name | Location |<br />
|--------------------+---------------------------------|<br />
| Barfoot & Thompson http://www.barfoots.co.nz/ |<br />
| |<br />
</pre></code><br />
<br />
===== Saving a Search Query =====<br />
<br />
The user can save a set of conditions as a Place to be shown on the Places bar. They can copy or drag the conditions elsewhere within their Bookmarks, e.g. onto their toolbar. The user saves the query by pressing the Save button on the banner:<br />
<br />
<code><pre><br />
+------------------------------------------------------+<br />
| Search results for "foo" ( Save )(+) | <-- SAVE<br />
+------------------------------------------------------+<br />
| Containing the text: [ foo ] (+)(-)|<br />
| Visited [ from: ^] [ 27 July, 2005 ] (+)(-)|<br />
+------------------------------------------------------+<br />
| Name | Location |<br />
|--------------------+---------------------------------|<br />
| Barfoot & Thompson http://www.barfoots.co.nz/ |<br />
| |<br />
</pre></code><br />
<br />
When a place is selected in the Places UI, it can be edited by clicking the Edit button in the banner:<br />
<br />
<code><pre><br />
+------------------------------------------------------+<br />
| Showing My Smart Folder ( Edit )|<br />
+------------------------------------------------------+<br />
| Name | Location |<br />
|--------------------+---------------------------------|<br />
| Barfoot & Thompson http://www.barfoots.co.nz/ |<br />
| |<br />
</pre></code><br />
<br />
==== Subscriptions ====<br />
<br />
A case study of smart folders. Show all folders whose type is "feed", and their contents. Should show additional column for published date and author. Should also show read state (bold = unread, normal = read)<br />
<br />
===== Aggregation View (Group by Post) =====<br />
<code><pre><br />
+-----------------------------------------------------------------------+<br />
| +----------------------+ +------------------------------------------+ |<br />
| |[ Search Bkmks & Hist]| | Showing All Subscriptions | |<br />
| | @ All History | |==========================================| |<br />
| | @ Bookmarks Menu | | Name | Location | |<br />
| | @ Bookmarks Toolbar | |------------------+-----------------------| |<br />
| |#@#Subscriptions######| | Blog A Post 1 http://foo.blogge... | |<br />
| | @ Bonjour | | Blog B Post 1 http://bar.blogge... | |<br />
| | @ Most Visited | | Blog A Post 2 http://foo.blogge... | |<br />
| | @ Updated Today | | Blog B Post 2 http://bar.blogge... | |<br />
| | @ Folder 1 | | | |<br />
| | @ Folder 2 | | | |<br />
| | @ Folder 3 | | | |<br />
| | @ Folder 4 | | | |<br />
| | @ Folder 5 | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| +----------------------+ +------------------------------------------+ |<br />
| ( + New Folder ) Group by: ( Feed |#Post#) |<br />
+-----------------------------------------------------------------------+<br />
</pre></code><br />
<br />
===== Feed View (Group by Feed) =====<br />
<code><pre><br />
+-----------------------------------------------------------------------+<br />
| +----------------------+ +------------------------------------------+ |<br />
| |[ Search Bkmks & Hist]| | Showing All Subscriptions | |<br />
| | @ All History | |==========================================| |<br />
| | @ Bookmarks Menu | | Name | Location | |<br />
| | @ Bookmarks Toolbar | |------------------+-----------------------| |<br />
| |#@#Subscriptions######| | v Blog A | |<br />
| | @ Bonjour | | Post 1 http://foo.blogge... | |<br />
| | @ Most Visited | | Post 2 http://foo.blogge... | |<br />
| | @ Updated Today | | v Blog B | |<br />
| | @ Folder 1 | | Post 1 http://bar.blogge... | |<br />
| | @ Folder 2 | | Post 2 http://bar.blogge... | |<br />
| | @ Folder 3 | | | |<br />
| | @ Folder 4 | | | |<br />
| | @ Folder 5 | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| +----------------------+ +------------------------------------------+ |<br />
| ( + New Folder ) Group by: (#Feed#| Post ) |<br />
+-----------------------------------------------------------------------+<br />
</pre></code><br />
<br />
==== Browsing By and Changing Tags ====<br />
<br />
In any view, items can be selected and tagged (marked as interesting for later <br />
use) using the tagging UI at the bottom of the main view:<br />
<br />
<code><pre><br />
|<br />
+------------------------------------------------+<br />
| Browse Tags: [ ] | <-- (1)<br />
+-------+ [ ] |<br />
| Edit | [ ] | <-- (2)<br />
+------------------------------------------------+<br />
</pre></code><br />
<br />
# The Browse tags panel lets the user filter the list by any combination of available tags. <br />
# The Edit tags panel lets the user type new tags to be applied to the selection. The selected panel is remembered. <br />
<br />
XXX open issue: is this the right UI?<br />
XXX open issue: which is the default panel?<br />
<br />
==== Menus ====<br />
<br />
===== File Menu =====<br />
<br />
<code><pre><br />
+------+<br />
| File |<br />
| +-----------------------+<br />
| New Bookmark... |<br />
| New Folder... |<br />
| New Separator |<br />
| ---------------------------- |<br />
| Import... |<br />
| Export... |<br />
| ---------------------------- |<br />
| Close Ctrl+W |<br />
+------------------------------+<br />
</pre></code><br />
<br />
===== Edit Menu =====<br />
<br />
<code><pre><br />
+------+<br />
| Edit |<br />
| +-----------------------+<br />
| Undo Ctrl+Z |<br />
| Redo Ctrl+Y |<br />
| ---------------------------- |<br />
| Cut Ctrl+X | <br />
| Copy Ctrl+C |<br />
| Paste Ctrl+V |<br />
| Delete Del |<br />
| ---------------------------- |<br />
| Select All Ctrl+A |<br />
| ---------------------------- |<br />
| Search Bookmarks/H.. Ctrl+F |<br />
| ---------------------------- |<br />
| Properties... Ctrl+I |<br />
+------------------------------+<br />
</pre></code><br />
<br />
===== View Menu =====<br />
<br />
<code><pre><br />
+------+<br />
| View |<br />
| +-----------------------+<br />
| Reload Ctrl+R | <br />
| ---------------------------- |<br />
| x Toolbar |<br />
| Show Columns > |<br />
| ---------------------------- |<br />
| * Unsorted |<br />
| Sort by Title |<br />
| Sort by Location |<br />
| <cols> |<br />
| ---------------------------- |<br />
| A > Z Sort Order |<br />
| Z < A Sort Order |<br />
+------------------------------+<br />
</pre></code><br />
<br />
===== Help Menu =====<br />
<br />
<code><pre><br />
+------+<br />
| Help |<br />
| +-----------------------+<br />
| Using Bookmarks |<br />
| Using History |<br />
| Advanced Tips & Tricks |<br />
| For Internet Explorer Users |<br />
| ---------------------------- |<br />
| Help Contents F1 |<br />
| Release Notes |<br />
| ---------------------------- |<br />
| Check for Updates... |<br />
| ---------------------------- |<br />
| About Mozilla Firefox |<br />
+------------------------------+<br />
</pre></code><br />
<br />
=== Tag Autocompletion ===<br />
<br />
=== Search Result Ranking ===<br />
<br />
Bookmarks and History results should show up in several autocomplete lists: <br />
<br />
* Places Search Popup search results<br />
* Places Organizer search results<br />
* Location Bar Autocomplete <br />
<br />
When the user searches for a URL, the results are sorted ... XXX document<br />
<br />
When the user searches for tags, the results are sorted ... XXX document<br />
<br />
=== Place Item Context Menu ===<br />
<br />
The most complete Place context menu:<br />
<br />
<code><pre><br />
+-----------------------+<br />
| Open | <-- (1)<br />
| Open in Tabs | <-- (2)<br />
| Open in new Tab | <-- (3)<br />
| Open in new Window | <-- (4)<br />
| --------------------- | <br />
| New Folder... | <-- (5)<br />
| New Separator | <-- (6)<br />
| --------------------- | <br />
| Cut | <-- (7)<br />
| Copy | <-- (8)<br />
| Paste | <-- (9)<br />
| Delete | <-- (10)<br />
| --------------------- | <br />
| Reload | <-- (11)<br />
| Sort by Name | <-- (12)<br />
| --------------------- | <br />
| Properties... | <-- (13)<br />
+-----------------------+<br />
</pre></code><br />
<br />
# Opens the selected item in the current tab (link)<br />
# Opens the selected item(s) or the contents of the selected folder in new tabs (links,folder)<br />
# Opens the selected item in a new tab (link)<br />
# Opens the selected item in a new window (link)<br />
# Creates a new folder adjacent to the selection (mutable)<br />
# Creates a new separator adjacent to the selection (mutable)<br />
# Cuts the selection (mutable)<br />
# Copies the selection (mixed)<br />
# Pastes the selection (mutable)<br />
# Deletes the selection (mutable)<br />
# Reloads the currently selected Live Bookmark (livemark)<br />
# Sorts the current folder permanently by name (mutable)<br />
# Shows the property editor for the current item (link,folder)<br />
<br />
Each item is shown only if the selection matches the requirements described in parentheses: link - single link selection, links - multiple links selected, folder - single folder selected, mutable - contents of editable folder selected, mixed - any content selected, livemark - live bookmark or content of live bookmark selected.<br />
<br />
=== Adding Bookmarks ===<br />
<br />
The objective for adding bookmarks is to create a lightweight experience for marking pages while supporting the traditional methods of filing bookmarks. <br />
<br />
==== Add Bookmark Dialog ====<br />
<br />
The Add Bookmark Dialog is a more heavyweight way to add a bookmark. It has several display modes:<br />
<br />
===== Tagging =====<br />
<br />
<code><pre><br />
+-----------------------------------------+<br />
| Tags: [ Work, Play ] | <-- (1)<br />
| Notes: [ ] | <-- (2)<br />
| [ ] |<br />
| [ ] |<br />
| |<br />
| ( Remove ) ( Add Bookmark ) (( Done )) | <-- (3)<br />
+-----------------------------------------+<br />
</pre></code><br />
<br />
# A field that contains the list of tags applying to the item. This uses the Tag Autocomplete widget. <br />
# A field that lets the user make some quick notes about why the page is interesting to them. <br />
# The Remove button un-tags the page. Add Bookmark shows the filing UI. Done applies the changes and closes the dialog.<br />
<br />
===== Filing =====<br />
<br />
<code><pre><br />
+-----------------------------------------------+<br />
| Name: [ Foo ] |<br />
| Location: [ http://www.foo.com/ ] |<br />
| Tags: [ Work, Play ] |<br />
| File into: [ Bookmarks Menu :^] | <-- (1)<br />
| > More |<br />
| |<br />
| ( Cancel ) (( Add Bookmark )) | <-- (2)<br />
+-----------------------------------------------+<br />
</pre></code><br />
<br />
# A list of bookmarks folders is shown also by default in the compact view. <br />
# Cancel cancels the addition of the Bookmark. Add Adds the Bookmark. Both close the dialog.<br />
<br />
===== Full Disclosure =====<br />
<br />
<code><pre><br />
+-----------------------------------------------+<br />
| Name: [ Foo ] |<br />
| Location: [ http://www.foo.com/ ] |<br />
| Tags: [ Work, Play ] |<br />
| |<br />
| File into: [ Bookmarks Menu :^] |<br />
| Shortcut: [ ] | <-- (1)<br />
| Tip: Type the shortcut in the location bar |<br />
| to open this page. |<br />
| Notes: [ ] | <-- (2)<br />
| [ ] |<br />
| [ ] |<br />
| |<br />
| ( Remove ) (( Add Bookmark )) |<br />
+-----------------------------------------------+<br />
</pre></code><br />
<br />
# A shortcut that can be entered in the location bar to load the page<br />
# Some notes on the page.<br />
<br />
===== Full Disclosure (Properties) =====<br />
<br />
In property editing mode, the dialog does not show a "File into: " line for Bookmarks that are already filed into Folders.<br />
<br />
<code><pre><br />
+-----------------------------------------------+<br />
| Name: [ Foo ] |<br />
| Location: [ http://www.foo.com/ ] |<br />
| Tags: [ Work, Play ] |<br />
| |<br />
| Shortcut: [ ] | <-- (1)<br />
| Tip: Type the shortcut in the location bar |<br />
| to open this page. |<br />
| Notes: [ ] | <-- (2)<br />
| [ ] |<br />
| [ ] |<br />
| |<br />
| (( OK )) ( Cancel ) |<br />
+-----------------------------------------------+<br />
</pre></code><br />
<br />
==== Filing Bookmarks ====<br />
<br />
===== Any Bookmarks Menu =====<br />
<br />
Bookmarks can be created in the any Bookmarks menu popup using the Bookmark this Page menu item. When this item is chosen, it will show the Add Bookmark dialog in the "Filing" mode with the selected folder selected. For instance, in the Bookmarks Menu, it would show the "Bookmarks Menu" folder selected.<br />
<br />
XXX open issue: is filing into any folder in this way a good idea? What are the usage figures on drag and drop? This could be a way for folk to discover they can file into folders on the bookmarks toolbar. <br />
<br />
===== Drag & Drop, Paste =====<br />
<br />
Bookmarks can be created by dragging links into the menu, the Places Organizer, or onto the Bookmarks Toolbar. When this is done the item is inserted without showing any dialog, it is created with the attributes of the dragged item (title, url) and filed into the folder that it is dropped into. <br />
<br />
==== Marking Pages As Interesting ====<br />
<br />
More lightweight than filing a bookmark into a folder for later frequent use is marking a page as interesting later. We suspect this is what a lot of bookmark actions actually are, and the reason why people's Bookmarks menus become quickly cluttered with items they don't use a lot. For whatever reason, folk don't use Bookmarks a lot, part of the reason for this may be the scalability of the Menu and cryptic nature of the toolbar. <br />
<br />
The "Tag" button on the browser toolbar (a clickable attachment at the end of the location bar, next to the Subscribe button which appears for pages with Feeds that can be subscribed to) provides a quick way to mark a page as interesting for later access. <br />
<br />
<code><pre>[ @ http://www.foo.com/ |v|+|S]</pre></code><br />
<br />
Pages marked as interesting are stored in Bookmarks, but not in any folder. Rather, they appear only when the All Bookmarks item is chosen from the Places bar. They can be filed into folders from this location. They also contribute with History and Filed Bookmarks to Location Bar autocompletion, and can be searched for if they are marked with tags. <br />
<br />
To mark a page as interesting, the user clicks the button and a Bookmark is added, but not into any folder, using the default title, location, etc. An info tip is shown explaining what happened:<br />
<br />
<code><pre><br />
|v|+|S]<br />
+-----------------------------------+<br />
| Page marked. | <-- (1)<br />
| Click again to edit Name/Tags |<br />
| |<br />
| ( Remove ) ( Show All Bookmarks ) | <-- (2)<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# XXX open issue: terminology!<br />
# Remove (XXX open issue: better name ... unmark?) Show All Bookmarks shows the Places Organizer, with the All Bookmarks Place selected. <br />
<br />
===== Tagging Interesting Pages =====<br />
<br />
When the user clicks the Tag button again, an Add Bookmark Dialog opened in "Tagging" mode is shown. The user can enter some tags to allow easier access later, or expand the dialog to file it as a Bookmark in a particular folder, edit additional metadata, etc. <br />
<br />
==== Editing Bookmarks ====<br />
<br />
When the user visits a page that exists within their bookmarks, the Tag button lights up and can be clicked to edit metadata. When clicked, the Add Bookmark dialog is shown in either "Tagging" or "Full Disclosure (Properties)" mode, depending on how the disclosure widget was left the last time the UI was used.<br />
<br />
From any Places view, when a user presses Ctrl+I or chooses the Properties/Get Info command from a menu, the Add Bookmark dialog is shown according to the rules described above for visiting a Bookmarked page. <br />
<br />
===== Simple Inline Edit =====<br />
<br />
Simple metadata changes can be accomplished in the tree view. This will not be done for 2.0 due to toolkit limitations.<br />
<br />
=== Content Area Integration ===<br />
<br />
On any page, a "Bookmark this Page..." menu item is available in the context menu. This shows the Filing dialog.<br />
<br />
=== Tabbed Browser Integration ===<br />
<br />
On any tab, "Bookmark this Tab..." and "Bookmark all Tabs..." menu items are available in the context menu. The Filing dialog is shown when this option is selected.<br />
<br />
= Command Updating = <br />
<br />
{| border="1"<br />
|-<br />
! Selection Type:<br />
! Selection In:<br />
! Open<br />
! OpenNW<br />
! OpenT<br />
! OpenTS<br />
! NewB<br />
! NewF<br />
! NewS<br />
! Cut<br />
! Copy<br />
! Paste<br />
! Delete<br />
! SelectA<br />
! Sort<br />
! Info<br />
! Reload<br />
! Edit<br />
|-<br />
| Link, Peers<br />
| R/W Container<br />
| VE<br />
| VE<br />
| VE<br />
| ID<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE?<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
|-<br />
| Link, Peers<br />
| R Container<br />
| VE<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VD<br />
| VE<br />
| VD<br />
| VD<br />
| VE<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
|-<br />
| Link, Peers<br />
| RD Container<br />
| VE<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VD<br />
| VE<br />
| VE<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
|-<br />
| colspan="20" | &nbsp;<br />
|-<br />
| Links, Peers<br />
| R/W Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE?<br />
| VE<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| Links, Peers<br />
| R Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| VD<br />
| VE<br />
| VD<br />
| VD<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| Links, Peers<br />
| RD Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VD<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| colspan="20" | &nbsp;<br />
|-<br />
| Separator, Peers<br />
| R/W Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE?<br />
| VE<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| Separator, Peers<br />
| R Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VD<br />
| VE<br />
| VD<br />
| VD<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| Separator, Peers<br />
| RD Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VD<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| colspan="20" | &nbsp;<br />
|-<br />
| Folder, Peers<br />
| R/W Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE?<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
|-<br />
| Folder, Peers<br />
| R Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| VD<br />
| VE<br />
| VD<br />
| VD<br />
| VE<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
|-<br />
| Folder, Peers<br />
| RD Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VD<br />
| VE<br />
| VE<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
|-<br />
| Folder, Peers<br />
| System Area<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
|-<br />
| colspan="20" | &nbsp;<br />
|-<br />
| Query, Peers<br />
| R/W Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE?<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| ID<br />
| VE<br />
|-<br />
| Query, Peers<br />
| R Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| VD<br />
| VE<br />
| VD<br />
| VD<br />
| VE<br />
| ID<br />
| VE<br />
| ID<br />
| VD<br />
|-<br />
| Query, Peers<br />
| RD Container<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VD<br />
| VE<br />
| VE<br />
| ID<br />
| VE<br />
| ID<br />
| VD<br />
|-<br />
| Query, Peers<br />
| System Area<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| VD<br />
|-<br />
| colspan="20" | &nbsp;<br />
|-<br />
| Mixed<br />
| R/W Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE<br />
| VE?<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| Mixed<br />
| R Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VD<br />
| VE<br />
| VD<br />
| VD<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| Mixed<br />
| RD Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VD<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| colspan="20" | &nbsp;<br />
|-<br />
| none<br />
| R/W Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| VE<br />
| VE<br />
| VD<br />
| VD<br />
| VE?<br />
| VD<br />
| VE<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| none<br />
| R Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|-<br />
| none<br />
| RD Container<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
| VE<br />
| ID<br />
| ID<br />
| ID<br />
| ID<br />
|}<br />
<br />
= Differences Explained =<br />
<br />
TBD.<br />
<br />
== From Firefox 1.x ==<br />
<br />
== From Earlier Versions of this Document ==<br />
<br />
== From IE ==<br />
<br />
== From Safari ==</div>Benhttps://wiki.mozilla.org/index.php?title=Places:Firefox_2_User_Interface_Ideas&diff=22772Places:Firefox 2 User Interface Ideas2006-03-22T19:05:35Z<p>Ben: </p>
<hr />
<div>= Background =<br />
<br />
Improve the usability of Bookmarks and History, since roughly 20% of page visits are to pages visited > 10 pages ago. <br />
<br />
== Use Cases ==<br />
<br />
From a UI perspective, make it easier to use Bookmarks and History, optimized for these tasks, in decreasing priority order:<br />
<br />
# searching or fast access<br />
# browsing<br />
# organizing<br />
<br />
The number one task someone usually wants to do with respect to Bookmarks or History is quickly find a page and open it. Then comes considered browsing which often happens as a result of either desire to kill time, process a list of tasks, or frustration at the failure of the search mechanism. Finally there is organization: assigning metadata to entries and sometimes filing them into folders.<br />
<br />
At the same time, many folk are not adding bookmarks, perhaps for reasons such as:<br />
<br />
* UI for adding is not exposed where they'll find it (I have a feeling people don't interact with menus very much, unless something is wrong and they're frustrated and trying to fix it)<br />
* The addition experience has traditionally been awful. The dialog box presented forces the user to think about a categorization scheme. Ignoring it may make the user feel guilty for not taking part. The process seems heavyweight. It doesn't seem as trivial as simply saying "save for later" - like dog-earing a page. <br />
<br />
= Proposed System = <br />
<br />
The proposed system is described in this document. <br />
<br />
== Topics ==<br />
<br />
The Places system is made up of the following components:<br />
<br />
For access (use case matched in parentheses):<br />
* Places Search Popup (1)<br />
* Places Popup (2)<br />
* Bookmarks Menu (2)<br />
* History Menu (2)<br />
* Bookmarks Toolbar (1)<br />
* Places Manager (2, 3)<br />
* Autocomplete Fields (1)<br />
* Session History List (1)<br />
* Tag Selector (1, 2, 3)<br />
<br />
Additional topics:<br />
* Search Result Ranking (1)<br />
* Place Item Context Menus (3)<br />
<br />
For adding:<br />
* Add Bookmark <br />
* Content Area Integration<br />
* Tab Browser Integration<br />
<br />
For organizing:<br />
* Bookmark Properties<br />
<br />
=== Places Search Popup ===<br />
<br />
==== Search History & Bookmarks Button ====<br />
<br />
A new customizable button is added to the left of the Bookmarks Toolbar entries and is called "Search History and Bookmarks". (Displaying this text in a tooltip, showing only an icon). <br />
(XXX open issue: what to show as the text when this button is dropped onto a toolbar that is showing labels, too)<br />
<br />
<code><pre><br />
|<br />
+------------------------------------------------------<br />
| @= | / PTBookmark 1 / PTBookmark 2 / PTBookma...<br />
+------------------------------------------------------<br />
</pre></code><br />
<br />
==== Searching ====<br />
<br />
When the user clicks the button, the following popup is displayed, visually connected to the button:<br />
<br />
<code><pre><br />
|<br />
+------------------------------------------------------<br />
|#@=#| / PTBookmark 1 / PTBookmark 2 / PTBookma...<br />
| +------------------------------+<br />
| Search: [ ](*) | <-- (1)<br />
| ( >> ) | <-- (2)<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# A text field that searches over Bookmarks and History, with autocomplete semantics defined in the Autocomplete Fields section, and a Tag Selector widget for mouse-based tag selection<br />
# A disclosure widget that expands this popup into the Places Popup, allowing fast browsing. The state of this widget is persisted so that if the popup is expanded, it will be expanded the next time the popup is shown, too.<br />
<br />
==== Search Results ====<br />
<br />
The user can type some terms into the field, autocompleted according to the semantics defined in the Autocomplete Fields section. When they do this, after a short delay (to prevent excessive querying) results are displayed in the popup:<br />
<br />
<code><pre><br />
|<br />
+------------------------------------------------------<br />
|#@=#| / PTBookmark 1 / PTBookmark 2 / PTBookma...<br />
| +------------------------------+<br />
| Search: [ goat teleporter (x)](*) | <-- (1)<br />
| |<br />
| +-------------------------------+ |<br />
| | The Goat Teleporter & You | | <-- (2)<br />
| | http://www.goatweekly.net... | | <br />
| |...............................| |<br />
| | Livestock teleportation | |<br />
| | http://www.arginews.co.uk... | |<br />
| |...............................| |<br />
| | Goat species | |<br />
| | http://en.wikipedia.org/G... | |<br />
| |...............................| |<br />
| | Teleportation Newsletter | |<br />
| | http://www.ieee.org/adv.c... | |<br />
| +-------------------------------+ |<br />
| ( >> ) |<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# In this view, when the user has entered terms, a close box appears on the right side of the field to allow mouse-centric users to cancel the search and hide the results. Pressing the ESC key also accomplishes this task. <br />
# Results are shown below the field, and the popup is sized to the number of results, up to a maximum height at which the results list begins to scroll. Clicking or pressing Enter on a result loads the page in the current tab, a modified click/Enter press opens in a new tab or window, as configured. (XXX open issue: show the URL below the title, for disambiguation for poorly titled pages)<br />
<br />
=== Places Popup ===<br />
<br />
When the disclosure button in the Places Search Popup is clicked, the popup changes to show the contents of a selected Place (by default: the Bookmarks Menu) (XXX open issue: should this be the All Bookmarks query?)<br />
<br />
<code><pre><br />
|<br />
+------------------------------------------------------<br />
|#@=#| / PTBookmark 1 / PTBookmark 2 / PTBookma...<br />
| +------------------------------+<br />
| Search: [ ](*) | <-- (1)<br />
| |<br />
| +-------------------------------+ |<br />
| | / Foo | | <-- (2)<br />
| | / Bar | |<br />
| | # Baz | |<br />
| | / FooFoo | |<br />
| | | |<br />
| | | |<br />
| | | |<br />
| | | |<br />
| | | |<br />
| | | |<br />
| +-------------------------------+ |<br />
| Showing: [ @ Bookmarks Menu :^] | <-- (3)<br />
| |<br />
| ( Organize... ) ( << ) | <-- (4)<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# XXX open issue: should searching at this point search all Bookmarks and History as before, or the currently shown Place?<br />
# This list is a simple hierarchical view of folders and leaf items. It shows the content of the Place selected in the Place selector. The sort order for this list may be different from the sort order last selected in the Places manager, it is likely to be something more suitable for this fast-access view, although it should be overridable using the context menu. <br />
# The Place selector lets the user pick a Place to show the content of. The contents of this list maps to the contents of the left bar in the Places Manager. XXX open issue: menu selector does not make it clear the list can be changed that easily. IE7 uses separate buttons for Favorites and History. <br />
# The Organize button shows the Places Manager in a separate window. <br />
<br />
XXXben: document context menu for the view itself<br />
<br />
=== Bookmarks Menu ===<br />
<br />
The Browser Menu Bar has a "Bookmarks" menu item containing:<br />
<br />
<code><pre><br />
+-----------+<br />
| Bookmarks |<br />
| +-----------------------+<br />
| Bookmark this Page... Ctrl+D | <-- (1)<br />
| Bookmark all Tabs... | <-- (2)<br />
| Search in Bookmarks... Ctrl+B | <-- (3)<br />
| Organize Bookmarks... | <-- (4)<br />
| --------------------------------- |<br />
| <items> | <-- (5)<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# Show a dialog allowing the user to add a bookmark to the current page.<br />
# Show a dialog allowing the user to add bookmarks to all of the pages opened in tabs within this window, in a new Folder.<br />
# Show the Places Search Popup for quick searching of Bookmarks and History. <br />
# Show the Places Organizer Window for more detailed browsing or organization. <br />
# Shows the contents of the Bookmarks Menu folder. <br />
<br />
Items are inserted into the Bookmarks Menu as they are into any other folder, in the order they added. When there are too many items to display, the list scrolls.<br />
<br />
=== History Menu ===<br />
<br />
The Browser Menu Bar has a "History" menu item containing:<br />
<br />
<code><pre><br />
+---------+<br />
| History |<br />
| +-------------------------+<br />
| Back Alt+<- | <-- (1)<br />
| Forward Alt+-> | <br />
| --------------------------------- |<br />
| Tag this Page Ctrl+Shift+8 | <-- (2)<br />
| Recently Tagged > | <-- (3)<br />
| --------------------------------- |<br />
| Search in History... Ctrl+H | <-- (4)<br />
| View All History... | <-- (5)<br />
| --------------------------------- |<br />
| <session history for current tab> | <-- (6)<br />
| --------------------------------- |<br />
| Clear Private Data... C+S+Del | <-- (7)<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# Menu items for Back and Forward (advertise key bindings)<br />
# Shows the Tagging Balloon<br />
# Shos a submenu of recently tagged pages. XXX<br />
# Show the Places Search Popup for quick searching of Bookmarks and History. <br />
# Show the Places Organizer Window for more detailed browsing and searching.<br />
# Shows the Session History List for the current document. The pivot (current page) in the list is represented by a bullet. See Session History List for more information.<br />
# A link to the Clear Private Data function (which moves here from Tools). <br />
<br />
=== Session History List ===<br />
<br />
The Session History is a list of pages visited by the user. The user navigates backwards and forwards in this list by individual pages using the back and forward buttons, or to a discrete point in the list using the History or Back/Forward button menus. <br />
<br />
The '''pivot''' is the page the user is currently at in the list. There may be pages ahead and behind the pivot page in the Session History list. <br />
<br />
To make navigation to recently visited pages faster, especially when the Session History list is deep (e.g. viewing a slideshow) page groups (grouping is determined according to the Session History Grouping Heuristic) are collapsed at either end when displayed in the UI to allow the user to quickly navigate in "chapters", e.g. back to the entry point of a site. <br />
<br />
A complete display of a visual representation of the Session History list for the History Menu, with many pages before and after the pivot page:<br />
<br />
<code><pre><br />
@ Chapter Stop<br />
@ Chapter Stop<br />
@ Page<br />
@ Page<br />
@ Page<br />
* Pivot<br />
@ Page<br />
@ Page<br />
@ Page<br />
@ Chapter Stop<br />
@ Chapter Stop<br />
</pre></code><br />
<br />
==== Grouping Heuristic ====<br />
<br />
XXX open issue<br />
<br />
=== Tag Selector ===<br />
<br />
A checklist of the all user's tags, presented in a popup. Used in the Search and Add UIs:<br />
<br />
<code><pre><br />
+-+<br />
|*|<br />
| +--------------+<br />
|##goats#########|<br />
|##teleporter####|<br />
| work |<br />
| mozilla |<br />
|----------------|<br />
| ( Done )|<br />
+----------------+<br />
</pre></code><br />
<br />
The list expands up to a certain height at which point it scrolls. <br />
<br />
=== Bookmarks Toolbar ===<br />
<br />
The Bookmarks Toolbar is a Customizable Toolbar Item which contains the contents of the Bookmarks Toolbar Folder. Bookmarks, Live Bookmarks and Folders are shown here. <br />
<br />
The user can drag links onto the toolbar (drop feedback shown to either side of each item) and drag them into Folders. When the user hovers over a folder during a drag for a few seconds, the folder opens and the user can drag the item deeper into the folder hierarchy. <br />
<br />
Items that do not fit in the available space are removed from the view and a chevron menu appears at the end of the strip, containing a menu that shows each of the "overflowed" items.<br />
<br />
When the user clicks on a folder to open it, the user is then able to move their mouse around over other folders on the strip to open them, without having to click again. This is especially useful for Live Bookmarks on the toolbar where the user can quickly scan new postings across several Live Bookmarks with a single gesture.<br />
<br />
Each item on the Toolbar has the standard Places Item Context Menu, with the addition of items specific to the toolbar: <br />
<br />
<code><pre><br />
| |<br />
| --------------------- |<br />
| Change Folder... | <-- (1)<br />
| ------------------------ |<br />
| Customize Toolbars... | <-- (2)<br />
+--------------------------+<br />
</pre></code><br />
<br />
# XXX open issue: this is probably uber-geek but fits with ideas i've heard people discussing. Shows a dialog that lets the user choose a folder or Place: query to root the toolbar on. This may let the user root their toolbar on a delicious folder, for instance, with a delicious extension installed. Related to this, it may be interesting to allow the instantiation of N instances of the Bookmarks toolbar to show the content of different folders. <br />
# Show the Customize Toolbar dialog. Added to make it easier to show the Customize dialog since at present showing it means clicking on just the ''right'' button, and users will not understand the distinction. This menu item should be shown on all context menus for any Toolbar item. <br />
<br />
=== Places Organizer ===<br />
<br />
The Places Organizer is a window that allows the user to search, browse and organize their bookmarks.<br />
<br />
<code><pre><br />
+-----------------------------------------------------------------------+<br />
| File Edit View Help |<br />
+-----------------------------------------------------------------------+<br />
| [@ Search Bookmarks & History ] | @ New Folder @ Delete |<br />
+-----------------------------------------------------------------------+<br />
| +----------------------+ +------------------------------------------+ |<br />
| | @ All History | | Showing Bookmarks Menu | |<br />
| |#@#Bookmarks#Menu#####| |==========================================| |<br />
| | @ Bookmarks Toolbar | | Name | Location | |<br />
| | @ Subscriptions | |------------------+-----------------------| |<br />
| | @ Bonjour | | CNN.com http://www.cnn.com/ | |<br />
| | @ Most Visited | | | |<br />
| | @ Updated Today | | | |<br />
| | @ Folder 1 | | | |<br />
| | @ Folder 2 | | | |<br />
| | @ Folder 3 | | | |<br />
| | @ Folder 4 | | | |<br />
| | @ Folder 5 | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| +----------------------+ +------------------------------------------+ |<br />
| ( + New Folder ) ( + New Folder ) /|<br />
+-----------------------------------------------------------------------+<br />
</pre></code><br />
<br />
(Subsequent captures will show only the view area, excluding the toolbar and menu)<br />
<br />
==== Places List ====<br />
<br />
The Places Pane is the pane on the left that shows the top level of the Places root. Its contents include several predefined entries. Some are "special" and cannot be removed because doing so would obscure access to areas of the user's History or Bookmarks. Users may also add items to the list.<br />
<br />
The Places Pane includes entries for (in this order):<br />
<br />
In the static area: <br />
<br />
* All History<br />
* All Bookmarks<br />
* Bookmarks Menu<br />
* Bookmarks Toolbar<br />
* Subscriptions<br />
* Any other item that cannot be deleted by the user (e.g. Bonjour Sites)<br />
<br />
In the user-editable area:<br />
<br />
* Most often visited <br />
* Any place: query that could equally have been generated by the user using the Save Search Query functionality. <br />
* User created Folders<br />
<br />
===== All History =====<br />
<br />
Shows a list of all of the user's browsing history, by default sorted in reverse chronological order so the most recent entries are at the top. This list can be sorted, or grouped according to the grouping options described in the History section below. <br />
<br />
===== All Bookmarks =====<br />
<br />
Shows a flat list of all pages that are Bookmarked. This includes pages that have been marked as interesting but not placed in any folder. This list can be sorted. <br />
<br />
===== Bookmarks Menu, Toolbar =====<br />
<br />
Shows a list of the contents of the Bookmarks Menu or Toolbar, grouped by folders. The user can reorder this list using sorting, or by using drag and drop. <br />
<br />
===== Subscriptions =====<br />
<br />
Shows a flat list of pages that represent posts from Live Bookmarks, sorted by Post Date by default. This list can be sorted, or grouped by Feed according to the Subscriptions section below. <br />
<br />
==== History ====<br />
<br />
<code><pre><br />
+-----------------------------------------------------------------------+<br />
| +----------------------+ +------------------------------------------+ |<br />
| |[ ]| | Showing History for (date range) | |<br />
| | @ All History | |==========================================| |<br />
| | @ All Bookmarks | | Name | Location | |<br />
| | @ Bookmarks Menu | |------------------+-----------------------| |<br />
| | @ Bookmarks Toolbar | | MLS Listings http://www.mlslis... | |<br />
| | @ Subscriptions | | L.J. Hooker http://www.lhhook... | |<br />
| | @ Most Visited | | v Barfoot & Th... http://www.barfoo... | |<br />
| | @ Updated Today | | Epsom Stunner! http://www.barfoo... ||<br />
| | @ Folder 1 | | Grammar Zone! http://www.barfoo... | |<br />
| | @ Folder 2 | | Charming, P... http://www.barfoo... | |<br />
| | @ Folder 3 | | | |<br />
| | @ Folder 4 | | | |<br />
| | @ Folder 5 | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| +----------------------+ +------------------------------------------+ |<br />
| ( + New Folder ) Group by: (#Site#| Page ) |<br />
+-----------------------------------------------------------------------+<br />
</pre></code><br />
<br />
===== Grouping Options =====<br />
<br />
* '''Group by Page''' - flat list of all pages<br />
* '''Group by Site''' - host/site based grouping, showing entry page as folder and other pages on site as children<br />
<br />
==== Searching ====<br />
<br />
<code><pre><br />
+-----------------------------------------------------------------------+<br />
| +----------------------+ +------------------------------------------+ |<br />
| |[ real estate| ]| | Search Results for 'foo': ( Save )(+)| |<br />
| | @ All History | |==========================================| |<br />
| | @ All Bookmarks | | Name | Location | |<br />
| | @ Bookmarks Menu | |------------------+-----------------------| |<br />
| | @ Bookmarks Toolbar | | MLS Listings http://www.mlslis... | |<br />
| | @ Subscriptions | | L.J. Hooker http://www.lhhook... | |<br />
| | @ Most Visited | | Barfoot & Thompson http://www.barfoo... | |<br />
| | @ Updated Today | | Century 21 http://www.centur... | |<br />
| | @ Folder 1 | | | |<br />
| | @ Folder 2 | | | |<br />
| | @ Folder 3 | | | |<br />
| | @ Folder 4 | | | |<br />
| | @ Folder 5 | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| +----------------------+ +------------------------------------------+ |<br />
| ( + New Folder ) Group by: ( Site | Page ) |<br />
+-----------------------------------------------------------------------+<br />
</pre></code><br />
<br />
===== Grouping Options =====<br />
<br />
* '''Group by Page''' - flat list of all pages<br />
* '''Group by Site''' - host/site based grouping, showing entry page as folder and other pages on site as children<br />
<br />
===== Advanced Search =====<br />
<br />
When the user searches for some terms, they can specify additional keys by clicking the "+" button in the banner strip next to "Save". This adds a new constraint, from the following set:<br />
<br />
'''Text Search'''<br />
<br />
Matches items whose title, etc matches the specified terms. Future versions will scan page content. <br />
<br />
<code><pre><br />
Containing the text: [ goat ]<br />
</pre></code><br />
<br />
'''Visit Time'''<br />
<br />
Matches items whose visit date falls within the specified range. <br />
<br />
<code><pre><br />
Visited [ between :^] [ 27 July, 2006 ] and [ 29 July, 2006 ] <-- (1)<br />
Visited [ after :^] [ 27 July, 2006 ] <br />
Visited [ before :^] [ 27 July, 2006 ] <br />
Visited [ more than :^] [ 4 ] [ days :^] ago<br />
Visited [ more than :^] [ 3 ] [ weeks :^] ago<br />
Visited [ less than :^] [ 4 ] [ days :^] ago<br />
Visited [ less than :^] [ 1 ] [ months :^] ago<br />
Visited [ today :^]<br />
</pre></code><br />
<br />
# These are non-user-editable static date fields. When the user clicks in the field, a calendar picker is shown. <br />
<br />
'''Location'''<br />
<br />
Matches items whose location (URL) matches the specified terms.<br />
<br />
<code><pre><br />
Location [ starts with :^] [ http://www.goats ]<br />
Location [ is :^] [ http://www.news.com/ ]<br />
Location [ is on site :^] [ news.com ]<br />
</pre></code><br />
<br />
'''Type'''<br />
<br />
Matches items whose type matches the selection.<br />
<br />
<code><pre><br />
Link is [x] a bookmark [x] a subscribed feed [x] a blog post or news item<br />
</pre></code><br />
<br />
'''Tags'''<br />
<br />
Matches items tagged with the specified terms.<br />
<br />
<code><pre><br />
Tags [ contain :^] [ goat, teleporter ] <-- (1)<br />
Tags [ are :^] [ goat, teleporter ]<br />
</pre></code><br />
<br />
# This is a tag autocompletion field<br />
<br />
'''Folders'''<br />
<br />
Matches items within the specified folders.<br />
<br />
<code><pre><br />
In folders: [ Bookmarks Menu, Goats ] ( Add... ) ( Reset )<br />
</pre></code><br />
<br />
'''Maximum Results'''<br />
<br />
Specifies a maximum number of results to return, e.g. 10. <br />
<br />
<code><pre><br />
Limit to [ 10 ] pages <br />
</pre></code><br />
<br />
XXX open issue: option for default sort order.<br />
<br />
Items are shown when they match all of the conditions set in each of the above areas. <br />
<br />
Each criteria can be selected from a dropdown list when a new row is added to the view:<br />
<br />
<code><pre><br />
+------------------------------------------------------+<br />
| Search results for "foo" ( Save )(+) |<br />
+------------------------------------------------------+<br />
| Containing the text: [ foo ] (+)(-)|<br />
| Visited [ after: ^] [ 27 July, 2005 ] (+)(-)|<br />
+------------------------------------------------------+<br />
| Name | Location |<br />
|--------------------+---------------------------------|<br />
| Barfoot & Thompson http://www.barfoots.co.nz/ |<br />
| |<br />
</pre></code><br />
<br />
===== Saving a Search Query =====<br />
<br />
The user can save a set of conditions as a Place to be shown on the Places bar. They can copy or drag the conditions elsewhere within their Bookmarks, e.g. onto their toolbar. The user saves the query by pressing the Save button on the banner:<br />
<br />
<code><pre><br />
+------------------------------------------------------+<br />
| Search results for "foo" ( Save )(+) | <-- SAVE<br />
+------------------------------------------------------+<br />
| Containing the text: [ foo ] (+)(-)|<br />
| Visited [ from: ^] [ 27 July, 2005 ] (+)(-)|<br />
+------------------------------------------------------+<br />
| Name | Location |<br />
|--------------------+---------------------------------|<br />
| Barfoot & Thompson http://www.barfoots.co.nz/ |<br />
| |<br />
</pre></code><br />
<br />
When a place is selected in the Places UI, it can be edited by clicking the Edit button in the banner:<br />
<br />
<code><pre><br />
+------------------------------------------------------+<br />
| Showing My Smart Folder ( Edit )|<br />
+------------------------------------------------------+<br />
| Name | Location |<br />
|--------------------+---------------------------------|<br />
| Barfoot & Thompson http://www.barfoots.co.nz/ |<br />
| |<br />
</pre></code><br />
<br />
==== Subscriptions ====<br />
<br />
A case study of smart folders. Show all folders whose type is "feed", and their contents. Should show additional column for published date and author. Should also show read state (bold = unread, normal = read)<br />
<br />
===== Aggregation View (Group by Post) =====<br />
<code><pre><br />
+-----------------------------------------------------------------------+<br />
| +----------------------+ +------------------------------------------+ |<br />
| |[ Search Bkmks & Hist]| | Showing All Subscriptions | |<br />
| | @ All History | |==========================================| |<br />
| | @ Bookmarks Menu | | Name | Location | |<br />
| | @ Bookmarks Toolbar | |------------------+-----------------------| |<br />
| |#@#Subscriptions######| | Blog A Post 1 http://foo.blogge... | |<br />
| | @ Bonjour | | Blog B Post 1 http://bar.blogge... | |<br />
| | @ Most Visited | | Blog A Post 2 http://foo.blogge... | |<br />
| | @ Updated Today | | Blog B Post 2 http://bar.blogge... | |<br />
| | @ Folder 1 | | | |<br />
| | @ Folder 2 | | | |<br />
| | @ Folder 3 | | | |<br />
| | @ Folder 4 | | | |<br />
| | @ Folder 5 | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| +----------------------+ +------------------------------------------+ |<br />
| ( + New Folder ) Group by: ( Feed |#Post#) |<br />
+-----------------------------------------------------------------------+<br />
</pre></code><br />
<br />
===== Feed View (Group by Feed) =====<br />
<code><pre><br />
+-----------------------------------------------------------------------+<br />
| +----------------------+ +------------------------------------------+ |<br />
| |[ Search Bkmks & Hist]| | Showing All Subscriptions | |<br />
| | @ All History | |==========================================| |<br />
| | @ Bookmarks Menu | | Name | Location | |<br />
| | @ Bookmarks Toolbar | |------------------+-----------------------| |<br />
| |#@#Subscriptions######| | v Blog A | |<br />
| | @ Bonjour | | Post 1 http://foo.blogge... | |<br />
| | @ Most Visited | | Post 2 http://foo.blogge... | |<br />
| | @ Updated Today | | v Blog B | |<br />
| | @ Folder 1 | | Post 1 http://bar.blogge... | |<br />
| | @ Folder 2 | | Post 2 http://bar.blogge... | |<br />
| | @ Folder 3 | | | |<br />
| | @ Folder 4 | | | |<br />
| | @ Folder 5 | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| | | | | |<br />
| +----------------------+ +------------------------------------------+ |<br />
| ( + New Folder ) Group by: (#Feed#| Post ) |<br />
+-----------------------------------------------------------------------+<br />
</pre></code><br />
<br />
==== Browsing By and Changing Tags ====<br />
<br />
In any view, items can be selected and tagged (marked as interesting for later <br />
use) using the tagging UI at the bottom of the main view:<br />
<br />
<code><pre><br />
|<br />
+------------------------------------------------+<br />
| Browse Tags: [ ] | <-- (1)<br />
+-------+ [ ] |<br />
| Edit | [ ] | <-- (2)<br />
+------------------------------------------------+<br />
</pre></code><br />
<br />
# The Browse tags panel lets the user filter the list by any combination of available tags. <br />
# The Edit tags panel lets the user type new tags to be applied to the selection. The selected panel is remembered. <br />
<br />
XXX open issue: is this the right UI?<br />
XXX open issue: which is the default panel?<br />
<br />
==== Menus ====<br />
<br />
===== File Menu =====<br />
<br />
<code><pre><br />
+------+<br />
| File |<br />
| +-----------------------+<br />
| New Bookmark... |<br />
| New Folder... |<br />
| New Separator |<br />
| ---------------------------- |<br />
| Import... |<br />
| Export... |<br />
| ---------------------------- |<br />
| Close Ctrl+W |<br />
+------------------------------+<br />
</pre></code><br />
<br />
===== Edit Menu =====<br />
<br />
<code><pre><br />
+------+<br />
| Edit |<br />
| +-----------------------+<br />
| Undo Ctrl+Z |<br />
| Redo Ctrl+Y |<br />
| ---------------------------- |<br />
| Cut Ctrl+X | <br />
| Copy Ctrl+C |<br />
| Paste Ctrl+V |<br />
| Delete Del |<br />
| ---------------------------- |<br />
| Select All Ctrl+A |<br />
| ---------------------------- |<br />
| Search Bookmarks/H.. Ctrl+F |<br />
| ---------------------------- |<br />
| Properties... Ctrl+I |<br />
+------------------------------+<br />
</pre></code><br />
<br />
===== View Menu =====<br />
<br />
<code><pre><br />
+------+<br />
| View |<br />
| +-----------------------+<br />
| Reload Ctrl+R | <br />
| ---------------------------- |<br />
| x Toolbar |<br />
| Show Columns > |<br />
| ---------------------------- |<br />
| * Unsorted |<br />
| Sort by Title |<br />
| Sort by Location |<br />
| <cols> |<br />
| ---------------------------- |<br />
| A > Z Sort Order |<br />
| Z < A Sort Order |<br />
+------------------------------+<br />
</pre></code><br />
<br />
===== Help Menu =====<br />
<br />
<code><pre><br />
+------+<br />
| Help |<br />
| +-----------------------+<br />
| Using Bookmarks |<br />
| Using History |<br />
| Advanced Tips & Tricks |<br />
| For Internet Explorer Users |<br />
| ---------------------------- |<br />
| Help Contents F1 |<br />
| Release Notes |<br />
| ---------------------------- |<br />
| Check for Updates... |<br />
| ---------------------------- |<br />
| About Mozilla Firefox |<br />
+------------------------------+<br />
</pre></code><br />
<br />
=== Tag Autocompletion ===<br />
<br />
=== Search Result Ranking ===<br />
<br />
Bookmarks and History results should show up in several autocomplete lists: <br />
<br />
* Places Search Popup search results<br />
* Places Organizer search results<br />
* Location Bar Autocomplete <br />
<br />
When the user searches for a URL, the results are sorted ... XXX document<br />
<br />
When the user searches for tags, the results are sorted ... XXX document<br />
<br />
=== Place Item Context Menu ===<br />
<br />
The most complete Place context menu:<br />
<br />
<code><pre><br />
+-----------------------+<br />
| Open | <-- (1)<br />
| Open in Tabs | <-- (2)<br />
| Open in new Tab | <-- (3)<br />
| Open in new Window | <-- (4)<br />
| --------------------- | <br />
| New Folder... | <-- (5)<br />
| New Separator | <-- (6)<br />
| --------------------- | <br />
| Cut | <-- (7)<br />
| Copy | <-- (8)<br />
| Paste | <-- (9)<br />
| Delete | <-- (10)<br />
| --------------------- | <br />
| Reload | <-- (11)<br />
| Sort by Name | <-- (12)<br />
| --------------------- | <br />
| Properties... | <-- (13)<br />
+-----------------------+<br />
</pre></code><br />
<br />
# Opens the selected item in the current tab (link)<br />
# Opens the selected item(s) or the contents of the selected folder in new tabs (links,folder)<br />
# Opens the selected item in a new tab (link)<br />
# Opens the selected item in a new window (link)<br />
# Creates a new folder adjacent to the selection (mutable)<br />
# Creates a new separator adjacent to the selection (mutable)<br />
# Cuts the selection (mutable)<br />
# Copies the selection (mixed)<br />
# Pastes the selection (mutable)<br />
# Deletes the selection (mutable)<br />
# Reloads the currently selected Live Bookmark (livemark)<br />
# Sorts the current folder permanently by name (mutable)<br />
# Shows the property editor for the current item (link,folder)<br />
<br />
Each item is shown only if the selection matches the requirements described in parentheses: link - single link selection, links - multiple links selected, folder - single folder selected, mutable - contents of editable folder selected, mixed - any content selected, livemark - live bookmark or content of live bookmark selected.<br />
<br />
=== Adding Bookmarks ===<br />
<br />
The objective for adding bookmarks is to create a lightweight experience for marking pages while supporting the traditional methods of filing bookmarks. <br />
<br />
==== Add Bookmark Dialog ====<br />
<br />
The Add Bookmark Dialog is a more heavyweight way to add a bookmark. It has several display modes:<br />
<br />
===== Tagging =====<br />
<br />
<code><pre><br />
+-----------------------------------------+<br />
| Tags: [ Work, Play ] | <-- (1)<br />
| Notes: [ ] | <-- (2)<br />
| [ ] |<br />
| [ ] |<br />
| |<br />
| ( Remove ) ( Add Bookmark ) (( Done )) | <-- (3)<br />
+-----------------------------------------+<br />
</pre></code><br />
<br />
# A field that contains the list of tags applying to the item. This uses the Tag Autocomplete widget. <br />
# A field that lets the user make some quick notes about why the page is interesting to them. <br />
# The Remove button un-tags the page. Add Bookmark shows the filing UI. Done applies the changes and closes the dialog.<br />
<br />
===== Filing =====<br />
<br />
<code><pre><br />
+-----------------------------------------------+<br />
| Name: [ Foo ] |<br />
| Location: [ http://www.foo.com/ ] |<br />
| Tags: [ Work, Play ] |<br />
| File into: [ Bookmarks Menu :^] | <-- (1)<br />
| > More |<br />
| |<br />
| ( Cancel ) (( Add Bookmark )) | <-- (2)<br />
+-----------------------------------------------+<br />
</pre></code><br />
<br />
# A list of bookmarks folders is shown also by default in the compact view. <br />
# Cancel cancels the addition of the Bookmark. Add Adds the Bookmark. Both close the dialog.<br />
<br />
===== Full Disclosure =====<br />
<br />
<code><pre><br />
+-----------------------------------------------+<br />
| Name: [ Foo ] |<br />
| Location: [ http://www.foo.com/ ] |<br />
| Tags: [ Work, Play ] |<br />
| |<br />
| File into: [ Bookmarks Menu :^] |<br />
| Shortcut: [ ] | <-- (1)<br />
| Tip: Type the shortcut in the location bar |<br />
| to open this page. |<br />
| Notes: [ ] | <-- (2)<br />
| [ ] |<br />
| [ ] |<br />
| |<br />
| ( Remove ) (( Add Bookmark )) |<br />
+-----------------------------------------------+<br />
</pre></code><br />
<br />
# A shortcut that can be entered in the location bar to load the page<br />
# Some notes on the page.<br />
<br />
===== Full Disclosure (Properties) =====<br />
<br />
In property editing mode, the dialog does not show a "File into: " line for Bookmarks that are already filed into Folders.<br />
<br />
<code><pre><br />
+-----------------------------------------------+<br />
| Name: [ Foo ] |<br />
| Location: [ http://www.foo.com/ ] |<br />
| Tags: [ Work, Play ] |<br />
| |<br />
| Shortcut: [ ] | <-- (1)<br />
| Tip: Type the shortcut in the location bar |<br />
| to open this page. |<br />
| Notes: [ ] | <-- (2)<br />
| [ ] |<br />
| [ ] |<br />
| |<br />
| (( OK )) ( Cancel ) |<br />
+-----------------------------------------------+<br />
</pre></code><br />
<br />
==== Filing Bookmarks ====<br />
<br />
===== Any Bookmarks Menu =====<br />
<br />
Bookmarks can be created in the any Bookmarks menu popup using the Bookmark this Page menu item. When this item is chosen, it will show the Add Bookmark dialog in the "Filing" mode with the selected folder selected. For instance, in the Bookmarks Menu, it would show the "Bookmarks Menu" folder selected.<br />
<br />
XXX open issue: is filing into any folder in this way a good idea? What are the usage figures on drag and drop? This could be a way for folk to discover they can file into folders on the bookmarks toolbar. <br />
<br />
===== Drag & Drop, Paste =====<br />
<br />
Bookmarks can be created by dragging links into the menu, the Places Organizer, or onto the Bookmarks Toolbar. When this is done the item is inserted without showing any dialog, it is created with the attributes of the dragged item (title, url) and filed into the folder that it is dropped into. <br />
<br />
==== Marking Pages As Interesting ====<br />
<br />
More lightweight than filing a bookmark into a folder for later frequent use is marking a page as interesting later. We suspect this is what a lot of bookmark actions actually are, and the reason why people's Bookmarks menus become quickly cluttered with items they don't use a lot. For whatever reason, folk don't use Bookmarks a lot, part of the reason for this may be the scalability of the Menu and cryptic nature of the toolbar. <br />
<br />
The "Tag" button on the browser toolbar (a clickable attachment at the end of the location bar, next to the Subscribe button which appears for pages with Feeds that can be subscribed to) provides a quick way to mark a page as interesting for later access. <br />
<br />
<code><pre>[ @ http://www.foo.com/ |v|+|S]</pre></code><br />
<br />
Pages marked as interesting are stored in Bookmarks, but not in any folder. Rather, they appear only when the All Bookmarks item is chosen from the Places bar. They can be filed into folders from this location. They also contribute with History and Filed Bookmarks to Location Bar autocompletion, and can be searched for if they are marked with tags. <br />
<br />
To mark a page as interesting, the user clicks the button and a Bookmark is added, but not into any folder, using the default title, location, etc. An info tip is shown explaining what happened:<br />
<br />
<code><pre><br />
|v|+|S]<br />
+-----------------------------------+<br />
| Page marked. | <-- (1)<br />
| Click again to edit Name/Tags |<br />
| |<br />
| ( Remove ) ( Show All Bookmarks ) | <-- (2)<br />
+-----------------------------------+<br />
</pre></code><br />
<br />
# XXX open issue: terminology!<br />
# Remove (XXX open issue: better name ... unmark?) Show All Bookmarks shows the Places Organizer, with the All Bookmarks Place selected. <br />
<br />
===== Tagging Interesting Pages =====<br />
<br />
When the user clicks the Tag button again, an Add Bookmark Dialog opened in "Tagging" mode is shown. The user can enter some tags to allow easier access later, or expand the dialog to file it as a Bookmark in a particular folder, edit additional metadata, etc. <br />
<br />
==== Editing Bookmarks ====<br />
<br />
When the user visits a page that exists within their bookmarks, the Tag button lights up and can be clicked to edit metadata. When clicked, the Add Bookmark dialog is shown in either "Tagging" or "Full Disclosure (Properties)" mode, depending on how the disclosure widget was left the last time the UI was used.<br />
<br />
From any Places view, when a user presses Ctrl+I or chooses the Properties/Get Info command from a menu, the Add Bookmark dialog is shown according to the rules described above for visiting a Bookmarked page. <br />
<br />
===== Simple Inline Edit =====<br />
<br />
Simple metadata changes can be accomplished in the tree view. This will not be done for 2.0 due to toolkit limitations.<br />
<br />
=== Content Area Integration ===<br />
<br />
On any page, a "Bookmark this Page..." menu item is available in the context menu. This shows the Filing dialog.<br />
<br />
=== Tabbed Browser Integration ===<br />
<br />
On any tab, "Bookmark this Tab..." and "Bookmark all Tabs..." menu items are available in the context menu. The Filing dialog is shown when this option is selected.<br />
<br />
= Differences Explained =<br />
<br />
TBD.<br />
<br />
== From Firefox 1.x ==<br />
<br />
== From Earlier Versions of this Document ==<br />
<br />
== From IE ==<br />
<br />
== From Safari ==</div>Benhttps://wiki.mozilla.org/index.php?title=Contacts&diff=22142Contacts2006-03-13T19:08:56Z<p>Ben: /* Projects */</p>
<hr />
<div>= Who Do I Contact? =<br />
<br />
short & sweet<br />
<br />
= Security =<br />
<br />
(links to security lists)<br />
<br />
= Project =<br />
<br />
(pan-project lists like staff@, etc) <br />
<br />
= Partners =<br />
<br />
(partner contacts)<br />
<br />
= Projects = <br />
<br />
Technical discussion and decision making occurs on [[Mailing_Lists|development mailing lists]].</div>Benhttps://wiki.mozilla.org/index.php?title=Contacts&diff=18645Contacts2006-03-13T19:08:35Z<p>Ben: /* Projects */</p>
<hr />
<div>= Who Do I Contact? =<br />
<br />
short & sweet<br />
<br />
= Security =<br />
<br />
(links to security lists)<br />
<br />
= Project =<br />
<br />
(pan-project lists like staff@, etc) <br />
<br />
= Partners =<br />
<br />
(partner contacts)<br />
<br />
= Projects = <br />
<br />
Technical discussion and decision making occurs on [[Mailing_Lists development mailing lists]].</div>Ben