Firefox/Namoroka/Initial Plan

From MozillaWiki
Jump to: navigation, search
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)