SmartPhone Code Transition
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
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)
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:|
|[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]
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?<thead> </thead> <tbody> </tbody>
|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:
Compared to today's builds, we have to:
We will fully remove dom/apps, dom/activities and dom/messages so there's no need to fix these.
|Remove all uses of AppsService||1255046||AppsService lives in dom/apps and is going to die. We have to kill its use.||Acceptance Criteria|
|Move gaia to chrome:// urls||1256506||Created attachment 8730467 [details] [diff] [review]
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.
This timeline is simply a placeholder. Timeline to be inserted once milestones and schedule are known.