If you don’t already know, I work at Mozilla.My official job title is Technical Evangelist, but I prefer what it says on my business card.Part of my job is to engage with developers like yourselves about cool new technologies on the Web.And for those of you with no idea of what a rawket is, I made a multiplayer game called Rawkets in which players ﬂyaround in little rockets and shoot each other in the face with the latest Web technologies. It’s quite addictive!http://rawkets.com
I’m not sure how much time we’ll have for questions at the end, but feel free to grab me in person after the talk or onTwitter.These slides will go online after this talk, they include links to more information on the technologies covered.I’ll put all the details up at the end.
4Pretty much 1 year ago Firefox was at version 4.As of today the latest public release is version 12, with versions 13, 14 & 15 already going through developer testing.This new rapid release process has allowed us to push more features to developers and users in a shorter space oftime.
B2G Firefox Persona Web AppsKilimanjaro is a milestone across several of the Mozilla products; Firefox, B2G, Web Apps, and Persona.The Kilimanjaro Event is not a single release, it is an incremental effort that results in an coherent experience across thoseproducts.When we reach the Kilimanjaro milestone we will have an elegant and simple experience for HTML5 Web apps in Firefox onmultiple devices that puts the user in control of their apps and identity.‘Kilimanjaro’ is planned to be reached by September 2012.https://wiki.mozilla.org/Kilimanjaro
n ts E ve es uch est ur To an dg uch ito MultTouch Eventshttps://developer.mozilla.org/en/DOM/Touch_events
P I n A a tio ies Vibr techno log eb op en W ith uw yo ating VibrWebVibration API, previously known as the WebVibrator APIhttps://bugzilla.mozilla.org/show_bug.cgi?id=679966
P I A tery at ru sa ge B we po oring nit MoBattery APIhttps://bugzilla.mozilla.org/show_bug.cgi?id=678694
P I n A e e ful llscr ow er u tp F , ye ple im SWhile not technically part of the WebAPI effort, The Fullscreen API allows you to expand any HTML element to ﬁll theusers screen, even if the browser isn’t running full screen itself.For games, this is great because you can make the small canvas element ﬁll the entire screen.Outside of games, this is useful for video elements and Web applications.https://bugzilla.mozilla.org/show_bug.cgi?id=545812https://wiki.mozilla.org/Platform/Features/Full_Screen_APIs
s A pp e b ntrol n W k in co pe sb ac O d us er an ers velop de ing PuttThe concept of Web apps is something that is gaining a lot of traction at the moment.It’s no doubt this this traction is as a result of the success of native applications and games on the desktop andmobile, particularly with iOS and Android.https://developer.mozilla.org/en/Apps
It’s something we’re spending a lot of time on at Mozilla.We envisage Web apps to run on any device, any browser, and to be distributed through any store or website.https://developer.mozilla.org/en/Appshttps://marketplace.mozilla.org
The process of installing an Open Web App is handled by the browser.In Firefox this means a door-hanger prompt will appear when you request to install an app from a marketplace or adeveloper’s website.From there the browser will handle the rest of the installation process.
nce ie er creen exp es ike om p-l kto po rh Ap ed es th from ch un LaSomething that needs to be tackled with Web apps is how to make them feel like real applications rather thangloriﬁed websites.One way that is being considered is completely removing the browser chrome and running the application in it’s ownwindow.This will effectively mean that you have full control of the app UI and it won’t look like it’s being run in a browser.
At Mozilla we call this WebRT, which stands for Web Run-Time.By using WebRT you can install a Web app directly into the OS just like you would a native application.The WebRT app will look and feel like a native application when launched but will actually be running a browserrendering engine behind the scenes.This is an example of the game Sinuous running as a WebRT app with the Firefox rendering engine. Notice the lack ofbrowser UI.https://developer.mozilla.org/en/Apps/Apps_architecture#Web_runtime
P Is A ted e Web rela th e- console to Gam g the gin BrinAside from WebAPI and Web Apps, there are a few APIs that we’re working on speciﬁcally for games.
PI A ck ace Lo ne pl ter r in o oin rso P e cu th ing LockThe Pointer Lock API is an attempt at improving the mouse as an input device.It would be used in situations like games and 3D visualisations where the mouse position rotates or moves you around a 3Dspace.As it stands there’d still be a cursor moving around the screen causing all sorts of trouble when you want to click on somethingin your game.With the new API you can lock your mouse position and stop it from getting in the way and being a nuisance.Both Google and Mozilla are working on an implementation of this right now, it’s available in a custom build of Firefox.https://developer.mozilla.org/en/API/Pointer_Lock_APIhttps://bugzilla.mozilla.org/show_bug.cgi?id=633602
P I d A p a eb e m e to th eW Ga ol ns co he gt gin BrinThe Gamepad API is one of the major improvements to input that is coming.Both Mozilla and Google are working an an implementation of this and there is actually an experimental build of Firefox availableto the public that has it working. The API is also in the dev build of Chrome.What I ﬁnd most interesting about the Gamepad API is that it might be just the thing we need to ﬁnally justify HTML5 gaming ona TV or console.Who wants to use a keyboard and mouse while sitting on the sofa?https://wiki.mozilla.org/GamepadAPIhttp://www.gamepadjs.comhttps://github.com/jbuck/input.js
This is another little demo that I put together to show off the Gamepad API implemented in my game Rawkets.
nce a rm faster fo and er P etter sb thing aking MThere are a bunch of projects happening at Mozilla that aim to improve performance in Firefox.
ppy na S ene ss siv on esp pr eskto foxd FireSnappy aims to improve responsiveness in Firefox on the desktop.It’s purpose is to improve things like startup time, the responsiveness of UI elements, as well as things like page load time andnavigation speed.We’re landing a whole bunch of ﬁxes in this area, details of which can be found on the Snappy wiki page.https://wiki.mozilla.org/Performance/Snappy
in k h r mS ion Me um pt cons ory em xm efo Fir ucing RedMemShrink aims to reduce memory consumption in Firefox, which will make the browser faster and more stable.This is achieved by slimming down the amount of memory used in the browser whilst also ﬁxing things like memory leaks.As with Snappy, we’re landing a whole bunch of ﬁxes with MemShrink.https://wiki.mozilla.org/Performance/MemShrinkhttps://areweslimyet.com
ols to s p er t blis velo pm en De evelo ford tools ilt-in BuDeveloper toolshttps://wiki.mozilla.org/Features/DevToolshttp://blog.mozilla.org/devtools/
up g in zon p ee he hori K nt tuff o uchs SomI’ve really only touched the tip of the iceberg here.There is much more coming in the near future.Here are a few ways to keep up with things and get yourself prepared with the things happening in Firefox.
Platform features on the Mozilla Wikihttps://wiki.mozilla.org/Features/Platform
Desktop features on the Mozilla Wikihttps://wiki.mozilla.org/Features/Desktop
Mobile features on the Mozilla Wikihttps://wiki.mozilla.org/Features/Mobile
Are We Fun Yet? on the Mozilla Wikihttps://wiki.mozilla.org/Platform/AreWeFunYet
WebNFC WebVibration Battery API WebSMS Geolocation WebContacts Full Screen API WebTelephony Settings API WebUSB Multitouch WebGL Camera WebBluetoothAre We Mobile Yethttp://arewemobileyet.com
u s to C lk lla IR Ta ozi nM liveo WeThe general rule of thumb at Mozilla is to look for the relevant people on IRC if you want a quick response, we tend to live onthere.The server you want is irc.mozilla.orgThe channels you want are #b2g and #gaia for B2G-related stuff, #openwebapps for Open Web Apps, and #webapi for anythingabout WebAPIs.
A particular slide catching your eye?
Clipping is a handy way to collect important slides you want to go back to later.