Firefox/Namoroka/Initial Plan: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
m (moved Firefox/Namoroka to Firefox/Namoroka/Initial Plan: That was the initial plan)
 
(14 intermediate revisions by 4 users not shown)
Line 1: Line 1:
__NOTOC__
<div style="width: 80%; border: thin dotted #aaa; padding: 10px; background-color: #FCF6CF">
<div style="width: 80%; border: thin dotted #aaa; padding: 10px; background-color: #FCF6CF">
'''This is a DRAFT document. Please do not edit these pages without permission of the Firefox product drivers. Your feedback and comments are welcomed on the [[Talk:Firefox/Namoroka|discussion page]].'''</div>
'''This is a DRAFT document. Please do not edit these pages without permission of the Firefox product drivers. Your feedback and comments are welcomed on the [[Talk:Firefox/Namoroka|discussion page]].'''</div>
Line 8: Line 6:


== Goals ==
== Goals ==
Namoroka will be developed in line with the [http://www.mozilla.org/projects/firefox/charter.html Firefox Charter], with specific focus on the following areas:
Namoroka will focus on the following areas:


;Performance
;Performance
:Allow no regressions in existing system performance metrics, and create some metric for system responsiveness (aka: "Tbeachball"). Budget development resource and prioritize projects to improve startup time (Ts), user interface responsiveness, and performance, with a specific focus on reducing the time required to perform common user tasks.
:Observable improvements in user-perceptible performance metrics such as startup, time to open a new tab, and responsiveness when interacting with the user interface. Common user tasks should feel faster and more responsive.


;Personalization & Customization
;Personalization & Customization
Line 17: Line 15:


;Task Based Navigation
;Task Based Navigation
:Allow users to organize their tabs, history, downloaded files, and other resources according to the task they were attempting to accomplish. Provide support for executing common web-based tasks, mash-up style, without having to visit a website.
::Allow users to organize their tabs, history, downloaded files, and other resources according to the task they were attempting to accomplish. Provide support for executing common web-based tasks, mash-up style, without having to visit a website.


;Web Application Support
;Web Application Support
:Provide web developers with the tools required to create rich application experiences for a user who is connected or disconnected from the Internet. Act as the intermediary between web applications and the user's OS desktop.
:Blur the distinction between web and desktop applications, providing web developers with the tools required to create rich application experiences for a user who is connected or disconnected from the Internet. Act as the intermediary between web applications and the user's OS desktop.


;System Integration
;System Integration
Line 26: Line 24:


== Development Schedule ==
== Development Schedule ==
Namoroka will be based on Gecko 1.9.2, with an initially scheduled release of early 2010. As always, we will only release the finished product [http://blog.mozilla.com/ftr/2008/02/11/when-its-ready/ when it's ready].
Namoroka will be based on Gecko 1.9.2 (see [[Platform]]), with an intended release target of early-to-mid 2010. As always, we will only release the finished product [http://blog.mozilla.com/ftr/2008/02/11/when-its-ready/ when it's ready].


Namoroka will employ a highly iterative, milestone based development process which will rely on feedback from developers, testers and users to ensure that we are properly investing time and resources. An initial exploration phase will be used to investigate development cost and benefit, as well as to create user interaction prototypes. This will be followed by an alpha development phase for early user testing and feedback, and then a beta phase for broader compatibility testing.
Namoroka will employ a highly iterative, milestone based development process which will rely on feedback from developers, testers and users to ensure that we are properly investing time and resources. An initial exploration phase will be used to investigate development cost and benefit, as well as to create user interaction prototypes. This will be followed by an alpha development phase for early user testing and feedback, and then a beta phase for broader compatibility testing.


; Exploration & Prototyping (April 13 2009 - June 30 2009)
; Exploration & Prototyping (2 months)
* identify & begin work on user interface polish issues
* identify & begin work on user interface polish issues
* explore development areas of interest in consultation with the community and report on cost/benefit
* explore development areas of interest in consultation with the community and report on cost/benefit
Line 39: Line 37:
* '''alpha''' level milestones to be produced during this phase, primarily to test new platform features
* '''alpha''' level milestones to be produced during this phase, primarily to test new platform features


; Product Development (July 1 2009 - Oct 30 2009)
; Product Development (5 months)
* fortnightly progress checkups on all development plans
* fortnightly progress checkups on all development plans
* major user interface changes to be implemented and iterated on first in an [http://www.mozilla.org/hacking/incubator-repository.html incubator repository] with regular merges into the main development tree
* major user interface changes to be implemented and iterated on first in an [http://www.mozilla.org/hacking/incubator-repository.html incubator repository] with regular merges into the main development tree
Line 45: Line 43:
* first '''beta''' milestone to be delivered at the end of this phase
* first '''beta''' milestone to be delivered at the end of this phase


; Polish & Delivery (November 2 2009 - January 29 2010)
; Polish & Delivery (3 months)
* revise user interface features based on beta testing feedback
* revise user interface features based on beta testing feedback
* polish and bugfixing
* polish and bugfixing
Line 59: Line 57:


;Performance
;Performance
* profile & analyse front-end code for potential startup (Ts) improvements
* [P1] achieve dramatic, human-perceivable (>50ms) speed increases on startup
* profile & analyse front-end code for user interface responsiveness on common tasks (ex: open a new tab/window, play video, print page)
* [P1] achieve dramatic, human-perceivable (>50ms) speed increases on common user tasks
* optimize Places system to improve database query responsiveness
** opening a new tab
* create animations for common user interactions where they make sense
** loading a bookmarked page
** autocompleting a location in the Awesomebar
** play rich media content
* animation and other interaction techniques to reduce lag between action and feedback, and to improve perceived speed


;Personalization and Customization
;Personalization and Customization
* improve theme structure to make it easier to create themes, ship multiple themes, switch between themes
* [P1] "light weight" themes which do not require a restart to install
* support lightweight themes (Personas) by default
* [P1] "light weight" add-ons which to not require a restart to install
* add support for lightweight, easy-to-develop add-ons
* [P2] customize browser behaviours based on personal history
* customize browser behaviours based on personal history
** opening a new tab / navigation tasks
** opening a new tab / navigation tasks
** search related tasks
** search related tasks
** form fill tasks
** form fill tasks
** about:me personal portal
** about:me personal portal
* identity management
* [P2] identity management


;Task Based Navigation
;Task Based Navigation
* support web navigation by tag / date / source metadata
* [P1] support web navigation by tag / date / source metadata
* add ability to search for an existing tab
* [P1] add ability to search for an existing tab
* allow users to create, save, restore groups of tabs
* [P2] allow users to create, save, restore groups of tabs
* allow users to accomplish common web-application tasks ([[Taskfox]])
* [P2] allow users to accomplish common web-application tasks ([[Taskfox]])
* provide basic file management in download manager
* [P2] support file management tasks (delete, move, etc) in download manager


; Web Application Support
; Web Application Support
* improve user interface for sending files to websites
* [P1] improve user interface for sending files to websites
* improve editing tools for creating rich data on websites
* [P1] allow users to save a page as web app
* allow users to save a page as web app
* [P2] improve editing tools for creating rich data on websites


;System Integration
;System Integration
* new default theme for Windows using Aero
* [P1] new default theme for Windows using Aero Glass
* integrate with OSX dictionaries
* [P2] integrate with OSX dictionaries


;Other
;Other
* optimize security UI for common user certificate management tasks
* [P1] merge common site-specific controls with identity button
* merge common site-specific controls with identity button
* [P2] optimize security UI for common user certificate management tasks


= Firefox.next Platform Requirements =
= Firefox.next Platform Requirements =
Line 103: Line 103:
* chrome JIT
* chrome JIT
* ability to register chrome components without restart
* ability to register chrome components without restart
* aggressive use of connection pre-caching
* network resource pre-caching to reduce page load times when clicking a link
* improved cache pinning support / less cache entropy on crash (to speed session restore time)
* improved cache pinning support
* make cache more reliable so that it can be used when restoring a user session on a restart or after a crash
* solidifying nsIRunnable and thread support before Mozilla 2
* solidifying nsIRunnable and thread support before Mozilla 2
; Web Application Support
* offline data storage mechanism for web application developers


; System Integration
; System Integration
Line 120: Line 118:
= Firefox.next Build Infrastructure Requirements =
= Firefox.next Build Infrastructure Requirements =
* bigger server pool for tryserver builds (due to increased reliance on incubator repositories)
* bigger server pool for tryserver builds (due to increased reliance on incubator repositories)
[[Category:Namoroka]]

Latest revision as of 12:55, 8 August 2009

This is a DRAFT document. Please do not edit these pages without permission of the Firefox product drivers. Your feedback and comments are welcomed on the discussion page.

Firefox.next

After Firefox3.5 ("Shiretoko") is released, the next version of Firefox will be developed under the project name "Namoroka". The version number will be initially set to "3.6", but this should not be considered final, and as such the project may also be referred to as "Firefox.next".

Goals

Namoroka will focus on the following areas:

Performance
Observable improvements in user-perceptible performance metrics such as startup, time to open a new tab, and responsiveness when interacting with the user interface. Common user tasks should feel faster and more responsive.
Personalization & Customization
Simplify the development, discovery, installation and management of browser customization and functional extension. Where possible, provide a custom fit user experience based on a user's interaction history. Act in the user's interests, leveraging existing knowledge about their identity and browsing habits.
Task Based Navigation
Allow users to organize their tabs, history, downloaded files, and other resources according to the task they were attempting to accomplish. Provide support for executing common web-based tasks, mash-up style, without having to visit a website.
Web Application Support
Blur the distinction between web and desktop applications, providing web developers with the tools required to create rich application experiences for a user who is connected or disconnected from the Internet. Act as the intermediary between web applications and the user's OS desktop.
System Integration
Integrate with the look and feel of the host operating system, including data-level interactions with existing system services such as dictionaries.

Development Schedule

Namoroka will be based on Gecko 1.9.2 (see Platform), with an intended release target of early-to-mid 2010. As always, we will only release the finished product when it's ready.

Namoroka will employ a highly iterative, milestone based development process which will rely on feedback from developers, testers and users to ensure that we are properly investing time and resources. An initial exploration phase will be used to investigate development cost and benefit, as well as to create user interaction prototypes. This will be followed by an alpha development phase for early user testing and feedback, and then a beta phase for broader compatibility testing.

Exploration & Prototyping (2 months)
  • identify & begin work on user interface polish issues
  • explore development areas of interest in consultation with the community and report on cost/benefit
  • determine platform requirements for front end features
  • create prototypes in incubator repositories and/or as JS/XUL snippets
  • write up development plans for items to be included in final product
  • identify items for future releases & Mozilla Labs experimentation
  • alpha level milestones to be produced during this phase, primarily to test new platform features
Product Development (5 months)
  • fortnightly progress checkups on all development plans
  • major user interface changes to be implemented and iterated on first in an incubator repository with regular merges into the main development tree
  • monthly alpha level milestones to be produced to test new platform and front end features
  • first beta milestone to be delivered at the end of this phase
Polish & Delivery (3 months)
  • revise user interface features based on beta testing feedback
  • polish and bugfixing
  • beta milestones to be delivered every 4-6 weeks to get wider user feedback
Milestone Definitions
  • Alpha: major platform and user interface changes will occur between milestones
  • Beta: minor user interface changes will occur between milestones, based on user feedback. Platform changes will be limited to correctness fixes only (no new features)
  • Release Candidate: only functional correctness changes

Firefox.next Development Areas of Interest

Anyone can propose an area of interest for development, though until the documentation is complete, it will not be considered for inclusion in the product.

Performance
  • [P1] achieve dramatic, human-perceivable (>50ms) speed increases on startup
  • [P1] achieve dramatic, human-perceivable (>50ms) speed increases on common user tasks
    • opening a new tab
    • loading a bookmarked page
    • autocompleting a location in the Awesomebar
    • play rich media content
  • animation and other interaction techniques to reduce lag between action and feedback, and to improve perceived speed
Personalization and Customization
  • [P1] "light weight" themes which do not require a restart to install
  • [P1] "light weight" add-ons which to not require a restart to install
  • [P2] customize browser behaviours based on personal history
    • opening a new tab / navigation tasks
    • search related tasks
    • form fill tasks
    • about:me personal portal
  • [P2] identity management
Task Based Navigation
  • [P1] support web navigation by tag / date / source metadata
  • [P1] add ability to search for an existing tab
  • [P2] allow users to create, save, restore groups of tabs
  • [P2] allow users to accomplish common web-application tasks (Taskfox)
  • [P2] support file management tasks (delete, move, etc) in download manager
Web Application Support
  • [P1] improve user interface for sending files to websites
  • [P1] allow users to save a page as web app
  • [P2] improve editing tools for creating rich data on websites
System Integration
  • [P1] new default theme for Windows using Aero Glass
  • [P2] integrate with OSX dictionaries
Other
  • [P1] merge common site-specific controls with identity button
  • [P2] optimize security UI for common user certificate management tasks

Firefox.next Platform Requirements

User Experience Enablement
  • support user interface animations in XUL
  • compositor (to support layered/cropped user interface window elements)
Performance
  • chrome JIT
  • ability to register chrome components without restart
  • network resource pre-caching to reduce page load times when clicking a link
  • improved cache pinning support
  • make cache more reliable so that it can be used when restoring a user session on a restart or after a crash
  • solidifying nsIRunnable and thread support before Mozilla 2
System Integration
  • OSX Dictionary integration
  • OSX Services & AppleScript integration
  • OSX Keychain integration
  • Windows Aero Glass
  • Windows Aero Peek
  • Windows 7

Firefox.next Build Infrastructure Requirements

  • bigger server pool for tryserver builds (due to increased reliance on incubator repositories)