B2G

From MozillaWiki
Jump to navigation Jump to search

This page is edited by brendan, cjones, gal, shaver. Please don't change without permission.

Booting to the web

Mozilla believes that the web can displace proprietary, single-vendor stacks for application development. To make open web technologies a better basis for future applications on mobile and desktop alike, we need to keep pushing the envelope of the web to include --- and in places exceed --- the capabilities of the competing stacks in question.

We also need a hill to take, in order to scope and focus our efforts. Recently we saw the pdf.js project expose small gaps that needed filling in order for "HTML5" to be a superset of PDF. We want to take a bigger step now, and find the gaps that keep web developers from being able to build apps that are --- in every way --- the equals of native apps built for the iPhone, Android, and WP7.

To that end, we propose a project we’re calling Boot to Gecko (B2G) to pursue the goal of building a complete, standalone operating system for the open web. It’s going to require work in a number of areas.

  • New web APIs: build prototype APIs for exposing device and OS capabilities to content (Telephony, SMS, Camera, USB, Bluetooth, NFC, etc.)
  • Privilege model: making sure that these new capabilities are safely exposed to pages and applications
  • Booting: prototype a low-level substrate for an Android-compatible device
  • Applications: choose and port or build apps to prove out and prioritize the power of the system.

We will do this work in the open, we will release the source in real-time, we will take all successful additions to an appropriate standards group, and we will track changes that come out of that process. We aren't trying to have these native-grade apps just run on Firefox, we're trying to have them run on the web.

This project is in its infancy; some pieces of it are only captured in our heads today, others aren’t fully explored. We’re talking about it now because we want expertise from all over Mozilla -- and from people who aren’t yet part of Mozilla -- to inform and build the project we’re outlining here. Please see, and join, the thread in mozilla.dev.platform.

FAQ

We're maintaining a FAQ to help people find and share answers to common questions.

Contributing

We're in an early enough stage of the project that we're still getting infrastructure and so forth set up. Unfortunately that means that there's not a lot of parallelizable low-level work yet. We'll be updating this page and filing issues/bugs for work items as that changes.

For now, the best ways to contribute are

  1. Work on existing Firefox/Gecko features and bugs. See bugzilla or join #developers or #b2g on IRC.
  2. Work with the Web APIs group on new features. Join #content or #b2g on IRC.
  3. Work on new web apps!

We can't implement a full-fledged phone app until we have telephony APIs, for example, but that doesn't mean a phone app can't be developed in parallel. That work also feeds back into the API design, since the phone app could work out in some detail the API gaps that need to be plugged the APIs group: the prototype could use "mock objects" to provide an approximation of the missing functionality. Here's a short list of apps we know we'll want

  • Phone
  • SMS
  • Contacts manager
  • Camera/photo manager/gallery
  • E-book reader
  • Games
  • Crazy new things!
  • ...