Mobile/Roadmap
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 (work started in December 2009)
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
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. Check back here for more detailed milestones soon.
In the meantime, you can go to the #mobile IRC channel for general fennec and mobile devices developers, as well as the #wince IRC channel for WinCE / Windows Mobile specific developers.
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