SmartPhone Code Transition: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(→‎Reference Links: added community link)
(+deprecation warning)
 
(27 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<div style="float: right; margin: 0px 0px 10px 25px;">[[File:Fxossmall.png|link=]]</div>
<div style="float: right; margin: 0px 0px 10px 25px;">[[File:Fxossmall.png|link=]]</div>
{{blackboxwarning|
As of 30-March 2018, the Firefox OS Marketplace has been shut down.<br />These pages serve as an archive and reference.
}}


=='''Project Description'''==
=='''Project Description'''==


A team led by Gregor Wagner and Fabrice Desré conducted the analysis necessary to determine what changes should be made and the level of effort those changes would take to move us closer to being able to run on generic gecko to reduce its maintenance cost. The results of the analysis has led to the final version of the Firefox OS Code Transition Plan, and the plan has been approved to proceed with the following as its primary goal:
The purpose of this project is to reduce the maintenance cost of the Firefox OS for smartphone code and get it into a state where the volunteer contributor community can successfully take the lead and ownership for the future direction of the b2g for smartphone code.
Specific goals include:
* Modernize the B2G platform (replace legacy mozApps-only APIs with new web standards)
* Move towards an architecture closer to that of the Firefox browser (just chrome and web content)
* Transition smartphone modules to new owners and peers in the community


To transition the Firefox OS for smartphone code to reduce its maintenance cost and get it into a state where the volunteer contributor community can successfully take the lead and ownership for the future direction of the b2g for smartphone code
A team led by Gregor Wagner and Fabrice Desré conducted the analysis necessary to determine what changes should be made and the level of effort those changes would take to move us closer to being able to run on generic gecko to reduce the maintenance cost. 
Description
 
If you are looking for information regarding Smart TV and Firefox OS 2.6 for TV, please visit
* https://wiki.mozilla.org/Firefox_OS/Smart_TV
* https://wiki.mozilla.org/TV_2.6


=== Requirements:===
=== Requirements:===


=====Analysis=====
There were four areas analyzed for inclusion in the code transition plan (shown below with their owners):
There were four areas analyzed for inclusion in the code transition plan (shown below with their owners):


*  Packaged apps (b2g features), perhaps the most important piece (Fabrice)
*  Packaged apps (b2g features), perhaps the most important piece (Fabrice)
*  Process model - abandon ours and move to the one desktop has (Kan-Ru)
*  Removal of security model and wait for platform team to give us new security layer. (Paul)
*  Removal of security model and wait for platform team to give us new security layer. (Paul)
*  Process model - abandon ours and move to the one desktop has (Kan-Ru)
*  Graphics/media (Kan-Ru)
*  Graphics/media (Kan-Ru)


=====Scope=====
It was decided that the focus of the transition would be on the first two of these areas.  In addition, an effort has begun to reduce code duplication by merging the 2 separate system apps.
It was decided that the focus of the transition would be on the first two of these areas.  In addition, an effort has begun to reduce code duplication by merging the 2 separate system apps.


Line 27: Line 39:
|-
|-
| rowspan="1" | [META] Firefox OS Transition work
| rowspan="1" | [META] Firefox OS Transition work
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1180659 Bug ID]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252143 1252143]  
| [META] Firefox OS Transition work
| META for the Firefox OS Transition work
| Completion of all dependencies
| Bug dependencies: 1252193, 1252427, 1252570, 1252573, 1252773, 1252776, 1252778, 1252779, 1252789, 1253600, 1254281, 1254282, 1254283, 1254284, 1254285, 1254286, 1254287, 1254292,
|-
| rowspan="1" | [Meta] Get core system apps working as chrome
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1261025 1261025]
| META for getting core system apps working as chrome
| Bug dependencies:
[https://bugzilla.mozilla.org/show_bug.cgi?id=1257935 1257935] keyboard
[https://bugzilla.mozilla.org/show_bug.cgi?id=1261027 1261027] systemapp
[https://bugzilla.mozilla.org/show_bug.cgi?id=1261028 1261028] homescreen
[https://bugzilla.mozilla.org/show_bug.cgi?id=1261029 1261029] search
[https://bugzilla.mozilla.org/show_bug.cgi?id=1261030 1261030] settings
|-
|-
| rowspan="1" |  [transition] Browser: Remove reference and logos relating to Firefox
| rowspan="1" |  [transition] Browser: Remove reference and logos relating to Firefox
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252193 Bug ID]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252193 1252193]
| 1. Remove all references to Firefox OS
| 1. Remove all references to Firefox OS
2. Change browser icon to not be firefox logo  
2. Change browser icon to not be firefox logo  
Line 39: Line 61:
|-
|-
| rowspan="1" |  Bootstrap the transition
| rowspan="1" |  Bootstrap the transition
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252371 Bug ID]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252371 1252371]
| Created attachment 8725097 [details] [diff] [review]
| Created attachment 8725097 [details] [diff] [review]
new-apps.patch
new-apps.patch
Line 55: Line 77:
push_apps.sh is very slow, so once we have done it once, you can update a single app with $gaia/push_apps.sh system.gaiamobile.org
push_apps.sh is very slow, so once we have done it once, you can update a single app with $gaia/push_apps.sh system.gaiamobile.org
We should really push zips and unzip on device instead...
We should really push zips and unzip on device instead...
| Acceptance Criteria to be added
| Patched landed - Done
|-
|-
| rowspan="1" |  Remove FTU app
| rowspan="1" |  Remove FTU app
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252427 Bug ID]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252427 1252427]
| Keeping the FTU app around and maintain it during the transition period isn't a high priority. We should move the code and tests to a separate repository so it doesn't get lost. We might want to leave the 'hooks' to create a custom FTU app in the system app but we won't maintain ours going forward. This also includes the tutorial parts.
| Keeping the FTU app around and maintain it during the transition period isn't a high priority. We should move the code and tests to a separate repository so it doesn't get lost. We might want to leave the 'hooks' to create a custom FTU app in the system app but we won't maintain ours going forward. This also includes the tutorial parts.
My assumption is that users don't use any functionality since they can do everything in the settings app afterwards.
My assumption is that users don't use any functionality since they can do everything in the settings app afterwards.
Line 67: Line 89:
|-
|-
| rowspan="1" |  Remove mozPay
| rowspan="1" |  Remove mozPay
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252570 Bug ID]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252570 1252570]
| The Marketplace is removing payments support [1], so we can get rid of all mozPay related code.
| The Marketplace is removing payments support [1], so we can get rid of all mozPay related code.


[1] https://wiki.mozilla.org/Marketplace#Upcoming_Changes_to_Marketplace
[1] https://wiki.mozilla.org/Marketplace#Upcoming_Changes_to_Marketplace
| Acceptance Criteria to be added
| Need to wait for TV 2.6 to branch before landing.
|-
|-
| rowspan="1" |  Unknown
| rowspan="1" |  Remove MobileID API
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252573 Bug ID]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252573 1252573]
| Unknown
| This API was added mostly because of Firefox Hello requirements. Unfortunately, the Firefox Hello client for FxOS didn't last long and I don't think we have any other consumer for this API. So we can probably remove it safely.
| Unknown
| MobileID API removed
|-
|-
| rowspan="1" |  Remove "improve Firefox OS" from settings
| rowspan="1" |  Remove "improve Firefox OS" from settings
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252773 Bug ID]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252773 1252773]
| Remove "improve Firefox OS" from settings
| Remove "improve Firefox OS" from settings
| No reference to Firefox OS in settings
| No reference to Firefox OS in settings
|-
|-
| rowspan="1" |  Rename Firefox OS to B2G OS
| rowspan="1" |  Rename Firefox OS to B2G OS
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252776 Bug ID]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252776 1252776]
| Rename  - settings - device information - “about Firefox OS" - to About B2G OS - including all subtext.
| Rename  - settings - device information - “about Firefox OS" - to About B2G OS - including all subtext.
| "about Firefox OS" renamed to "about B2G OS" in device information under settings
| "about Firefox OS" renamed to "about B2G OS" in device information under settings
|-
|-
| rowspan="1" |  Review all legal statements under settings
| rowspan="1" |  Review all legal statements under settings
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252778 Bug ID]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252778 1252778]
| Review content under:
| Review content under:
  a. settings - device info - your rights
  a. settings - device info - your rights
Line 98: Line 120:
|-
|-
| rowspan="1" |  Remove Firefox OS logos from startup sequence
| rowspan="1" |  Remove Firefox OS logos from startup sequence
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252779 Bug ID]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252779 1252779]
| Remove all logos from the device startup sequence that shows and refers to Firefox OS.
| Remove all logos from the device startup sequence that shows and refers to Firefox OS.
| No Firefox OS logos in the device startup sequence
| No Firefox OS logos in the device startup sequence
|-
|-
| rowspan="1" |  Remove current location for OTA lookup
| rowspan="1" |  Remove current location for OTA lookup
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252789 Bug ID]
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252789 1252789]
| Remove the current location pointer for OTS search but still leave the OTA option in the settings so future possible OTA hosting services can just put their URL in there for usage.
| Remove the current location pointer for OTS search but still leave the OTA option in the settings so future possible OTA hosting services can just put their URL in there for usage.
| Current location pointer for OTS search removed
| Current location pointer for OTS search removed
|-
|-
| rowspan="1" |  Integrate nginx
| rowspan="1" |  Integrate nginx
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1253600 Bug ID]  
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1253600 1253600]
| Following bug 1252371 we are relying on an http daemon. Let's use one with a bit more features to allow future work (https, multiple domains)
| Following bug 1252371 we are relying on an http daemon. Let's use one with a bit more features to allow future work (https, multiple domains)
| Acceptance criteria to be entered
| Acceptance criteria to be entered
|-
|-
| rowspan="1" |  Build system changes for the transitioned Gaia
| rowspan="1" |  Build system changes for the transitioned Gaia
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1254281 Bug ID]  
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1254281 1254281]
| This is to prepare for a chrome:// served Gaia. Instead of packaging each app independently in an application.zip file, we will package them all together, and put the shared/ alongside the apps.
| This is to prepare for a chrome:// served Gaia. Instead of packaging each app independently in an application.zip file, we will package them all together, and put the shared/ alongside the apps.
The directory tree will look like:
The directory tree will look like:
Line 130: Line 152:
|-
|-
| rowspan="1" |  Remove the dependency on apps status in the audiochannel code
| rowspan="1" |  Remove the dependency on apps status in the audiochannel code
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1254282 Bug ID]  
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1254282 1254282]
| It should be chrome only now. See http://mxr.mozilla.org/mozilla-central/source/dom/system/gonk/AudioChannelManager.cpp#157 for a starting point of things to fix.
| It should be chrome only now. See http://mxr.mozilla.org/mozilla-central/source/dom/system/gonk/AudioChannelManager.cpp#157 for a starting point of things to fix.
| Acceptance criteria
| Acceptance criteria
|-
|-
| rowspan="1" |  Remove the dependency on apps status in the NFC code
| rowspan="1" |  Remove the dependency on apps status in the NFC code
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1254283 Bug ID]  
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1254283 1254283]
| Keeping the permission is ok, but everything that is gated by AvailableIn=CertifiedApps needs to be chrome only instead.
| Keeping the permission is ok, but everything that is gated by AvailableIn=CertifiedApps needs to be chrome only instead.


Line 142: Line 164:
|-
|-
| rowspan="1" |  Remove the dependency on apps status in the Bluetooth code
| rowspan="1" |  Remove the dependency on apps status in the Bluetooth code
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1254284 Bug ID]  
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1254284 1254284]
| Keeping the permission is ok, but everything that is gated by AvailableIn=CertifiedApps needs to be chrome only instead.
| Keeping the permission is ok, but everything that is gated by AvailableIn=CertifiedApps needs to be chrome only instead.


Line 149: Line 171:
|-
|-
| rowspan="1" |  Remove the dependency on apps status in the Downloads api code
| rowspan="1" |  Remove the dependency on apps status in the Downloads api code
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1254285 Bug ID]  
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1254285 1254285]
| Keeping the permission is ok, but everything that is gated by AvailableIn=CertifiedApps needs to be chrome only instead.
| Keeping the permission is ok, but everything that is gated by AvailableIn=CertifiedApps needs to be chrome only instead.


Line 156: Line 178:
|-
|-
| rowspan="1" |  Remove the dependency on apps status in the RequestSync api cod
| rowspan="1" |  Remove the dependency on apps status in the RequestSync api cod
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1254286 Bug ID]  
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1254286 1254286]
| Keeping the permission is ok, but everything that is gated by AvailableIn=CertifiedApps needs to be chrome only instead.
| Keeping the permission is ok, but everything that is gated by AvailableIn=CertifiedApps needs to be chrome only instead.


Line 163: Line 185:
|-
|-
| rowspan="1" |  Remove the dependency on apps status in the EngineeringMode api code
| rowspan="1" |  Remove the dependency on apps status in the EngineeringMode api code
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1254287 Bug ID]  
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1254287 1254287]
| Keeping the permission is ok, but everything that is gated by AvailableIn=CertifiedApps needs to be chrome only instead.
| Keeping the permission is ok, but everything that is gated by AvailableIn=CertifiedApps needs to be chrome only instead.


Line 170: Line 192:
|-
|-
| rowspan="1" |  Remove all uses of APP_STATUS_CERTIFIED and APP_STATUS_PRIVILEGED
| rowspan="1" |  Remove all uses of APP_STATUS_CERTIFIED and APP_STATUS_PRIVILEGED
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1254292 Bug ID]  
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1254292 1254292]
| On top of the webidl gated instances, there are direct use of these constants that we need to update:
| On top of the webidl gated instances, there are direct use of these constants that we need to update:


Line 181: Line 203:
We will fully remove dom/apps, dom/activities and dom/messages so there's no need to fix these.
We will fully remove dom/apps, dom/activities and dom/messages so there's no need to fix these.
| Acceptance Criteria
| Acceptance Criteria
|-
| rowspan="1" |  Remove all uses of AppsService
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1255046 1255046]
| AppsService lives in dom/apps and is going to die. We have to kill its use.
https://dxr.mozilla.org/mozilla-central/search?q=nsIAppsService&redirect=false&case=true
| Acceptance Criteria
|-
| rowspan="1" |  Move gaia to chrome:// urls
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1256506 1256506]
| Created attachment 8730467 [details] [diff] [review]
chrome-gaia.patch
This patch goes with the gaia branch at https://github.com/fabricedesre/gaia/tree/gaia-chrome
You need to clean up /data/local and /data/b2g before running $gaia/push_apps.sh
*this is not working yet*, and I'd like to get a new pair of eyes on that. If we crash in web components code, this is likely bug 1253788.
|-
| rowspan="1" |  Get the Places database working without using DataStore
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1257824 1257824]
| As part of the B2G OS Transition Project we're removing the DataStore API. We'll need to get the Places database working without using that API.
| Places database works without using DataStore API
|-
| rowspan="1" |  [meta] b2g build issues
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1245091 1245091]
| Fix issues preventing builds
| Closing of all dependencies: 1254604 1257793 1258294 1258672 993311 1087161 1244149 1244478 1245016 1245033 1245052 1245057 1245093 1245100 1247570 1248581 1249244 1249245 1251541 1251717 1251948 1252426 1252436 1253217 1253571 1254471 1254515 1256638 1257127 1257335 1258034 1258200 1258638
|-
|-
| rowspan="1" |  Testing / Build Related Tasks
| rowspan="1" |  Testing / Build Related Tasks
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252482 Bug ID]  
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1252482 1252482]
| Meta for tracking build and test related tasks for fxos sunset program
| Meta for tracking build and test related tasks for fxos sunset program
|
| Bug dependencies: 1252491, 1254501, 1254504, 1254506, 1252484, 1252486, 1252487, 1253002
|-
|-
|}
|}
Line 195: Line 244:
! style="text-align: center;" | Status
! style="text-align: center;" | Status
! style="text-align: center;" | Status Notes
! style="text-align: center;" | Status Notes
|-
| Develop execution plan for the code transition
| 3/11/16
! style="background:#00EC00;" | On Target
| Meta bug created for the entire project. Have also entered bugs for some, but not all of the major components of the work. Next, need to identify milestones and target dates for tracking the progress of the work.
|-
|-
| Document requirements for build and test support for re-architecture effort.
| Document requirements for build and test support for re-architecture effort.
| 3/11/16
| 3/11/16
! style="background:#00EC00;" | On Target
! style="background:#00B2FF;" | Done
| Need to identify requirements now that the code transition plan has been finalized and approved. Work breakdown will help in identifying the requirements
| Need to identify requirements now that the code transition plan has been finalized and approved. Work breakdown will help in identifying the requirements
|-
|-
| Set up branch, build, and test environment.
| Set up branch, build, and test environment.
| 3/18/16
| 3/18/16
! style="background:#00EC00;" | On Target
! style="background:#00B2FF;" | Done
| Created a meta-bug to track the build/test work here: https://bugzil.la/1252482. Working on some MarionetteJS enhancements to support the system app merge with TV, and will enable the B2G tests on the Pine branch this week.
| It's now possible to build B2G with the pine branch of Gecko and kanikani branch of Gaia.  
|-
|-
| Develop execution plan for the code transition
| 3/21/16
! style="background:#FF2800;" | Late
| Meta bug created for the entire project. Breakage is making it difficult to identify target dates for milestones.
|-
|-
| Code Transition Milestones
| Code Transition Milestones
Line 342: Line 390:
==Reference Links==
==Reference Links==
[[Smartphone_Transition|Smartphone Transition Wiki]]
[[Smartphone_Transition|Smartphone Transition Wiki]]
[[https://wiki.mozilla.org/B2G/Community_Ownership_Transition|B2G/Community Ownership Transition]]
 
[[B2G/Community_Ownership_Transition|B2G/Community Ownership Transition Wiki]]
 
==Firefox OS 2.6 for TV==
 
If you are looking for information regarding Smart TV and Firefox OS 2.6 for TV, please visit
* https://wiki.mozilla.org/Firefox_OS/Smart_TV
* https://wiki.mozilla.org/TV_2.6

Latest revision as of 13:55, 2 January 2019

Fxossmall.png
Warning

As of 30-March 2018, the Firefox OS Marketplace has been shut down.
These pages serve as an archive and reference.

Warning

Project Description

The purpose of this project is to reduce the maintenance cost of the Firefox OS for smartphone code and get it into a state where the volunteer contributor community can successfully take the lead and ownership for the future direction of the b2g for smartphone code. Specific goals include:

  • Modernize the B2G platform (replace legacy mozApps-only APIs with new web standards)
  • Move towards an architecture closer to that of the Firefox browser (just chrome and web content)
  • Transition smartphone modules to new owners and peers in the community

A team led by Gregor Wagner and Fabrice Desré conducted the analysis necessary to determine what changes should be made and the level of effort those changes would take to move us closer to being able to run on generic gecko to reduce the maintenance cost.

If you are looking for information regarding Smart TV and Firefox OS 2.6 for TV, please visit

Requirements:

Analysis

There were four areas analyzed for inclusion in the code transition plan (shown below with their owners):

  • Packaged apps (b2g features), perhaps the most important piece (Fabrice)
  • Process model - abandon ours and move to the one desktop has (Kan-Ru)
  • Removal of security model and wait for platform team to give us new security layer. (Paul)
  • Graphics/media (Kan-Ru)
Scope

It was decided that the focus of the transition would be on the first two of these areas. In addition, an effort has begun to reduce code duplication by merging the 2 separate system apps.

User Stories and Acceptance Criteria

Title BUG ID User story Acceptance Criteria
[META] Firefox OS Transition work 1252143 META for the Firefox OS Transition work Bug dependencies: 1252193, 1252427, 1252570, 1252573, 1252773, 1252776, 1252778, 1252779, 1252789, 1253600, 1254281, 1254282, 1254283, 1254284, 1254285, 1254286, 1254287, 1254292,
[Meta] Get core system apps working as chrome 1261025 META for getting core system apps working as chrome Bug dependencies:

1257935 keyboard 1261027 systemapp 1261028 homescreen 1261029 search 1261030 settings

[transition] Browser: Remove reference and logos relating to Firefox 1252193 1. Remove all references to Firefox OS

2. Change browser icon to not be firefox logo

1. All references to Firefox OS removed.

2. Browser icon no longer a firefox logo

Bootstrap the transition 1252371 Created attachment 8725097 [details] [diff] [review]

new-apps.patch

I'm gonna land that on Pine, but here is the gecko patch for those that want to play with it.

You will also need to use my Pine gaia branch: https://github.com/fabricedesre/gaia/tree/pine

Steps: - build your custom gecko and push it. - push $gaia/httpd to /system/bin and start it with |httpd -h /system/b2g/apps|. This is simply a busybox server. - stop b2g, and rm -r /data/b2g, /data/local/storage, /data/local/permissions.sqlite - run $gaia/push_apps.sh

push_apps.sh is very slow, so once we have done it once, you can update a single app with $gaia/push_apps.sh system.gaiamobile.org We should really push zips and unzip on device instead...

Patched landed - Done
Remove FTU app 1252427 Keeping the FTU app around and maintain it during the transition period isn't a high priority. We should move the code and tests to a separate repository so it doesn't get lost. We might want to leave the 'hooks' to create a custom FTU app in the system app but we won't maintain ours going forward. This also includes the tutorial parts.

My assumption is that users don't use any functionality since they can do everything in the settings app afterwards.

The work will be done on the transition branch. Sam, can you help out here?

Acceptance Criteria to be added
Remove mozPay 1252570 The Marketplace is removing payments support [1], so we can get rid of all mozPay related code.

[1] https://wiki.mozilla.org/Marketplace#Upcoming_Changes_to_Marketplace

Need to wait for TV 2.6 to branch before landing.
Remove MobileID API 1252573 This API was added mostly because of Firefox Hello requirements. Unfortunately, the Firefox Hello client for FxOS didn't last long and I don't think we have any other consumer for this API. So we can probably remove it safely. MobileID API removed
Remove "improve Firefox OS" from settings 1252773 Remove "improve Firefox OS" from settings No reference to Firefox OS in settings
Rename Firefox OS to B2G OS 1252776 Rename - settings - device information - “about Firefox OS" - to About B2G OS - including all subtext. "about Firefox OS" renamed to "about B2G OS" in device information under settings
Review all legal statements under settings 1252778 Review content under:
a. settings - device info - your rights
b. settings - device info - your privacy
c. settings - device info - legal information

For consistency with the new way of working.

All legal statements reviewed and inconsistencies noted.
Remove Firefox OS logos from startup sequence 1252779 Remove all logos from the device startup sequence that shows and refers to Firefox OS. No Firefox OS logos in the device startup sequence
Remove current location for OTA lookup 1252789 Remove the current location pointer for OTS search but still leave the OTA option in the settings so future possible OTA hosting services can just put their URL in there for usage. Current location pointer for OTS search removed
Integrate nginx 1253600 Following bug 1252371 we are relying on an http daemon. Let's use one with a bit more features to allow future work (https, multiple domains) Acceptance criteria to be entered
Build system changes for the transitioned Gaia 1254281 This is to prepare for a chrome:// served Gaia. Instead of packaging each app independently in an application.zip file, we will package them all together, and put the shared/ alongside the apps.

The directory tree will look like:

  • |- shared
  • |- system
  • |- settings
  • |- ...

Compared to today's builds, we have to:

  • stop including shared/ in every app.
  • still select images at the appropriate resolution.
  • stop packaging apps individually.
  • stop using the gaiamobile.org subdomain.
Acceptance criteria to be entered
Remove the dependency on apps status in the audiochannel code 1254282 It should be chrome only now. See http://mxr.mozilla.org/mozilla-central/source/dom/system/gonk/AudioChannelManager.cpp#157 for a starting point of things to fix. Acceptance criteria
Remove the dependency on apps status in the NFC code 1254283 Keeping the permission is ok, but everything that is gated by AvailableIn=CertifiedApps needs to be chrome only instead.

http://mxr.mozilla.org/mozilla-central/source/dom/webidl/MozNFC.webidl#38

Acceptance criteria
Remove the dependency on apps status in the Bluetooth code 1254284 Keeping the permission is ok, but everything that is gated by AvailableIn=CertifiedApps needs to be chrome only instead.

http://mxr.mozilla.org/mozilla-central/source/dom/webidl/BluetoothAdapter.webidl#38

Acceptance criteria
Remove the dependency on apps status in the Downloads api code 1254285 Keeping the permission is ok, but everything that is gated by AvailableIn=CertifiedApps needs to be chrome only instead.

http://mxr.mozilla.org/mozilla-central/source/dom/webidl/Downloads.webidl#63

Acceptance criteria
Remove the dependency on apps status in the RequestSync api cod 1254286 Keeping the permission is ok, but everything that is gated by AvailableIn=CertifiedApps needs to be chrome only instead.

http://mxr.mozilla.org/mozilla-central/source/dom/webidl/RequestSyncManager.webidl#7

Acceptance criteria
Remove the dependency on apps status in the EngineeringMode api code 1254287 Keeping the permission is ok, but everything that is gated by AvailableIn=CertifiedApps needs to be chrome only instead.

http://mxr.mozilla.org/mozilla-central/source/dom/webidl/EngineeringMode.webidl#7

Acceptance Criteria
Remove all uses of APP_STATUS_CERTIFIED and APP_STATUS_PRIVILEGED 1254292 On top of the webidl gated instances, there are direct use of these constants that we need to update:

APP_STATUS_CERTIFIED: http://mxr.mozilla.org/mozilla-central/search?string=APP_STATUS_CERTIFIED&find=&findi=&filter=%5E%5B%5E%5C0%5D*%24&hitlimit=&tree=mozilla-central

APP_STATUS_PRIVILEGED: http://mxr.mozilla.org/mozilla-central/search?string=APP_STATUS_PRIVILEGED&find=&findi=&filter=%5E%5B%5E%5C0%5D*%24&hitlimit=&tree=mozilla-central

We will fully remove dom/apps, dom/activities and dom/messages so there's no need to fix these.

Acceptance Criteria
Remove all uses of AppsService 1255046 AppsService lives in dom/apps and is going to die. We have to kill its use.

https://dxr.mozilla.org/mozilla-central/search?q=nsIAppsService&redirect=false&case=true

Acceptance Criteria
Move gaia to chrome:// urls 1256506 Created attachment 8730467 [details] [diff] [review]

chrome-gaia.patch

This patch goes with the gaia branch at https://github.com/fabricedesre/gaia/tree/gaia-chrome

You need to clean up /data/local and /data/b2g before running $gaia/push_apps.sh

  • this is not working yet*, and I'd like to get a new pair of eyes on that. If we crash in web components code, this is likely bug 1253788.
Get the Places database working without using DataStore 1257824 As part of the B2G OS Transition Project we're removing the DataStore API. We'll need to get the Places database working without using that API. Places database works without using DataStore API
[meta] b2g build issues 1245091 Fix issues preventing builds Closing of all dependencies: 1254604 1257793 1258294 1258672 993311 1087161 1244149 1244478 1245016 1245033 1245052 1245057 1245093 1245100 1247570 1248581 1249244 1249245 1251541 1251717 1251948 1252426 1252436 1253217 1253571 1254471 1254515 1256638 1257127 1257335 1258034 1258200 1258638
Testing / Build Related Tasks 1252482 Meta for tracking build and test related tasks for fxos sunset program Bug dependencies: 1252491, 1254501, 1254504, 1254506, 1252484, 1252486, 1252487, 1253002

Program Status

Milestone Date Status Status Notes
Document requirements for build and test support for re-architecture effort. 3/11/16 Done Need to identify requirements now that the code transition plan has been finalized and approved. Work breakdown will help in identifying the requirements
Set up branch, build, and test environment. 3/18/16 Done It's now possible to build B2G with the pine branch of Gecko and kanikani branch of Gaia.
Develop execution plan for the code transition 3/21/16 Late Meta bug created for the entire project. Breakage is making it difficult to identify target dates for milestones.
Code Transition Milestones TBD Not Started Development milestones will be added as milestones once they're identified.

Status Key

Color Status Key
On Target The project or deliverable is expected to meet its due date.
Challenged The project or deliverable is facing an issue that might cause it to miss its due date, but a “get well” plan has been developed to get it back on track.
At Risk or Late The project or deliverable is blocked or facing an issue that might cause it to miss its due date, and there’s no “get well” plan to get it back on track, or it is already late.
Done The project or deliverable has been completed.
On Hold or Not Started The project or deliverable has either not been started or has been placed on hold.

Program Timeline

This timeline is simply a placeholder. Timeline to be inserted once milestones and schedule are known.

Release Timeline.png


Program Stakeholders

Role Name IRC
Sponsor Faramarz Rashed faramarz
EPM Julie McCracken Julie
EM Gregor Wagner gwagner
PM Wilfred Mathanaraj wilfred
TL Fabrice Desré fabrice
QA Al Tsai atsai
  • EPM = Engineering Program Manager
  • EM = Engineering Manager
  • PM = Product Manager
  • TL = Tech Lead
  • QA = Quality Assurance

Archived Completed Deliverables

Milestone Date Status Status Notes
Gather feedback on the plan after discussion at 2/9 Engineering Program Review. 2/12/16 Done 2/9 review was well attended and lots of feedback was shared in the Transition of Firefox OS Code Base Proposed Plan. 2-3 additional reviews were held via videoconf. Participation was good.
Identify engineers to work on the code transition plan 2/12/16 Done Identified engineers' names have been inserted into the plan. We've documented which components of the plan they'll each work on and for how long.
Hold a final review of the proposed plan with the engineering team 2/12/16 Done Final reviews held via email.
Present plan at weekly Engineering Program Review 2/16/16 Done Wasn't ready by the 2/16 review but plan was submitted to Faramarz 2/19 via email.
Present plan at All Hands 2/25/16 Done
Public wiki created 3/4/16 Done Public wiki (this one) has been created. Need to break down code transition work so that all milestones for eng. work can be posted, along with a schedule. Those tasks remain.
Identify who will set up branch, build, and test environment. 3/11/16 Done Team identified and has begun the work.

Reference Links

Smartphone Transition Wiki

B2G/Community Ownership Transition Wiki

Firefox OS 2.6 for TV

If you are looking for information regarding Smart TV and Firefox OS 2.6 for TV, please visit