Steps to Contribute Firefox
OS (gaia)
gasolin@mozilla.com
wait for B2G session (by thinker)
If you are more familiar with...
C++ Python JS
Warning
C++ Python JS
welcome aboard :)
If you are familiar with...
First stop https://developer.mozilla.org/en-US/docs/Mozilla/
Firefox_OS/Platform/Gaia
Reference
Why I’m here?
About Me:
• Mozilla Firefox OS front-end developer
• GTUG Taipei Organizer (Open)
• Android developer and book author (Mobile)
• Python Web developer (Web)
http://www.gasolin.idv.tw
Firefox OS Front End (Gaia)
Open x Mobile x Web
Firefox OS Front End (Gaia)
Open x Mobile x Web
(& python )
Firefox OS Front End (Gaia)
Open x Mobile x Web
三種願望⼀一次滿⾜足
(& python )
WHY contribute OSS?
you know you can coding, but...
(It’s all about how good you want to be)
How good are you?
…...
Make you a better
programmer
practice, cowork, feedback
Practice
掱
photo credit by http://www.flickr.com/photos/21556354@N03/7203604810/sizes/l/
Cowork
劦
photo credit by http://www.flickr.com/photos/outinthesticks/7336479102/sizes/l/
Feedback
photo credit by http://www.flickr.com/photos/breathalyzer/2966642214/sizes/o/
heal the world?
Can you use your code to
photo credit by http://www.flickr.com/photos/noelzialee/267129769/sizes/l/
(make it a better place)
Mozilla can help YOU
and YOU can help us, too
WHAT IS Firefox OS?
B2G = GAIA + GECKO + GONK
WHAT IS Firefox OS?
B2G = GAIA + GECKO + GONK
Web Application
Web Platform
Infrastructure
WHAT IS Firefox OS?
B2G = GAIA + GECKO + GONK
Web Application
Web Platform
Infrastructure
Gaia
Gecko
Gonk
HTML5 Support APIs
https://developer.mozilla.org/docs/HTML/HTML5
Reference
Firefox OS/Mobile for Android WebAPI
https://developer.mozilla.org/en-US/docs/WebAPI
Reference
Web App Developer Hub
https://marketplace.firefox.com/developers/
Reference
Firefox OS Simulator
• Firefox addon to simulate and debug web apps
http://bit.ly/T249hs
Reference
Gecko
Core Browser Engine
GeckoNetscape
90’ Browser
GeckoNetscape
Firefox
(windows)
Firefox
(mac)
Firefox
(linux)
Desktop Firefox
GeckoNetscape
Firefox
(windows)
Firefox
(mac)
Firefox
(linux)
Firefox
(android)
Firefox for Mobile
GeckoNetscape
Firefox
(windows)
Firefox
(mac)
Firefox
(linux)
Firefox
(android)
Firefox OS
GeckoNetscape
Firefox
(windows)
Firefox
(mac)
Firefox
(linux)
Firefox
(android)
Firefox OS
Gonk
adapter to each device
GeckoNetscape
Firefox
(windows)
Firefox
(mac)
Firefox
(linux)
Firefox
(android)
Firefox OS
Gaia
Gonk
adapter to each device
system & build-in web apps
GeckoNetscape
Firefox
(windows)
Firefox
(mac)
Firefox
(linux)
Firefox
(android)
Firefox OS
Gaia
Gonk
adapter to each device
system & build-in web apps
GeckoNetscape
Firefox
(windows)
Firefox
(mac)
Firefox
(linux)
Firefox
(android)
Firefox OS
Gaia
Gonk
adapter to each device
system & build-in web apps
image credit by http://ironman.wikia.com/wiki/
GeckoNetscape
Firefox
(windows)
Firefox
(mac)
Firefox
(linux)
Firefox
(android)
Firefox OS
Gaia
Gonk
adapter to each device
system & build-in web apps
image credit by http://ironman.wikia.com/wiki/
GeckoNetscape
Firefox
(windows)
Firefox
(mac)
Firefox
(linux)
Firefox
(android)
Firefox OS
Gaia
Gonk
adapter to each device
system & build-in web apps
image credit by http://ironman.wikia.com/wiki/
GeckoNetscape
Firefox
(windows)
Firefox
(mac)
Firefox
(linux)
Firefox
(android)
Firefox OS
Gaia
Gonk
adapter to each device
system & build-in web apps
image credit by http://ironman.wikia.com/wiki/
credit by http://bit.ly/Vf99jc
Gaia (System & build-in web apps)
credit by http://bit.ly/Vf99jc
Gaia (System & build-in web apps)
system platform
system utility
browser
media
productivity
communications
...
Gecko ~= Tony Stark
photo credit by http://fanartexhibit.wordpress.com/2013/02/08/lady-avengers-wallpaper/
Let’s play with Gaia
• Up-and-running
• Discover
• My first patch
credit by http://bit.ly/1cnczgr
Up and running
Get gaia
Build gaia
Run gaia
Get Aurora
Get gaia https://github.com/mozilla-b2g/gaia
Get Aurora
Get Firefox Alpha version to emulate gaia in browser
http://aurora.mozilla.org/
Build Gaia
# make steps
$ DEBUG=1 make
more options and detail
• Make Options https://developer.mozilla.org/en-US/
docs/Mozilla/Firefox_OS/Platform/Gaia/
Hacking#Make_options
• Hacking Gaia https://hacks.mozilla.org/2013/01/
hacking-gaia-for-firefox-os-part-1/
Run gaia
# open browser
$ /[AppPath]/firefox -profile /
User/me/gaia/profile-debug
Discover
Find Issues
take bug
fire a bug
Bugzilla http://bit.ly/YwASU7Find Issues
Bugzilla http://bit.ly/YwASU7Fire a bug
my first patch
http://mzl.la/14IUpTh
http://mzl.la/15EJpS9
photo credit by http://www.wallpaperdev.com/wallpaper/2560x1600/cute-baby-printable-version-65303.html
Reference
Take bug
Follow bug
Reference
Discussion
IRC: #b2g, #gaia (english)
#mozilla-taiwan (chinese)
Maillist: https://lists.mozilla.org/listinfo/dev-
gaia
Reference
My first patch
Coding
Submit Patch
Review
Granted
Ask review
Merge
I have an idea...
[feature]
Talking Dialer:
play voice with Dialing
(for demo purpose)
Fire a bug
Bug 877972 - able to play a short sound clip when keypad is pressed
Need information or help
Use ‘Need more information from’ field
Coding
Count Number voice clip found...
Coding
Count Number voice clip found...
credit by Bumbler to Speech http://zhusee2.github.io/
bumbler-to-speech/
http://youtu.be/EgxpzbgS_cY
Prototype your idea
Communicate
&
Pull Request (submit patch)
got PR https://github.com/mozilla-b2g/gaia/pull/11319
Automatic Coding Style (lint) check
rely on lint tools
Gaia has forced lint check before each
commit
(go @timdream for detail)
credit gjslint https://developers.google.com/closure/utilities/docs/
linter_howto
Reference
Ask Review
attach an auto redirect html page to github
photo credit by http://weheartit.com/entry/9380358/via/abz
send PR for review
Assign proper reviewer from Module owner list
https://wiki.mozilla.org/Modules/FirefoxOS
Wait for review
Wait for review
got ‘review granted’ (r+), or not (r-)
get feedback
Warning
get feedback
Warning
or get granted with criteria
fix it, then...
Warning
Congrats, your get first
commit
keep doing your good job!
Done
去做⼀一些你還沒準備好能做的事
那是讓⼈人成⻑⾧長的⽅方式
-- Marissa Mayer
I always did something I was a little not ready to do. I think that’s how you grow.
Make the world a better place
web
wide
https://github.com/mozilla-b2g/gaia
https://github.com/mozilla-b2g/B2G
Thanks

Steps to contribute to firefox os (gaia)