Mobile/Roadmap: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
= Introduction =
= Introduction =
This working roadmap describes the major deliverables of the project to bring Mozilla technology and the Firefox Web browser to mobile phones and other devices.  The intent is to provide a high-level overview of what we're doing, the main areas of development, and high-priority features so that people throughout the community can make suggestions and jump in and help.


Our roadmap for Mobile is a rough guess on what needs to get done at a high level, what order they will be done and how they depend on each other. This document is relatively fluid and is really here for the reference of people who are involved in the project on a day to day basis or those who are interested in learning about what we're going to be doing over the next six months.
= Background =
Background on why we're building a browser for mobile devices, how it relates to the Mozilla mission, and other context can be found [http://wiki.mozilla.org/Mobile/Background here].


Please note that these are not goals, but instead describe the rough periods of time when we will be focused on the tasks listed below.
= Deliverables =
The first set of product deliverables planned for mobile devices are:


Want to get involved?  Have a specific area of interest? This is a good place to start since it should tell you what we're doing, where you can find more information and who is working on what.
* Fennec - Firefox for mobile devices
* Embedding interface - new C/C++ APIs to enable Gecko embedding
* XULRunner - Fennec will be delivered as a XULRunner application. Other mobile applications can be built upon XULRunner also


= Areas of Work =
= Platforms =


We're breaking this down into a few areas of work.  These include Performance and Size, User Experience, Mozilla Platform, Device Support (where it will run), Build and QA, and Product.
* Linux - Nokia's Maemo platform (Debian-based) and others
* Windows Mobile 6
* Symbian is currently under discussion


= High Level Roadmap =
= Versions =
The first version of Fennec will be delivered on Gecko 1.9.1. 


<table class="fullwidth-table">
= Gecko =
<tr>
<th colspan="2">Q1 2008</th>
</tr>
<tr>
<td width="15%>
Performance and Size
</td>
<td width="85%">
* Building a baseline of metrics so that we can measure progress for future mobile devices.
</td>
</tr>
<tr>
<td>
User Experience
</td>
<td>
* Start work to build an interface that we can use for testing purposes.
* Build XUL-based interfaces for small devices so that we can start testing browser experiences on different sized screens with different input methods.  (For example, the N800 is 800×480 touch screen.  HTC S730 is 320×240 non-touch screen.)
* Continue with Monday UI brainstorming meetings.
* Start to explore navigation options e.g. spatial navigation, directional tabbing, panning, mini map, allow extensions to control navigation, software cursor.
* Evaluate in the context of displays that can rotate.
* Know what the options are for text input and explore how we can integrate that into the Mobile experience.
* Explore how we can enable device capabilities through the browser (GPS, Camera) and content loaded on the browser.
</td>
</tr>
<tr>
<td>
Device Support
</td>
<td>
* Optimize existing support on Windows Mobile 6.  (i.e. [http://www.htc.com/www/product.aspx?id=586 HTC S730])
* Optimize existing support for Linux (i.e. the N810.)
</td>
</tr>
<tr>
<td>
Mozilla Platform
</td>
<td>
* Track and attempt to measure late breaking changes going in to help the Firefox 3 release.  Determine if those changes include tradeoffs (CPU vs. Memory footprint for example) that negatively affect Mobile.
* Begin to identify areas in the Mozilla Platform that might need changes to support Mobile User Experience or areas where Mobile differs deeply from Desktop systems.  (i.e. events for GPS or support for touch interfaces or different focus or window models)
* Based on possible interfaces for device integration, consider and start standardization work for those interfaces.
* Build and test everything up to XULRunner on the 1.9 trunk.
* Document build targets and instructions for building the Mobile code on the N810 platform and Windows Mobile.
</td>
</tr>
<tr>
<td>
Build and QA
</td>
<td>
* Start automating the build process for ARM + Mobile as a first tier platform to create predictability in our support for Mobile platforms.
</td>
</tr>
<tr>
<td>
Product
</td>
<td>
* Have an understanding of what "Firefox on Mobile" means.  Answer questions about how our values would be applied to Mobile and how they might manifest them in terms of experience and expectations.
</td>
</tr>
</table>


In addition to the memory and performance work done for Gecko 1.9, Gecko will be further enhanced and optimized for mobile environments.


<table class="fullwidth-table">
Gecko will:
<tr>
<th colspan="2">Q2 2008</th>
</tr>
<tr>
<td width="15%>
Performance and Size
</td>
<td width="85%">
* Have a full understanding of the baseline for performance metrics and have testing in place to make sure that we don't regress over time.
* Have several places identified where we are able to increase performance in the Mobile use case.
* Have several places identified where we are able to reduce memory usage in the Mobile use case.
</td>
</tr>
<tr>
<td>
User Experience
</td>
<td>
* Execute against identified experience items that showcase browser/device integration, input methods or browser interfaces for some of our test Mobile devices.
</td>
</tr>
<tr>
<td>
Device Support
</td>
<td>
[ Nothing new in Q2 here. ]
</td>
</tr>
<tr>
<td>
Mozilla Platform
</td>
<td>
* Have areas identified and communicated with the platform team where there are new opportunities for optimization or features specific to Mobile.  (Trade-offs of memory vs. CPU or not rendering large images or only partially rendering pages as examples.)
* Understand risks and opportunities with the Mobile 2 platform work and how it will affect Mobile.
* Identify and scope graphics changes that might be required for mobile devices.  (OpenGL ES, make-a-faster-pixman, etc)
* Continue ongoing standardization work for device interfaces.
* Understand how we might do offline applications for Mobile and if there's platform work that's needed to make that possible.  (i.e. online/offline state related to GPRS or WiFi availability, low-bandwith json transfers, other bandwith-saving methods, etc.)
</td>
</tr>
<tr>
<td>
Build and QA
</td>
<td>
[ Open to Discussion ]
</td>
</tr>
<tr>
<td>
Product
</td>
<td>
* Start on Product plan with identified partners.
</td>
</tr>
</table>


* serve as the core platform for Fennec
* have a new, simplified C/C++ API that will enable it to embedded in mobile applications that need to include Web content
* be delivered with a XUL runner wrapper so that XUL applications can be built for mobile phones and easily deployed - Fennec will be built and delivered as a XUL runner application


<table class="fullwidth-table">
The major work items for Gecko are:
<tr>
 
<th colspan="2">Q3+ 2008 (Speculative and future work.)</th>
== Graphics libraries and widget toolkits ==
</tr>
* GTK with X
<tr>
* GTK with DirectFB
<td width="15%>
* Windows Mobile 6
Performance and Size
 
</td>
== Performance and optimization ==
<td width="85%">
* startup performance
[ Open to discussion. ]
* memory usage
</td>
* out of memory handling / memory pressure
</tr>
* panning and zooming performance
<tr>
 
<td>
== Device APIs through the DOM ==
User Experience
To provide a platform that enables Web developers to create innovative applications that take advantage of the unique aspects of mobile devices, we aim to provide access to mobile device functionality by exposing this functionality through the DOM.
</td>
 
<td>
The top priority is to enable Web developers to access the location of the device, with appropriate security and privacy protections for the user.
[ Open to discussion. ]
 
</td>
= Fennec =
</tr>
== Release themes ==
<tr>
In priority order, here are the key themes of the first Fennec release:
<td>
 
Device Support
1. Simple, fast navigation to Web content
</td>
2. Compatibility with the Web
<td>
3. Secure
[ Open to discussion. ]
4. A "whole product"
</td>
5. A platform for innovation on mobile
</tr>
 
<tr>
== Simple, fast navigation to Web content ==
<td>
We need to pay close attention to very basic operations that are still hard to accomplish on most mobile phones, like entering URLs, managing bookmarks, providing an equivalent to multiple windows/tabs, designing zooming and scrolling to achieve readability; we will need to question assumptions about how people use the Web when they're on the go, and not view the UI as a "port" of desktop Firefox.
Mozilla Platform
 
</td>
=== Getting to Web content ===
<td>
 
[ Open to discussion. ]
* Awesome bar
</td>
* Search integrated into URL bar
</tr>
* Password manager
<tr>
* Weave
<td>
 
Build and QA
=== Getting around Web content ===
</td>
 
<td>
* one click to dial phone numbers
</td>
* maximize screen real estate
</tr>
* fast panning and zooming
<tr>
* plug-in support
<td>
* popup blocker
Product
* find text within a page
</td>
 
<td>
== Compatibility with the Web ==
[ Open to discussion. ]
Fennec will provide access to the "full" Web, including rich internet applications developed using AJAX. Web content developers should be able to optimize to smaller screen sizes, etc., but not be required to adopt alternate technologies.
</td>
 
</tr>
== Secure ==
</table>
Providing a powerful desktop browser engine with full implementation of JavaScript, AJAX, and other advanced web technologies could open a phone up to exploits which could be more costly and more invasive than PC exploits; security will need to be a key consideration from day one.
 
* Extended Validation certificates ("Larry")
* phishing and malware protection
* auto-update
* user control over script access to phone features
 
== A "whole product" for mobile devices ==
Subject to the security constraints above, Fennec should strive to integrate as much as possible with a phone's mapping application, have the ability to initiate phone calls from phone numbers in Web pages, have access to location information through, and integrate with contacts, calendar items and camera. We should work to ensure that critical necessary plug-ins work out of the box.
 
* Clear guidelines for Web site and application developers
* Plug-in support (npapi)
 
== A platform for innovation on mobile ==
A key strength of Firefox is its support for third-party innovation through full support for rich internet applications and for Add-ons. By providing full support for JavaScript, AJAX, offline storage and other key ingredients of RIAs, as well as JavaScript access to native phone features, Fennec will enable a whole new wave of mobile application development. Fennec will support Add-ons as well, so that the mobile browsing experience can be augmented and improved by anyone.
 
* Add-ons
* Support for Web developers - guidelines, user-agent, etc.
 
= User experience principles =
 
Fennec is being designed for typical mobile phone screens as well as larger internet tablet devices.  The exact layout of navigation and other controls with vary across particular devices.  The basic design principle, though, is the same: to dedicate as much of the screen real-estate -- all of it, if possible -- to Web content, and minimize the intrusion of browser chrome artifacts
 
We are developing touch-screen and non-touch-screen Fennec interfaces.
 
One of the major barriers to the use of mobile browsers is the difficulty in quickly entering URLs, passwords and filling out forms.  A key goal is to provide a user experience that will remove that barrier.
 
= Schedule =
The goal is to ship beta releases of Fennec on the Maemo platform and Windows Mobile 6 in late 2008, and release in 2009. More detailed milestones can be found here [link].
 
= Beyond version 1 =
The roadmap beyond Fennec version 1 includes:
 
* Bring Fennec to more platforms
* Exposing more device APIs through the DOM
* Prism and/or deeper support for mobile widget packaging

Revision as of 04:46, 1 July 2008

Introduction

This working roadmap describes the major deliverables of the project to bring Mozilla technology and the Firefox Web browser to mobile phones and other devices. The intent is to provide a high-level overview of what we're doing, the main areas of development, and high-priority features so that people throughout the community can make suggestions and jump in and help.

Background

Background on why we're building a browser for mobile devices, how it relates to the Mozilla mission, and other context can be found here.

Deliverables

The first set of product deliverables planned for mobile devices are:

  • Fennec - Firefox for mobile devices
  • Embedding interface - new C/C++ APIs to enable Gecko embedding
  • XULRunner - Fennec will be delivered as a XULRunner application. Other mobile applications can be built upon XULRunner also

Platforms

  • Linux - Nokia's Maemo platform (Debian-based) and others
  • Windows Mobile 6
  • Symbian is currently under discussion

Versions

The first version of Fennec will be delivered on Gecko 1.9.1.

Gecko

In addition to the memory and performance work done for Gecko 1.9, Gecko will be further enhanced and optimized for mobile environments.

Gecko will:

  • serve as the core platform for Fennec
  • have a new, simplified C/C++ API that will enable it to embedded in mobile applications that need to include Web content
  • be delivered with a XUL runner wrapper so that XUL applications can be built for mobile phones and easily deployed - Fennec will be built and delivered as a XUL runner application

The major work items for Gecko are:

Graphics libraries and widget toolkits

  • GTK with X
  • GTK with DirectFB
  • Windows Mobile 6

Performance and optimization

  • startup performance
  • memory usage
  • out of memory handling / memory pressure
  • panning and zooming performance

Device APIs through the DOM

To provide a platform that enables Web developers to create innovative applications that take advantage of the unique aspects of mobile devices, we aim to provide access to mobile device functionality by exposing this functionality through the DOM.

The top priority is to enable Web developers to access the location of the device, with appropriate security and privacy protections for the user.

Fennec

Release themes

In priority order, here are the key themes of the first Fennec release:

1. Simple, fast navigation to Web content 2. Compatibility with the Web 3. Secure 4. A "whole product" 5. A platform for innovation on mobile

Simple, fast navigation to Web content

We need to pay close attention to very basic operations that are still hard to accomplish on most mobile phones, like entering URLs, managing bookmarks, providing an equivalent to multiple windows/tabs, designing zooming and scrolling to achieve readability; we will need to question assumptions about how people use the Web when they're on the go, and not view the UI as a "port" of desktop Firefox.

Getting to Web content

  • Awesome bar
  • Search integrated into URL bar
  • Password manager
  • Weave

Getting around Web content

  • one click to dial phone numbers
  • maximize screen real estate
  • fast panning and zooming
  • plug-in support
  • popup blocker
  • find text within a page

Compatibility with the Web

Fennec will provide access to the "full" Web, including rich internet applications developed using AJAX. Web content developers should be able to optimize to smaller screen sizes, etc., but not be required to adopt alternate technologies.

Secure

Providing a powerful desktop browser engine with full implementation of JavaScript, AJAX, and other advanced web technologies could open a phone up to exploits which could be more costly and more invasive than PC exploits; security will need to be a key consideration from day one.

  • Extended Validation certificates ("Larry")
  • phishing and malware protection
  • auto-update
  • user control over script access to phone features

A "whole product" for mobile devices

Subject to the security constraints above, Fennec should strive to integrate as much as possible with a phone's mapping application, have the ability to initiate phone calls from phone numbers in Web pages, have access to location information through, and integrate with contacts, calendar items and camera. We should work to ensure that critical necessary plug-ins work out of the box.

  • Clear guidelines for Web site and application developers
  • Plug-in support (npapi)

A platform for innovation on mobile

A key strength of Firefox is its support for third-party innovation through full support for rich internet applications and for Add-ons. By providing full support for JavaScript, AJAX, offline storage and other key ingredients of RIAs, as well as JavaScript access to native phone features, Fennec will enable a whole new wave of mobile application development. Fennec will support Add-ons as well, so that the mobile browsing experience can be augmented and improved by anyone.

  • Add-ons
  • Support for Web developers - guidelines, user-agent, etc.

User experience principles

Fennec is being designed for typical mobile phone screens as well as larger internet tablet devices. The exact layout of navigation and other controls with vary across particular devices. The basic design principle, though, is the same: to dedicate as much of the screen real-estate -- all of it, if possible -- to Web content, and minimize the intrusion of browser chrome artifacts

We are developing touch-screen and non-touch-screen Fennec interfaces.

One of the major barriers to the use of mobile browsers is the difficulty in quickly entering URLs, passwords and filling out forms. A key goal is to provide a user experience that will remove that barrier.

Schedule

The goal is to ship beta releases of Fennec on the Maemo platform and Windows Mobile 6 in late 2008, and release in 2009. More detailed milestones can be found here [link].

Beyond version 1

The roadmap beyond Fennec version 1 includes:

  • Bring Fennec to more platforms
  • Exposing more device APIs through the DOM
  • Prism and/or deeper support for mobile widget packaging