Labs/F1/Roadmap: Difference between revisions

12,367 bytes removed ,  19 April 2018
m
Mark as outdated
m (Mark as outdated)
 
(23 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{outdated}}
<section begin=summary />{{RoadmapSummary
<section begin=summary />{{RoadmapSummary
|icon=F1-icon-128.png
|icon=F1-icon-128.png
Line 4: Line 6:
|pagetitle=F1 2011 Roadmap
|pagetitle=F1 2011 Roadmap
|owner=Bryan Clark
|owner=Bryan Clark
|updated=March 29, 2011
|updated=April 18, 2011
|status=Draft
|description=User Goals:
|description=User Goals:
* Create a fun, fast, and reliable system that encourages people to share
* Create a fun, fast, and reliable system that encourages people to share
Line 16: Line 17:
}}<section end=summary />
}}<section end=summary />


{{draft}}


== Overview ==
== Overview ==


Mozilla F1 is a simple and fast sharing service designed to enhance the sharing experience of the browser, ''Firefox'', when sharing web sites.   
[[Labs/F1|Mozilla F1]] is a simple and fast sharing service designed to enhance the sharing experience of the browser, ''Firefox'', when sharing web sites.   


; name : The name F1 is a project name that is not necessarily the final name when compared with more standardized/branded names like Firefox Share.   
; name : The name F1 is a project name that is not necessarily the final name when compared with more standardized/branded names like Firefox Share.   
Line 35: Line 35:
** [https://bugzilla.mozilla.org/buglist.cgi?columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Share%3A%20Web%20Client&product=Mozilla%20Services&query_format=advanced&resolution=---&query_based_on= Share:Web Client] for the web UI bits running inside the FF chrome
** [https://bugzilla.mozilla.org/buglist.cgi?columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Share%3A%20Web%20Client&product=Mozilla%20Services&query_format=advanced&resolution=---&query_based_on= Share:Web Client] for the web UI bits running inside the FF chrome


== Timeline ==
== Feature Blocks ==
 
: ''This is a breakdown of the bugzilla components with links to the items listed for completion according to week long development cycles.''
 
{| width="100%" cellpadding="3"
|-
| style="background-color: #efefef;"| '''Component'''
| style="background-color: #efefef;"| '''March 25 2011'''
| style="background-color: #efefef;"| '''April 1st 2011'''
| style="background-color: #efefef;"| '''April 8th 2011'''
| style="background-color: #efefef;"| '''April 15th 2011'''
|-
| [https://bugzilla.mozilla.org/buglist.cgi?columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Server%3A%20Share&component=Share%3A%20Firefox%20Client&component=Share%3A%20Web%20Client&product=Mozilla%20Services&query_format=advanced&resolution=---&query_based_on= All] || [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=2011-03-25&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Server%3A%20Share&component=Share%3A%20Firefox%20Client&component=Share%3A%20Web%20Client&resolution=---&product=Mozilla%20Services 2011-03-25] || [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=2011-04-01&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Server%3A%20Share&component=Share%3A%20Firefox%20Client&component=Share%3A%20Web%20Client&resolution=---&product=Mozilla%20Services 2011-04-01] || [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=2011-04-08&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Server%3A%20Share&component=Share%3A%20Firefox%20Client&component=Share%3A%20Web%20Client&resolution=---&product=Mozilla%20Services 2011-04-08] || [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=2011-04-15&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Server%3A%20Share&component=Share%3A%20Firefox%20Client&component=Share%3A%20Web%20Client&resolution=---&product=Mozilla%20Services 2011-04-15]
|-
| [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Server%3A%20Share&resolution=---&product=Mozilla%20Services Server:Share] || [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=2011-03-25&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Server%3A%20Share&resolution=---&product=Mozilla%20Services 2011-03-25] || [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=2011-04-01&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Server%3A%20Share&resolution=---&product=Mozilla%20Services 2011-04-01] || [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=2011-04-08&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Server%3A%20Share&resolution=---&product=Mozilla%20Services 2011-04-08] || [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=2011-04-15&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Server%3A%20Share&resolution=---&product=Mozilla%20Services 2011-04-15]
|-
| [https://bugzilla.mozilla.org/buglist.cgi?columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Share%3A%20Firefox%20Client&product=Mozilla%20Services&query_format=advanced&resolution=---&query_based_on= Share:Firefox Client] || [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=2011-03-25&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Share%3A%20Firefox%20Client&resolution=---&product=Mozilla%20Services 2011-03-25] || [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=2011-04-01&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Share%3A%20Firefox%20Client&resolution=---&product=Mozilla%20Services 2011-04-01] || [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=2011-04-08&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Share%3A%20Firefox%20Client&resolution=---&product=Mozilla%20Services 2011-04-08] || [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=2011-04-15&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Share%3A%20Firefox%20Client&resolution=---&product=Mozilla%20Services 2011-04-15]
|-
| [https://bugzilla.mozilla.org/buglist.cgi?columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Share%3A%20Web%20Client&product=Mozilla%20Services&query_format=advanced&resolution=---&query_based_on= Share:Web Client] || [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=2011-03-25&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Share%3A%20Web%20Client&resolution=---&product=Mozilla%20Services 2011-03-25] || [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=2011-04-01&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Share%3A%20Web%20Client&resolution=---&product=Mozilla%20Services 2011-04-01] || [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=2011-04-08&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Share%3A%20Web%20Client&resolution=---&product=Mozilla%20Services 2011-04-08] || [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=2011-04-15&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cstatus_whiteboard&component=Share%3A%20Web%20Client&resolution=---&product=Mozilla%20Services 2011-04-15]
|}
 
: ''Here's a timeline of goals and the items needed to complete those goals.''
 
=== Firefox 5 ===
 
:''Due: April 13th 2011''
 
'''Project Management'''
 
{| width="100%" cellpadding="3"
|-
| style="background-color: #efefef;width:55%;"| '''Item'''
| style="background-color: #efefef;width:14ex;"| '''Bug'''
| style="background-color: #efefef;"| '''Status'''
| style="background-color: #efefef;"| '''ETA'''
|-
| Agreement w/ Twitter regarding API usage || {{bug|645909}}  || <span style="color:orange;">in progress</span> || -
|-
| Agreement w/ Facebook regarding API usage || {{bug|645910}} || <span style="color:orange;">in progress</span> || -
|-
| Agreement w/ bit.ly regarding API usage || {{bug|646273}} || <span style="color:orange;">in progress</span> || -
|}
 
'''User Experience'''
: ''UX Tracking Bug {{bug|642684}}''
 
{| width="100%" cellpadding="3"
|-
| style="background-color: #efefef;width:55%;"| '''Item'''
| style="background-color: #efefef;width:14ex;"| '''Bug'''
| style="background-color: #efefef;"| '''Status'''
| style="background-color: #efefef;"| '''ETA'''
|-
| Figure out experience for failure cases || {{bug|642653}} || <span style="color:orange;">in progress</span> || -
|-
| Disable share during private browsing || {{bug|644769}} || <span style="color:red;">waiting on UX</span> || -
|-
| Panel should act like other panels, close w/ ESC || {{bug|644182}} || <span style="color:red;">waiting on UX</span> || -
|-
| Use disabled icon when sharing is not possible? || {{bug|643994}} || <span style="color:green;">finished</span> || -
|}
 
'''Q/A and Test'''
: ''Unit Test Tracking Bug {{bug|642681}}''
 
{| width="100%" cellpadding="3"
|-
| style="background-color: #efefef;width:55%;"| '''Item'''
| style="background-color: #efefef;width:14ex;"| '''Bug'''
| style="background-color: #efefef;"| '''Status'''
| style="background-color: #efefef;"| '''ETA'''
|-
| Test plan and harness || {{bug|642648}} || - || 2011-03-25
|-
| Functional test plan and harness || {{bug|642651}} || - || 2011-03-25
|}
 
 
'''FF Integration'''
 
{| width="100%" cellpadding="3"
|-
| style="background-color: #efefef;width:55%;"| '''Item'''
| style="background-color: #efefef;width:14ex;"| '''Bug'''
| style="background-color: #efefef;"| '''Status'''
| style="background-color: #efefef;"| '''ETA'''
|-
| Get rid of hashchange, switch to postMessage || {{bug|642655}} || - || 2011-03-25
|-
| Introduce API version number in path || {{bug|642652}} || - || 2011-03-25
|-
| Measure startup time, ensure no measurable impact  || {{bug|642674}} || - || 2011-03-25
|-
| Turn dump() calls into proper logging of sorts || {{bug|642679}} || - || 2011-03-25
|-
| API for storing oauth tokens and account profiles || {{bug|642660}} || <span style="color:orange;">in progress</span> || 2011-04-01
|-
| Sometimes FF4 jumps to 100% CPU || {{bug|642629}}  || <span style="color:orange;">in progress</span> || -
|-
| Use idle time to pull in the web UI || {{bug|642671}} || <span style="color:gray;">not started</span> || -
|-
| Client security review || {{bug|642726}} || <span style="color:gray;">stalled</span> || -
|-
| l10n for email template and error messages || {{bug|642876}} || <span style="color:gray;">not started</span> || -
|}
 
=== Post-Firefox 5 ===


:''tracking the next set of items which are important to land after FF5 integration''
The are the feature blocks which appear in the [[Firefox/Flight Tracking]].  These feature blocks are in top down order of priority.  The '''required''' line indicates a minimal set we would not back out of the release train if they all landed. ''These feature sets should conform to the [[Feature Page Structure]]''


=== [[Labs/F1/Feature Blocks/F1|Minimal F1 Feature]] ===


'''Project Management'''
: ''This is the bare minimum pieces needed to use the F1 share feature starting with 1 working account (Twitter)''


{| width="100%" cellpadding="3"
{| class="fullwidth-table sortable" style="width: 800px;"
|-
|-
| style="background-color: #efefef;width:55%;"| '''Item'''
| style="font-weight: bold; background: #DDD; width:35%" | Feature
| style="background-color: #efefef;width:14ex;"| '''Bug'''
| style="font-weight: bold; background: #DDD; width:35%" | Status
| style="background-color: #efefef;"| '''Status'''
| style="font-weight: bold; background: #DDD; width:10%" | ETA
| style="background-color: #efefef;"| '''ETA'''
| style="font-weight: bold; background: #DDD; width:20%" | Owner
|-
|-
| - || -  || <span style="color:gray;">not started</span> || -
{{#lst:Labs/F1/Feature Blocks/Firefox Preferences|status}}
|}
 
 
'''User Experience'''
 
{| width="100%" cellpadding="3"
|-
|-
| style="background-color: #efefef;width:55%;"| '''Item'''
{{#lst:Labs/F1/Feature Blocks/Twitter|status}}
| style="background-color: #efefef;width:14ex;"| '''Bug'''
| style="background-color: #efefef;"| '''Status'''
| style="background-color: #efefef;"| '''ETA'''
|-
|-
| Sharing preferences || {{bug|645802}} ||  <span style="color:red;">needs {{bug|646243}}</span> || -
{{#lst:Labs/F1/Feature Blocks/Sharing Server|status}}
|}
|}


=== [[Labs/F1/Feature Blocks/Facebook|Facebook Sharing Account]] ===


'''Q/A and Test'''
: ''Implement the Facebook account interface''
 
{| width="100%" cellpadding="3"
|-
| style="background-color: #efefef;width:55%;"| '''Item'''
| style="background-color: #efefef;width:14ex;"| '''Bug'''
| style="background-color: #efefef;"| '''Status'''
| style="background-color: #efefef;"| '''ETA'''
|-
| - || -  || <span style="color:gray;">not started</span> || -
|}
 
 
'''Development'''
 
{| width="100%" cellpadding="3"
|-
| style="background-color: #efefef;width:55%;"| '''Item'''
| style="background-color: #efefef;width:14ex;"| '''Bug'''
| style="background-color: #efefef;"| '''Status'''
| style="background-color: #efefef;"| '''ETA'''
|-
| Document FFShare and Panel APIs and behaviour || {{bug|642646}} || - || 2011-03-18
|-
| Need to fetch all Google Contacts ||  {{bug|644404}} || <span style="color:gray;">not started</span> || -
|}
 
== People ==
 
:''An out of date list of many of the people involved''
 
; Bryan Clark : Project Management
; Andy Chung : Visual Designer
; Stephen Horlander : UX Designer
; Laura Mesa, Mayumi Matsuno, Caitlin Looney : Product Marketing
; James Burke : Client side developer
; Shane Caraveo : Server side developer
; Philipp von Weitershausen : Client / Server developer
; Mike Connor : Services coordination
; Yvan Boily : Server side security review
; Curtis Koenig : Client side security review
; Jonathan Griffin : Q/A Integration
; Philippe Chiasson : Service side operations
 
== Problems Use Cases ==
 
These are the existing use cases that exist and we believe F1 helps to solve.
 
=== Copy & Paste ===
 
Alice finds a hilarious [http://icanhascheezburger.com/2011/03/08/funny-pictures-talk-qwerty-to-me/ LOL Cat] she wants to send to her friends.  Now she enters the precarious world of focus, selection, and the clipboard.


Here is the only route of success (assuming no keyboard shortcuts):
=== [[Labs/F1/Feature Blocks/GMail|GMail Sharing Account]] ===


# Single click into the URL bar &mdash; ''this should focus and select the entire URL''
: ''Implement the GMail account interface''
# Click the Edit Menu to open the menu
# Click the Copy Menu Item to copy the text to the clipboard
# Open a tab with your sharing service &mdash; ''either a new tab, reusing an existing tab, or using the current tab''
# Focus / Open the services compose interface &mdash; ''compose message, what's on your mind?, what's happening, etc.''
# Click the Edit Menu to open the menu
# Click the Paste Menu Item to paste the URL into the text entry


At each of these steps exists a number of ways to fail, we'll only cover a few major ones here.
* This is GMail only, not the [[Labs/F1/Feature Blocks/Google Apps|Google Apps Sharing Account]] even though they are very similar


; 1 focus : with anything more than a single click into the URL bar a user will not be selecting the entire URL which will block the rest of the steps
=== [[Labs/F1/Feature Blocks/JavaScript Share API|JavaScript Share API]] ===


; 2,3 selection : when the user goes to copy the URL they risk changing the focus/selection of the URL which will block them from copying or make them copy the wrong text
: ''[https://github.com/mozilla/f1/wiki/navigator-share-api navigator.share] api''


; 4,5 transition : if the user doesn't already have the service open they will now have to load the page which can be slow and systems like often are not ready for immediate sharing.
=== [[Labs/F1/Feature Blocks/Localized Share Services|Localized Share Services]] ===


; 6,7 focus : And finally if the user clicks anywhere else besides the text entry as they are choosing to paste there will be no notification of the failed state they entered.
: ''Additional sharing services which are popular in different locales''


=== NASCAR of Sharing ===
=== [[Labs/F1/Feature Blocks/Anonymous URL Stats|Anonymous URL Statistics]] ===


Beth uses Digg.com to share all her links but the [http://icanhascheezburger.com/ LOL Cat site] she likes doesn't include a "digg this" link as one of it's service. 
: ''Anonymous URL sharing statistics''


John needs to scan through a [http://mozillalabs.com/messaging/files/2010/11/social-icons.png long list of icons] for various services he's never heard of to find the service he uses.  Each site lists the services differently so he always needs to hunt for the service he uses.
=== [[Labs/F1/Feature Blocks/Yahoo Mail|Yahoo Mail Sharing Account]] ===


On the other side of the coin site designers must either include all the icons of all possible (of an infinitely expanding list of) services to create a "NASCAR" effect or limit to a few popular services.
: ''Implement the Yahoo Mail account interface''
Confirmed users, Bureaucrats and Sysops emeriti
2,974

edits