Insight Gaia - OS Shel in a <html> Tim Chien timdream@mozil a.com
In this Talk …. • Everything you can help • As a user / beta tester • As a web developer • Everything you can play • Desktop builds • Phone hacking! (Not *that*)
Background: What it takes to implement a OS shel ? git pull git://github.com/mozilla-b2g/gaia.git
Similar Web OS Shells • Others tried: “Cloud Desktop” • eyeOS/jolicloud/Synology DSM … • Gaia is unique in a way that it runs a phone
From the perspective of the web • Hosting 3rd-party content safely • <iframe>s? Pretty close. • Window/app management • How phones manage apps? Home screen? • How Firefox manage tabs? Bookmarks?
From the perspective of a phone • Device management • Screen/wifi/power/memory/connectivity • System user interfaces • Lock screen/dialogs/pull-down menu/keyboard/status bar/ permission … • Common applications • Phone/Contacts/Message/Settings/Browser/Camera/ Gallery …
Gaia: 91MB total du -ch -I .git -I xulrunner-sdk -I profile -I media-samples -I dictionaries . | tail –n 1
System app: 2.7M total du –ch ./apps/system/ | tail –n 1
Gaia Gaia, n., Greek Mythology the Earth personified as a goddess, daughter of Chaos.
Crashes! • If in-process app crashes, the entire Gecko crashes • (Desktop Firefox rarely crashes, except plug-ins) • Move apps out of main process; isolate apps down to process level • “remote” attribute
Launch it with your own Gaia • Run “make” in the Gaia repository • Launch B2G Desktop with following command ./b2g-bin -profile /my/gaia/profile • “make” is needed to zip some Gaia apps into packaged apps • Some API privileged require app to be packaged • (“DEBUG=1 make” is currently broken)
Debugging Gaia • dump() • console.log() • Remote Debugger in Nightly • No inspector yet :’( -- work on Nightly for layout works first)
What you can help • We are really close from shipping the first version, activities are fast and intense • Bug hunt! Late features!
Speciﬁc bugs to hunt • Performance; find extra repaint with paint-flashing • Settings -> Device info -> More info -> Developer -> Flash repainted area • Off-main thread animation (OMTA; async animation) • CSS animates incorrectly on B2G Desktop but correct on nightly • Functional: App installation, built-in app functionalities
Where to ﬁnd the team • irc.mozilla.org #gaia • dev-gaia mailing list • Shop for bugs on Bugzilla and take what you can solve
Beyond ver. 1.0 • OS Shell in a <html> is a unique opportunity, a canvas for experimenting new OS shell and user interfaces • Can Firefox OS evolving into something doesn’t look like any existing platform? • Fork it, hack it, announce and demonstrate your proposal out loud!