Mobile/FennecRequirements: Difference between revisions

 
(43 intermediate revisions by 4 users not shown)
Line 1: Line 1:
==Priorities==
==Definitions==
===Milestones===
Our goal is to deliver several small releases over the next two quarters until we reach an alpha release. The milestones described here are not full-fledged releases but merely meant to represent dates tied together with deliverables. The dates are also meant for initial planning purposes and may change. 
 
{| width="100%" cellpadding="3"
{| width="100%" cellpadding="3"
|- style="background-color: #efefef;"
|- style="background-color: #efefef;"
| style="background-color: #efefef; width: 40px" | '''Priority'''
| style="background-color: #efefef; width: 40px" | '''Milestone'''
| '''Description'''
| style="background-color: #efefef; width: 120px" | '''Release Date'''  
| '''Release Notes'''
|- valign="top"
| M1
| ''April 4, 2008''
|
|- valign="top"
| M2
| ''May 9, 2008''
|
|- valign="top"
|- valign="top"
| P1
| M3
| ''Mandatory'' - The set of features required as a minimum for this release to be complete. The product will not ship without these.
| ''May 30, 2008''
|
|- valign="top"
|- valign="top"
| P2
| M4
| ''Highly Desirable'' - A key feature that will make the product more complete, has great benefits to the end-user and major strategic impact.
| ''June 20, 2008''
|
|- valign="top"
|- valign="top"
| P3
| M5
| ''Nice to Have'' - Lowest priority feature that may be incorporated, dropping first in favour of delivering P2 items.
| ''July 11, 2008''
|
|- valign="top"
|- valign="top"
| P4
| M6
| ''Future'' - Intended for future release, included as they may influence design decisions and should be associated with the roadmap.
| ''August 1, 2008''
|
|- valign="top"
|- valign="top"
| D
| M7
| ''Deleted'' - Requirements that have been deleted from the product roadmap.
| ''August 19, 2008''
|
|- valign="top"
| A1
| ''October 16, 2008''
| [http://www.mozilla.org/projects/fennec/1.0a1/releasenotes/ Fennec Alpha 1]
|- valign="top"
| A2
| ''December 22, 2008''
| [http://www.mozilla.org/projects/fennec/1.0a2/releasenotes/ Fennec Alpha 2]
|- valign="top"
| B1
| ''February 27, 2009''
| Fennec Beta 1
|}
 
[[Mobile/DefinitionPriority | Priority Definition]]
 
[[Mobile/DefinitionStatus | Status Definition]]
 
==Requirements==
 
=== Platform Support ===
 
{| width="100%" cellpadding="3"
|-
|-
| <font color="grey">Px
| style="background-color: #efefef;" colspan="3" | '''General''' 
| ''Tentative'' - Requirements that are proposed but have not yet been approved</font>
| style="background-color: #efefef;" |
|-
| style="background-color: #efefef; width: 30px"| '''P/M'''
| style="background-color: #efefef; width: 20px"| '''Status'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef; width: 120px"| '''Bug'''
|-
| P1M? || || JSctypes ||
|-
|-
|}
|}


==Navigating to Web content==
 
{| width="100%" cellpadding="3"
|-
| style="background-color: #efefef;" colspan="3" | '''Linux (GTK)''' 
| style="background-color: #efefef;" | {{bug|436201}}
|-
| style="background-color: #efefef; width: 30px"| '''P/M'''
| style="background-color: #efefef; width: 20px"| '''Status'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef; width: 120px"| '''Bug'''
|-
| P1M1 || {{ot}} || Installer || {{bug|418851}}
|-
| P2M? || || Update manager ||
|-
| P1M? || || Soft Keyboard || {{bug|426344}}
|-
| P1M? || || Application menu || {{bug|426291}}
|-
| P1M? || || File picker || {{bug|426292}}
|-
| P3M? || || Banners (alerts) || {{bug|426293}}
|-
| P2M? || || Better theme support || {{bug|426299}}
|-
| P3M? || || Expose [http://maemo.org/development/documentation/how-tos/4-x/how_to_use_camera_api.html camera API] ||
|-
| P3M? || || Expose [http://maemo.org/development/documentation/how-tos/4-x/using_maemo_address_book_apis.html address book API] ||
|-
| P2M? || || Breakpad ||
|-
| P1M2 || || Run Talos ||
|-
| P1M? || || [http://wiki.mozilla.org/Mobile/DFBPorting DirectFB] || {{bug|422221}}
|-
|}
 
 
{| width="100%" cellpadding="3"
|-
| style="background-color: #efefef;" colspan="4" | '''Windows Mobile 6'''
|-
| style="background-color: #efefef; width: 30px"| '''P/M'''
| style="background-color: #efefef; width: 20px"| '''Status'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef; width: 120px"| '''Bug'''
|-
| P2M? || || Installer ||
|-
| P3M? || || Update manager ||
|-
| P3M? || || Breakpad ||
|-
|}
 
 
{| width="100%" cellpadding="3"
|-
| style="background-color: #efefef;" colspan="4" | '''Qt 4.4'''
|-
| style="background-color: #efefef; width: 30px"| '''P/M'''
| style="background-color: #efefef; width: 20px"| '''Status'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef; width: 120px"| '''Bug'''
|-
| P1M2 || || Widget support || {{bug|429288}}
|-
| P1M? || || Installer ||
|-
| P2M? || || Update manager ||
|-
| P2M? || || Breakpad ||
|-
|}
 
===Navigating to Web content===
<p>In most mobile browsers, basic activities like URL entry, bookmarking and search are too hard to use.  These need attention, and "awesome-bar" like innovation.  An equivalent to multiple windows/tabs is needed.</p>
<p>In most mobile browsers, basic activities like URL entry, bookmarking and search are too hard to use.  These need attention, and "awesome-bar" like innovation.  An equivalent to multiple windows/tabs is needed.</p>


{| width="100%" cellpadding="3"
{| width="100%" cellpadding="3"
|-
|-
| style="background-color: #efefef;" colspan="3" | '''Basic navigation'''
| style="background-color: #efefef;" colspan="4" | '''Basic navigation'''
|-
|-
| style="background-color: #efefef; width: 20px"| '''Priority'''
| style="background-color: #efefef; width: 30px"| '''P/M'''
| style="background-color: #efefef; width: 20px"| '''Milestone'''
| style="background-color: #efefef; width: 20px"| '''Status'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef; width: 120px"| '''Bug'''
|-
|-
| P1 || M1 || Simple URL entry  
| P1M1 || {{co}} || Simple URL entry ||
|-
|-
| P1 || M1 || Back
| P1M1 || {{co}} || Back ||
|-
|-
| P1 || M1 || Forward  
| P1M1 || {{co}} || Forward ||
|-
|-
| P1 || M1 || Reload page  
| P1M1 || {{co}} || Reload page ||
|-
|-
| P1 || M1 || History
| P1M1 || {{ip}} || History ||
|-
|-
| P1 || M2 || Awesome-bar URL entry
| P1M1 || {{ip}} || Awesome-bar URL entry ||
|-
| P1M2 || {{ip}} || Search box in toolbar (depends on screen size) ||
|-
|-
|}
|}


{| width="100%" cellpadding="3"
{| width="100%" cellpadding="3"
|-
|-
| style="background-color: #efefef;" colspan="3" | '''Bookmarks'''
| style="background-color: #efefef;" colspan="4" | '''Bookmarks'''
|-
|-
| style="background-color: #efefef; width: 20px"| '''Priority'''
| style="background-color: #efefef; width: 30px"| '''P/M'''
| style="background-color: #efefef; width: 20px"| '''Milestone'''
| style="background-color: #efefef; width: 20px"| '''Status'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef; width: 120px"| '''Bug'''
|-
| P1M1 || {{ip}} || Basic Add bookmark ||
|-
|-
| P1 || M3 || Basic Add bookmark
| P1M1 || {{co}} || Star page ||
|-
|-
| P1 || M3 || Star page 
| P1M1 || {{ns}} || Foldering ||
|-
|-
| P1 || M3 || Foldering
| P?M? || || Live Bookmarks ||
|-
|-
|}
|}


{| width="100%" cellpadding="3"
{| width="100%" cellpadding="3"
|-
|-
| style="background-color: #efefef;" colspan="3" | '''Multiple page support'''
| style="background-color: #efefef;" colspan="4" | '''Tab support'''
|-
|-
| style="background-color: #efefef; width: 20px"| '''Priority'''
| style="background-color: #efefef; width: 30px"| '''P/M'''
| style="background-color: #efefef; width: 20px"| '''Milestone'''
| style="background-color: #efefef; width: 20px"| '''Status'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef; width: 120px"| '''Bug'''
|-
|-
| P1 || M3 || Multiple page support
| P1M3 || {{ip}}  || Tab support ||
|-
|-
|}
|}


{| width="100%" cellpadding="3"
{| width="100%" cellpadding="3"
|-
|-
| style="background-color: #efefef;" colspan="3" | '''Search'''
| style="background-color: #efefef;" colspan="4" | '''Advanced Navigation'''
|-
|-
| style="background-color: #efefef; width: 20px"| '''Priority'''
| style="background-color: #efefef; width: 30px"| '''P/M'''
| style="background-color: #efefef; width: 20px"| '''Milestone'''
| style="background-color: #efefef; width: 20px"| '''Status'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef; width: 120px"| '''Bug'''
|-
| P?M? || || Search in current window ||
|-
| P?M? || || Search in all open tabs ||
|-
| P?M? || || Search on device ||
|-
| P?M? || {{ip}} || Download Manager ||
|-
| P?M? || || Popup Blocker ||
|-
| P?M? || || Page Info ||
|-
| P?M? || || Certificate Management ||
|-
|-
| P1 || M2 || Search box in toolbar (depends on screen size)
| P?M? || || Proxy Settings ||
|-
| P?M? || || Preferences ||
|-
|-
|}
|}


==Navigating within a page==
===Navigating within a page===
<p>Fennec will enable quick and intuitive access to the content of interest on a given Web page.</p>
<p>Fennec will enable quick and intuitive access to the content of interest on a given Web page.</p>


{| width="100%" cellpadding="3"
{| width="100%" cellpadding="3"
|-
|-
| style="background-color: #efefef;" colspan="3" | '''Modes'''
| style="background-color: #efefef;" colspan="4" | '''Modes'''
|-
|-
| style="background-color: #efefef; width: 20px"| '''Priority'''
| style="background-color: #efefef; width: 30px"| '''P/M'''
| style="background-color: #efefef; width: 20px"| '''Milestone'''
| style="background-color: #efefef; width: 20px"| '''Status'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef; width: 120px"| '''Bug'''
|-
| P1M1 || || Standard view ||
|-
|-
| P1 || M1 || Standard view
| P1M3 || || Full-screen mode
|-
|-
| P1 || M3 || Full-screen mode
| P2M3 || || Switch between portrait and landscape mode ||
|-
|-
| P2 || M3 || Switch between portrait and landscape mode
|}
 
 
{| width="100%" cellpadding="3"
|-
|-
| style="background-color: #efefef;" colspan="3" | '''Zooming'''
| style="background-color: #efefef;" colspan="4" | '''Zooming'''
|-
|-
| style="background-color: #efefef; width: 20px"| '''Priority'''
| style="background-color: #efefef; width: 30px"| '''P/M'''
| style="background-color: #efefef; width: 20px"| '''Milestone'''
| style="background-color: #efefef; width: 20px"| '''Status'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef; width: 120px"| '''Bug'''
|-
|-
| P1 || M2 || Zoom to fit page
| P1M2 || || Zoom to fit page ||
|-
|-
| P1 || M2 || Zoom to fit the width of the display area
| P1M2 || || Zoom to fit the width of the display area ||
|-
|-
| P4 ||  || Zoom to fit the height of the display area
| P4 ||  || Zoom to fit the height of the display area ||
|-
|-
| P1 || M2 || Zoom to relevant section
| P1M1 || {{ip}} || Zoom to relevant section ||
|-
|}
 
 
{| width="100%" cellpadding="3"
|-
|-
| style="background-color: #efefef;" colspan="3" | '''Scrolling and panning'''
| style="background-color: #efefef;" colspan="4" | '''Scrolling and panning'''
|-
|-
| style="background-color: #efefef; width: 20px"| '''Priority'''
| style="background-color: #efefef; width: 30px"| '''P/M'''
| style="background-color: #efefef; width: 20px"| '''Milestone'''
| style="background-color: #efefef; width: 20px"| '''Status'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef; width: 120px"| '''Bug'''
|-
|-
| P1 || M1 || Scrolling - discreet (e.g., page-up/down line up/down)
| P1M1 || {{co}} || Scrolling - discreet (e.g., page-up/down line up/down) ||
|-
|-
| P1 || M2 || Panning - smooth movement
| P1M1 || {{ip}} || Panning - smooth movement ||
|-
|-
| P1 || M3 || Keyboard shortcuts
| P1M3 || {{ip}} || Keyboard shortcuts ||
|-
|-
| P2 || M3 || Special effects
| P2M3 || || Special effects ||
|-
|-
| style="background-color: #efefef;" colspan="3" | '''Layout'''
|}
 
 
{| width="100%" cellpadding="3"
| style="background-color: #efefef;" colspan="4" | '''Layout'''
|-
|-
| style="background-color: #efefef; width: 20px"| '''Priority'''
| style="background-color: #efefef; width: 30px"| '''P/M'''
| style="background-color: #efefef; width: 20px"| '''Milestone'''
| style="background-color: #efefef; width: 20px"| '''Status'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef; width: 120px"| '''Bug'''
|-
|-
| P2 || M3 || Single column display
| P2M3 || || Single column display ||
|-
|-
| P2 || M2 || Fit to width
| P1M2 || || Fit to width ||
|-
|-
| P4 || M3 || Fit to height
| P4M3 || || Fit to height ||
|-
|-
| P2 || M3 || Scrollbar-free layout
| P1M3 || {{ip}} || Scrollbar-free layout ||
|-
|-
| P4 || M3 || Viewport meta tag
| P4M3 || || Viewport meta tag ||
|-
|-
| style="background-color: #efefef;" colspan="3" | '''Virtual mouse'''
|}
 
 
{| width="100%" cellpadding="3"
| style="background-color: #efefef;" colspan="4" | '''Navigation'''
|-
|-
| style="background-color: #efefef; width: 20px"| '''Priority'''
| style="background-color: #efefef; width: 30px"| '''P/M'''
| style="background-color: #efefef; width: 20px"| '''Milestone'''
| style="background-color: #efefef; width: 20px"| '''Status'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef; width: 120px"| '''Bug'''
|-
| P1M1 || || Spatial Navigation ||
|-
| P4M3 || || Virtual mouse ||
|-
|-
| P2 || M3 || Virtual mouse
| P?M? || || Device API for input integration ||
|-
|-
|}
|}


===Content===




==Plug-ins==
===Plug-ins===


==Add-ons==
===Add-ons===


{| width="100%" cellpadding="3"
{| width="100%" cellpadding="3"
|-
|-
| style="background-color: #efefef; width: 20px"| '''Priority'''
| style="background-color: #efefef; width: 30px"| '''P/M'''
| style="background-color: #efefef; width: 20px"| '''Milestone'''
| style="background-color: #efefef; width: 20px"| '''Status'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef; width: 120px"| '''Bug'''
|-
|-
| P2 || M3 || Add-on discovery
| P1M3 || || Add-on discovery ||
|-
|-
| P2 || M3 || Install
| P1M1 || {{ip}} || Install ||
|-
|-
| P2 || M3 || View installed add-ons
| P1M1 || {{ip}} || View installed add-ons ||
|-
|-
| P2 || M3 || Remove add-on
| P1M1 || {{ip}} || Remove add-on ||
|-
|-
|}
|}


==Device integration==
===Documentation===
 
==Installation and update==
 
{| width="100%" cellpadding="3"
{| width="100%" cellpadding="3"
|-
|-
| style="background-color: #efefef; width: 20px"| '''Priority'''
| style="background-color: #efefef; width: 30px"| '''P/M'''
| style="background-color: #efefef; width: 20px"| '''Milestone'''
| style="background-color: #efefef; width: 20px"| '''Status'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef; width: 120px"| '''Bug'''
|-
| P?M? || || Installation tutorials ||
|-
|-
| P2 || M3 || Installer
| P?M? || || Build tutorials ||
|-
|-
| P2 || M3 || Update manager
| P?M? || || Advanved features tutorials (e.g. settings) ||
|-
| P?M? || || Canned bugzilla queries (easy-to-fix, platform specific,...) ||
|-
|-
|}
|}


==Security==
===Device integration===
 
===Security===


==Accessibility==
===Accessibility===


==I18N/L10N==
===I18N/L10N===


==Communication==
===Communication===


{| width="100%" cellpadding="3"
{| width="100%" cellpadding="3"
|-
|-
| style="background-color: #efefef; width: 20px"| '''Priority'''
| style="background-color: #efefef; width: 30px"| '''P/M'''
| style="background-color: #efefef; width: 20px"| '''Milestone'''
| style="background-color: #efefef; width: 20px"| '''Status'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef; width: 120px"| '''Bug'''
|-
|-
| P2 || M3 || Send link as SMS
| P2M3 || || Send link as SMS ||
|-
|-
| P2 || M3 || Send link as email
| P2M3 || || Send link as email ||
|-
|-
|}
|}


==Developer tools==
===Developer tools===


{| width="100%" cellpadding="3"
{| width="100%" cellpadding="3"
|-
|-
| style="background-color: #efefef; width: 20px"| '''Priority'''
| style="background-color: #efefef; width: 30px"| '''P/M'''
| style="background-color: #efefef; width: 20px"| '''Milestone'''
| style="background-color: #efefef; width: 20px"| '''Status'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef;"| '''Feature'''
| style="background-color: #efefef; width: 120px"| '''Bug'''
|-
|-
| P2 || M3 || Mobile Firebug  
| P2M3 || || Mobile Firebug ||
|-
|-
| P2 || M3 || Remote debugging
| P2M3 || || Remote debugging ||
|-
|-
| P2 || M3 || XUL simulator
| P2M3 || || XUL simulator ||
|-
|-
|}
|}
382

edits