B2G: Difference between revisions
No edit summary |
|||
Line 71: | Line 71: | ||
* [[Gaia/Meeting/2012-03-13|2012-03-13]] (Gaia) | * [[Gaia/Meeting/2012-03-13|2012-03-13]] (Gaia) | ||
* [[B2G/Meeting/2012-03-13|2012-03-13]] (B2G) | * [[B2G/Meeting/2012-03-13|2012-03-13]] (B2G) | ||
* [[Gaia/Meeting/2012-03-20|2012-03-20]] (Gaia) | |||
* [[B2G/Meeting/2012-03-20|2012-03-20]] (B2G) | |||
== Contributing == | == Contributing == |
Revision as of 17:20, 23 March 2012
This page is edited by brendan, cjones, gal. 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 started 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 requires 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 mobile devices (phones and tablets)
- 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 early stages; 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.
Is B2G based on Android?
No. B2G uses some of the same low-level building blocks used in Android (Linux kernel, libusb, etc) in order to reduce the burden on ODMs/OEMs to bring up B2G on new hardware. However, B2G is not based on Android, and will not be compatible with the Android stack (in particular B2G will not run Android applications).
FAQ
We're maintaining a FAQ to help people find and share answers to common questions.
Roadmap
We have a roadmap.
Getting started
Please see the Hacking page.
Meetings
Gaia Weekly Meeting
- Time:
- Tuesdays 0900 PST / 1800 CET / 0300 CST
- Dial-in:
- +1 650 903 0800 x92 Conf 434#
+1 416 848 3114 x92 Conf 434#
+1 800 707 2533 (pin 369) Conf 434# (toll free, Skype) - Vidyo:
- MTV 2J-JK
Notes during the meeting are captured on this etherpad and later transferred to Past meeting notes of this page.
B2G Weekly Meeting
- Time:
- Tuesdays 1700 PST / 0200 CET / 0900 CST
- Dial-in:
- +1 650 903 0800 x92 Conf 434#
+1 416 848 3114 x92 Conf 434#
+1 800 707 2533 (pin 369) Conf 434# (toll free, Skype)
Notes during the meeting are captured on this etherpad and later transferred to Past meeting notes of this page.
Past meeting notes
- 2011-11-01 (B2G)
- 2011-11-08 (B2G)
- 2011-11-10 (Gaia)
- 2011-11-15 (B2G)
- 2011-11-22 (B2G)
- 2011-11-29 (B2G)
- 2011-12-13 (B2G)
- 2011-12-20 (B2G)
- 2011-12-27 (B2G)
- 2012-01-03 (B2G)
- 2012-01-10 (B2G)
- 2012-01-17 (B2G)
- 2012-01-24 (Gaia)
- 2012-01-24 (B2G)
- 2012-01-31 (B2G)
- 2012-02-07 (B2G)
- 2012-02-28 (Gaia)
- 2012-02-28 (B2G)
- 2012-03-06 (Gaia)
- 2012-03-06 (B2G)
- 2012-03-13 (Gaia)
- 2012-03-13 (B2G)
- 2012-03-20 (Gaia)
- 2012-03-20 (B2G)
Contributing
First, you will want to read about the B2G/Architecture.
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
- Work on existing Firefox/Gecko features and bugs. See bugzilla or join #developers or #b2g on IRC.
- Work with the Web APIs group on new features. Join #content or #b2g on IRC, and join the [mozilla.dev.b2g and [mozilla.dev.webapi mailing lists.
- Work with the Accessibility team. Join #accessibility or #b2g on IRC.
- Work on performance testing. We'll need new tools and tests, including a power-usage test suite and measurement tools. More details forthcoming. Join #perf or talk to bsmedberg on IRC.
- 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!
- ...
B2G low-level work
A few disorganized items that have arisen so far. As we get more information about reusable work from others, these items will change
- Radio Interface Layer for accessing the cellular network. This is needed for dialing/receiving calls, SMS messages, and anything else that deals with the phone network.
- Make "home screen" web app the "home page" for browser/shell. Import/reference work done by Anant and webapps team.
- Implement HTML5 IME. Big project. See Vivien's add-on for reference.
- Build the final image in a separate step from android userspace compilation. use the "internal" android build targets directly
- Strip out unnecessary crud from gonk image, unused programs etc. Default home screen is currently just in the way.
- Start porting gecko to directly use native libs instead of java wrappers. Big project. prioritize with feedback from authors/web-APIs team.
- telephony probably first, want to show our own UI
- Give gecko a GL context for the screen and deliver raw input events to it, remove android eventry and widgetry. Big project.
- Proxy oprofile and/or perf samples over adb to avoid processing on device
- the updater-binary built by CyanogenMod has been observed to corrupt the /system filesystem of the Galaxy S II when applying an update.zip, specifically at the reformatting command in the updater script.
User Interface
The UI of B2G is called Gaia and is a collection of web apps.
Some design concepts are posted here.
Subpages of B2G
- B2G/2012BarcelonaHackTargets
- B2G/2016-07-27
- B2G/APIs
- B2G/Architecture
- B2G/Architecture/System Security
- B2G/Architecture/System Security/Seccomp
- B2G/Best Coding Practice
- B2G/Bluetooth
- B2G/Bluetooth-bluedroid
- B2G/Bluetooth/BLE Tools
- B2G/Bluetooth/WebBluetooth-v2
- B2G/Bluetooth/WebBluetooth-v2/BluetoothAdapter
- B2G/Bluetooth/WebBluetooth-v2/BluetoothAdapterEvent
- B2G/Bluetooth/WebBluetooth-v2/BluetoothAddressEvent
- B2G/Bluetooth/WebBluetooth-v2/BluetoothAttributeEvent
- B2G/Bluetooth/WebBluetooth-v2/BluetoothClassOfDevice
- B2G/Bluetooth/WebBluetooth-v2/BluetoothDevice
- B2G/Bluetooth/WebBluetooth-v2/BluetoothDeviceEvent
- B2G/Bluetooth/WebBluetooth-v2/BluetoothDiscoveryHandle
- B2G/Bluetooth/WebBluetooth-v2/BluetoothGatt
- B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristic
- B2G/Bluetooth/WebBluetooth-v2/BluetoothGattCharacteristicEvent
- B2G/Bluetooth/WebBluetooth-v2/BluetoothGattDescriptor
- B2G/Bluetooth/WebBluetooth-v2/BluetoothGattServer
- B2G/Bluetooth/WebBluetooth-v2/BluetoothGattService
- B2G/Bluetooth/WebBluetooth-v2/BluetoothLeDeviceEvent
- B2G/Bluetooth/WebBluetooth-v2/BluetoothManager
- B2G/Bluetooth/WebBluetooth-v2/BluetoothPairingEvent
- B2G/Bluetooth/WebBluetooth-v2/BluetoothPairingListener
- B2G/Bluetooth/WebBluetooth-v2/BluetoothPairingRequestListeningHandle
- B2G/Bluetooth/WebBluetooth-v2/BluetoothServerSocket
- B2G/Bluetooth/WebBluetooth-v2/BluetoothSocket
- B2G/Bluetooth/WebBluetooth-v2/BluetoothStartDiscoveryRequest
- B2G/Bluetooth/WebBluetooth-v2/Discussion/2014-03-14
- B2G/Bluetooth/WebBluetooth-v2/Discussion/2014-04-03
- B2G/Bluetooth/WebBluetooth-v2/Discussion/2014-04-14
- B2G/BluetoothManager
- B2G/BuddyUp
- B2G/Community Ownership Transition
- B2G/Debugging OpenGL
- B2G/DeveloperPhone
- B2G/Emulator
- B2G/FAQ
- B2G/FAQ/Apps
- B2G/Feature Planning
- B2G/Firefox OS Portal
- B2G/Gaia Uplifting
- B2G/GenericBuffering
- B2G/GetInvolved
- B2G/Gonk
- B2G/Hacking
- B2G/HardwareRequirements
- B2G/MWCdemo
- B2G/MarketCustomizations
- B2G/Meeting
- B2G/Meeting/2011-11-01
- B2G/Meeting/2011-11-08
- B2G/Meeting/2011-11-15
- B2G/Meeting/2011-11-22
- B2G/Meeting/2011-11-29
- B2G/Meeting/2011-12-13
- B2G/Meeting/2011-12-20
- B2G/Meeting/2011-12-27
- B2G/Meeting/2012-01-03
- B2G/Meeting/2012-01-10
- B2G/Meeting/2012-01-17
- B2G/Meeting/2012-01-24
- B2G/Meeting/2012-01-31
- B2G/Meeting/2012-02-07
- B2G/Meeting/2012-02-28
- B2G/Meeting/2012-03-06
- B2G/Meeting/2012-03-13
- B2G/Meeting/2012-03-20
- B2G/Meeting/2012-03-27
- B2G/Meeting/2012-04-03
- B2G/Meeting/2012-04-17
- B2G/Meeting/2012-04-24
- B2G/Meeting/2012-05-01
- B2G/Meeting/2012-05-08
- B2G/Meeting/2012-05-15
- B2G/Meeting/2012-05-22
- B2G/Meeting/2012-05-28
- B2G/Meeting/2012-05-29
- B2G/Meeting/2012-06-05
- B2G/Meeting/2012-07-09
- B2G/Meeting/2012-07-24
- B2G/Meeting/2012-08-14
- B2G/Meeting/2012-08-21
- B2G/Meeting/2012-09-04
- B2G/Meeting/2012-09-11
- B2G/Meeting/2012-09-25
- B2G/Meeting/2012-10-02
- B2G/Meeting/2012-10-09
- B2G/Meeting/2012-10-16
- B2G/Meeting/2012-10-30
- B2G/Meeting/2012-11-13
- B2G/Meeting/2012-11-20
- B2G/Meeting/2012-11-27
- B2G/Meeting/2012-12-04
- B2G/Meeting/2016-03-15
- B2G/Meeting/2016-03-23
- B2G/Meeting/2016-03-29
- B2G/Meeting/2016-04-05
- B2G/Meeting/2016-04-12
- B2G/Meeting/2016-04-19
- B2G/Meeting/2016-04-26
- B2G/Meeting/2016-05-03
- B2G/Meeting/2016-05-10
- B2G/Meeting/2016-05-17
- B2G/Meeting/2016-05-24
- B2G/Meeting/2016-05-31
- B2G/Meeting/2016-06-07
- B2G/Meeting/2016-06-14
- B2G/Meeting/2016-06-21
- B2G/Meeting/2016-07-12
- B2G/Meeting/2016-07-26
- B2G/Meeting/2016-08-02
- B2G/Meeting/2016-08-09
- B2G/Meeting/2016-08-16
- B2G/Meeting/2016-08-23
- B2G/Meeting/2016-08-30
- B2G/Meeting/2016-09-13
- B2G/Meeting/2016-09-20
- B2G/Meeting/2016-09-27
- B2G/Meeting Notes
- B2G/MozITP
- B2G/NetworkStats
- B2G/Nexus7
- B2G/Packet Sniffing with Wireshark
- B2G/PartnerTriage
- B2G/Porting
- B2G/Porting/Devices
- B2G/Projects
- B2G/QA
- B2G/QA/
- B2G/QA/1.3vs1.3T
- B2G/QA/2.1
- B2G/QA/2.2
- B2G/QA/2.2/2015-02-05Notes
- B2G/QA/2.2/2015-02-11Notes
- B2G/QA/2.2/2015-02-16Status
- B2G/QA/2.2/2015-03-02Status
- B2G/QA/2.2/2015-03-09Status
- B2G/QA/2.2/2015-03-16Status
- B2G/QA/2.2/2015-03-23Status
- B2G/QA/2.2/2015-03-30Status
- B2G/QA/2.2/2015-04-01Status
- B2G/QA/2.2/2015-04-13Status
- B2G/QA/2.2/2015-04-20Status
- B2G/QA/2.2/2015-04-23Status
- B2G/QA/2.2/2015-04-27Status
- B2G/QA/2.2/2015-05-04Status
- B2G/QA/2.2/2015-05-11Status
- B2G/QA/2.2/2015-05-18Status
- B2G/QA/2.2/2015-05-20Status
- B2G/QA/2.2/2015-05-25Status
- B2G/QA/2.2/2015-06-01Status
- B2G/QA/2.2/2015-06-08Status
- B2G/QA/2.2/2015-06-15Status
- B2G/QA/2.2/2015-06-30Status
- B2G/QA/2.2/2015-07-06Status
- B2G/QA/2.5
- B2G/QA/2014-10-02 Performance Acceptance
- B2G/QA/2014-10-20 Performance Acceptance
- B2G/QA/2014-10-31 Performance Acceptance
- B2G/QA/2014-11-07 Performance Acceptance
- B2G/QA/2014-11-14 Performance Acceptance
- B2G/QA/2014-11-21 Performance Acceptance
- B2G/QA/API Permissions Test Plan
- B2G/QA/Acceptance Criteria
- B2G/QA/Apply Patches
- B2G/QA/Apps
- B2G/QA/Apps/Hosted Apps
- B2G/QA/Apps/Packaged Apps
- B2G/QA/Archive
- B2G/QA/Archived
- B2G/QA/Automation
- B2G/QA/Automation/Style Guide
- B2G/QA/Automation/Style Guide/Avoiding Duplication
- B2G/QA/Automation/Style Guide/Best Practices
- B2G/QA/Automation/Style Guide/General Concepts
- B2G/QA/Automation/Style Guide/Howtos
- B2G/QA/Automation/Style Guide/Python Script Style
- B2G/QA/Automation/Style Guide/Submission Review
- B2G/QA/Automation/TPEScrum
- B2G/QA/Automation/UI
- B2G/QA/Automation/UI/Best Practices
- B2G/QA/Automation/UI/Filing Automation Report
- B2G/QA/Automation/UI/Filing Bugs Against Automation Errors
- B2G/QA/Automation/UI/How to contribute
- B2G/QA/Automation/UI/Integration suite criteria
- B2G/QA/Automation/UI/MarionetteJS On Device Status
- B2G/QA/Automation/UI/Minimized Acceptance Execution
- B2G/QA/Automation/UI/Scrum
- B2G/QA/Automation/UI/Scrum/Backlog
- B2G/QA/Automation/UI/Scrum/S2
- B2G/QA/Automation/UI/Scrum/Sprint 1
- B2G/QA/Automation/UI/Scrum/Sprint 10
- B2G/QA/Automation/UI/Scrum/Sprint 11
- B2G/QA/Automation/UI/Scrum/Sprint 12
- B2G/QA/Automation/UI/Scrum/Sprint 13
- B2G/QA/Automation/UI/Scrum/Sprint 14
- B2G/QA/Automation/UI/Scrum/Sprint 15
- B2G/QA/Automation/UI/Scrum/Sprint 16
- B2G/QA/Automation/UI/Scrum/Sprint 17
- B2G/QA/Automation/UI/Scrum/Sprint 2
- B2G/QA/Automation/UI/Scrum/Sprint 3
- B2G/QA/Automation/UI/Scrum/Sprint 4
- B2G/QA/Automation/UI/Scrum/Sprint 5
- B2G/QA/Automation/UI/Scrum/Sprint 6
- B2G/QA/Automation/UI/Scrum/Sprint 7
- B2G/QA/Automation/UI/Scrum/Sprint 8
- B2G/QA/Automation/UI/Scrum/Sprint 9
- B2G/QA/Automation/UI/Scrum/Sprint Template
- B2G/QA/Automation/UI/Strategy
- B2G/QA/Automation/UI/Strategy/Acceptance Tests To Automate
- B2G/QA/Automation/UI/Strategy/Assist with Gaia Integration tests
- B2G/QA/Automation/UI/Strategy/Criteria Gaia Acceptance Tests
- B2G/QA/Automation/UI/Strategy/Develop Gaia End to end
- B2G/QA/Automation/UI/Strategy/Document End to end Automation
- B2G/QA/Automation/UI/Strategy/Increase Community
- B2G/QA/Automation/UI/Strategy/Increase End to end coverage
- B2G/QA/Automation/UI/Strategy/Integration vs End to end
- B2G/QA/Automation/UI/Strategy/Port Gaia Integration Python
- B2G/QA/Automation/UI/Strategy/Streamline End to end Execution
- B2G/QA/Automation/UI/Triage
- B2G/QA/Automation/UI/Xfail and Disable
- B2G/QA/Bluetooth PTS
- B2G/QA/Bug Queries
- B2G/QA/Bugzilla
- B2G/QA/Bugzilla/Advanced
- B2G/QA/Bugzilla/FAQ
- B2G/QA/BuildProccess
- B2G/QA/BuildProcess
- B2G/QA/Continuous Integration infrastructure
- B2G/QA/Crash Reporting
- B2G/QA/Customizations
- B2G/QA/Daily Bulletin
- B2G/QA/Daily Triage Schedule
- B2G/QA/Device
- B2G/QA/Device Test Plan
- B2G/QA/Device Test Plan/Graphics
- B2G/QA/Device Test Plan/NewDevice
- B2G/QA/Device Test Plan/NewOEMBuild
- B2G/QA/Dogfood
- B2G/QA/Flame OTA
- B2G/QA/Flashing A Daily Build
- B2G/QA/Foxtrot
- B2G/QA/Functional
- B2G/QA/GaiaAutomation
- B2G/QA/Gaia Test Plan
- B2G/QA/Gaia Test Plan/Apps
- B2G/QA/Gaia Test Plan/Browser
- B2G/QA/Gaia Test Plan/Calendar
- B2G/QA/Gaia Test Plan/Crash
- B2G/QA/Gaia Test Plan/Email
- B2G/QA/Gaia Test Plan/Email/Differences in Protocol
- B2G/QA/Gaia Test Plan/Email Templates
- B2G/QA/Gaia Test Plan/Template
- B2G/QA/Geolocation
- B2G/QA/Git Commands
- B2G/QA/Graphics Test Plan
- B2G/QA/Identity
- B2G/QA/Manual Test
- B2G/QA/Manual Test/Video Capture
- B2G/QA/Marigold member list
- B2G/QA/Meetings
- B2G/QA/Meetings/2014-07-23
- B2G/QA/Meetings/2014-07-30
- B2G/QA/Meetings/2014-08-06
- B2G/QA/Meetings/2014-08-13
- B2G/QA/Meetings/2014-08-20
- B2G/QA/Meetings/2014-08-27
- B2G/QA/Meetings/2014-09-03
- B2G/QA/Meetings/2014-09-10
- B2G/QA/Meetings/2014-09-17
- B2G/QA/Meetings/2014-09-24
- B2G/QA/Meetings/2014-10-01
- B2G/QA/Meetings/2014-10-08
- B2G/QA/Meetings/2014-10-15
- B2G/QA/Meetings/2014-10-22