{"id":4222,"date":"2012-02-24T17:17:58","date_gmt":"2012-02-25T00:17:58","guid":{"rendered":"http:\/\/blog.mozilla.org\/?p=4222"},"modified":"2014-04-24T15:39:16","modified_gmt":"2014-04-24T22:39:16","slug":"mobile-web-api-evolution","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/blogarchive\/blog\/2012\/02\/24\/mobile-web-api-evolution\/","title":{"rendered":"Mozilla and the Mobile Web API Evolution"},"content":{"rendered":"<div>\n<p><em>Editor&#8217;s Note: Brendan Eich, Mozilla CTO, posted on <a href=\"http:\/\/brendaneich.com\/2012\/02\/mobile-web-api-evolution\/\">his blog<\/a> about Mozilla and the mobile Web API evolution. This is reposted below:<\/em><\/p>\n<p>Ragavan Srinivasan\u2019s <a href=\"http:\/\/blog.mozilla.org\/blog\/2012\/02\/22\/mozilla-marketplace-opening-for-app-submissions-soon\/\">post about the forthcoming Mozilla Marketplace<\/a> for <a href=\"https:\/\/apps.mozillalabs.com\/\">Open Web Apps<\/a> inspired me to write about Mozilla\u2019s surging Web and Device API standards work.<\/p>\n<p>A bit of background. Mozilla has always contributed to web standards, going back to the start of the project. We <a href=\"http:\/\/brendaneich.com\/2004\/06\/the-non-world-non-wide-non-web\/\">co-founded<\/a> the <a href=\"http:\/\/www.whatwg.org\/\">WHAT-WG<\/a> to kick off <a href=\"http:\/\/dev.w3.org\/html5\/spec\/Overview.html\">HTML5<\/a>. As readers of this blog know, we are a leader in <a href=\"http:\/\/ecmascript.org\/\">JS standardization<\/a>. We have some of the top <a href=\"http:\/\/dbaron.org\/\">CSS<\/a> and <a href=\"http:\/\/robert.ocallahan.org\/\">layout<\/a> experts in the world.<\/p>\n<p>In the last eight months, our efforts to extend the web standards to include new APIs needed to build compelling apps and OS components on mobile devices have really caught fire. <a href=\"http:\/\/wiki.mozilla.org\/B2G\">B2G<\/a> and <a href=\"https:\/\/wiki.mozilla.org\/Apps\/Roadmap\">Open Web Apps<\/a> are the fuel for this fire.<\/p>\n<p>So I thought I would compile a list of emerging APIs to which we\u2019ve contributed. In citing Mozillans I do not mean to minimize the efforts of standardization colleagues at Google, Microsoft, Nokia, Opera, the W3C and elsewhere. Standards are a multi-vendor effort (although excluding WebGL [see UPDATE below] one shiny name is conspicuously absent from this list).<\/p>\n<p>The Mozilla contributions are worth noting both to acknowledge the individuals involved, and to highlight how Mozilla is championing device APIs for the web without having a native application stack blessed with such APIs on offer. We see the Web as quickly evolving to match native stacks. We have no other agenda than improving the Web to improve its users\u2019 lives, including Web developers\u2019 lives \u2014 especially mobile users and developers.<\/p>\n<p>As always, standards in progress are subject to change, yet require prototype implementation and user-testing. Mozilla remains committed to playing fairly by not forging de-facto standards out of prototypes, rather proposing before disposing and in the end tracking whatever is standardized.<\/p>\n<p>Here is the list, starting with some 2011-era work:<\/p>\n<ul>\n<li><a href=\"http:\/\/dev.w3.org\/geo\/api\/spec-source.html\">Geolocation<\/a>, with Google contributing the editor and Firefox (thanks to <a href=\"http:\/\/www.mozilla.org\/en-US\/press\/bios\/#bio-sullivan\">Jay Sullivan<\/a> leading the charge) implementing early.<\/li>\n<li><a href=\"https:\/\/www.khronos.org\/registry\/webgl\/specs\/1.0\/\">WebGL<\/a> (UPDATE: Chris Marrin of Apple edited) and <a href=\"http:\/\/www.khronos.org\/registry\/typedarray\/specs\/latest\/\">typed arrays<\/a>.<\/li>\n<li><a href=\"https:\/\/dvcs.w3.org\/hg\/gamepad\/raw-file\/default\/gamepad.html\">Gamepad API<\/a>. Co-editor: Ted Mielczarek. Mozillans are also contributing to <a href=\"http:\/\/dvcs.w3.org\/hg\/pointerlock\/raw-file\/default\/index.html\">Pointer Lock<\/a>.<\/li>\n<li><a href=\"http:\/\/dvcs.w3.org\/hg\/screen-orientation\/raw-file\/tip\/Overview.html\">Screen Orientation<\/a>. Editor: Mounir Lamouri.<\/li>\n<li><a href=\"http:\/\/dev.w3.org\/2011\/webrtc\/editor\/getusermedia.html\">navigator.getUserMedia<\/a>. Co-editor: Anant Narayanan<\/li>\n<li><a href=\"http:\/\/www.w3.org\/TR\/2011\/WD-battery-status-20111129\/\">Battery Status<\/a> (in Last Call). From the Acknowledgements:<br \/>\n<blockquote><p>Big thanks to the Mozilla WebAPI team for their invaluable feedback based on prototype implementations.<\/p><\/blockquote>\n<\/li>\n<li><a href=\"http:\/\/www.w3.org\/TR\/2011\/WD-html-media-capture-20110414\/\">Media Capture<\/a>. Fabrice Desr\u00e9 prototype-implemented in Gecko.<\/li>\n<li><a href=\"http:\/\/dev.w3.org\/2009\/dap\/netinfo\/\">Network API<\/a>. Editor: Mounir Lamouri.<\/li>\n<li><a href=\"https:\/\/wiki.mozilla.org\/WebAPI\/WebTelephony\">Web Telephony<\/a>. Ben Turner, Jonas Sicking, Philipp von Weitershausen.<\/li>\n<li><a href=\"https:\/\/wiki.mozilla.org\/WebAPI\/WebSMS\">Web SMS<\/a>. Mounir Lamouri, Jonas Sicking.<\/li>\n<li><a href=\"http:\/\/www.w3.org\/TR\/2012\/WD-vibration-20120202\/\">Vibration<\/a>. From the Acknowledgements:<br \/>\n<blockquote><p>The group is deeply indebted to Mounir Lamouri, Jonas Sicking, and the Mozilla WebAPI team in general for providing the WebVibrator prototype as an initial input.<\/p><\/blockquote>\n<\/li>\n<li><a href=\"http:\/\/www.w3.org\/TR\/FileAPI\/\">File API<\/a>. Editors: Arun Ranganathan, Jonas Sicking.<\/li>\n<li><a href=\"http:\/\/www.w3.org\/TR\/IndexedDB\/\">IndexedDB<\/a>. Editors includes Jonas Sicking.<\/li>\n<\/ul>\n<p>I did not list most of the HTML5 and Web API work aimed at Desktop Firefox, to focus on the new mobile-oriented additions. There\u2019s more to say, including about <a href=\"http:\/\/www.cs.berkeley.edu\/%7Eafelt\/\">bundled-permission follies<\/a> and how to <a href=\"http:\/\/robert.ocallahan.org\/2011\/06\/permissions-for-web-applications_30.html\">weave<\/a> permission-granting (with memorization) into interactions, but not here.<\/p>\n<p>One last note. The <a href=\"http:\/\/www.alistapart.com\/articles\/the-vendor-prefix-predicament-alas-eric-meyer-interviews-tantek-celik\/\">CSS vendor prefix brouhaha<\/a> had, among many salutary effects, the benefit of shining light on an important requirement of competitive mobile web development: CSS style properties such as <code>-webkit-animation-*<\/code>, however you spell them, must have fast and beautiful implementations across devices for developers to find them usable: 60Hz, artifact-free rendering under touch control. This requires such work as <a href=\"https:\/\/wiki.mozilla.org\/Platform\/GFX\/OffMainThreadCompositing\">off-main-thread compositing<\/a> and <a href=\"https:\/\/wiki.mozilla.org\/Gecko:Layers\">GL layers<\/a>.<\/p>\n<p>This is a high technical bar, but we are in the process of meeting it in the latest Firefox for Android and B2G builds, thanks to hard work from many people, especially <a href=\"http:\/\/pcwalton.blogspot.com\/\">Patrick Walton<\/a>, <a href=\"http:\/\/robert.ocallahan.org\/\">Robert O\u2019Callahan<\/a>, <a href=\"http:\/\/blog.mozilla.org\/cjones\/\">Chris Jones<\/a>, and <a href=\"http:\/\/andreasgal.com\/\">Andreas Gal<\/a>. Onward!<\/p>\n<p>\/be<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Editor&#8217;s Note: Brendan Eich, Mozilla CTO, posted on his blog about Mozilla and the mobile Web API evolution. This is reposted below: Ragavan Srinivasan\u2019s post about the forthcoming Mozilla Marketplace &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/blogarchive\/blog\/2012\/02\/24\/mobile-web-api-evolution\/\">Read more<\/a><\/p>\n","protected":false},"author":144,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[65,30,4498,66],"tags":[],"coauthors":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Mozilla and the Mobile Web API Evolution - The Mozilla Blog (Archived)<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.mozilla.org\/blogarchive\/blog\/2012\/02\/24\/mobile-web-api-evolution\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mozilla\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.mozilla.org\/blogarchive\/blog\/2012\/02\/24\/mobile-web-api-evolution\/\",\"url\":\"https:\/\/blog.mozilla.org\/blogarchive\/blog\/2012\/02\/24\/mobile-web-api-evolution\/\",\"name\":\"Mozilla and the Mobile Web API Evolution - The Mozilla Blog (Archived)\",\"isPartOf\":{\"@id\":\"https:\/\/blog.mozilla.org\/blogarchive\/#website\"},\"datePublished\":\"2012-02-25T00:17:58+00:00\",\"dateModified\":\"2014-04-24T22:39:16+00:00\",\"author\":{\"@id\":\"https:\/\/blog.mozilla.org\/blogarchive\/#\/schema\/person\/33edd7d4d73723140487082573041c83\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.mozilla.org\/blogarchive\/blog\/2012\/02\/24\/mobile-web-api-evolution\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.mozilla.org\/blogarchive\/blog\/2012\/02\/24\/mobile-web-api-evolution\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.mozilla.org\/blogarchive\/blog\/2012\/02\/24\/mobile-web-api-evolution\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.mozilla.org\/blogarchive\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mozilla and the Mobile Web API Evolution\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.mozilla.org\/blogarchive\/#website\",\"url\":\"https:\/\/blog.mozilla.org\/blogarchive\/\",\"name\":\"The Mozilla Blog (Archived)\",\"description\":\"Dispatches from the Internet frontier.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.mozilla.org\/blogarchive\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.mozilla.org\/blogarchive\/#\/schema\/person\/33edd7d4d73723140487082573041c83\",\"name\":\"Mozilla\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/blogarchive\/#\/schema\/person\/image\/f32381c01597770b1131dff44b9d6de1\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f84bd67e8e3ab3bcc9676910aecf5700?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f84bd67e8e3ab3bcc9676910aecf5700?s=96&d=mm&r=g\",\"caption\":\"Mozilla\"},\"url\":\"https:\/\/blog.mozilla.org\/blogarchive\/blog\/author\/mozilla\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mozilla and the Mobile Web API Evolution - The Mozilla Blog (Archived)","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.mozilla.org\/blogarchive\/blog\/2012\/02\/24\/mobile-web-api-evolution\/","twitter_misc":{"Written by":"Mozilla","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.mozilla.org\/blogarchive\/blog\/2012\/02\/24\/mobile-web-api-evolution\/","url":"https:\/\/blog.mozilla.org\/blogarchive\/blog\/2012\/02\/24\/mobile-web-api-evolution\/","name":"Mozilla and the Mobile Web API Evolution - The Mozilla Blog (Archived)","isPartOf":{"@id":"https:\/\/blog.mozilla.org\/blogarchive\/#website"},"datePublished":"2012-02-25T00:17:58+00:00","dateModified":"2014-04-24T22:39:16+00:00","author":{"@id":"https:\/\/blog.mozilla.org\/blogarchive\/#\/schema\/person\/33edd7d4d73723140487082573041c83"},"breadcrumb":{"@id":"https:\/\/blog.mozilla.org\/blogarchive\/blog\/2012\/02\/24\/mobile-web-api-evolution\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.mozilla.org\/blogarchive\/blog\/2012\/02\/24\/mobile-web-api-evolution\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.mozilla.org\/blogarchive\/blog\/2012\/02\/24\/mobile-web-api-evolution\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.mozilla.org\/blogarchive\/"},{"@type":"ListItem","position":2,"name":"Mozilla and the Mobile Web API Evolution"}]},{"@type":"WebSite","@id":"https:\/\/blog.mozilla.org\/blogarchive\/#website","url":"https:\/\/blog.mozilla.org\/blogarchive\/","name":"The Mozilla Blog (Archived)","description":"Dispatches from the Internet frontier.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.mozilla.org\/blogarchive\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.mozilla.org\/blogarchive\/#\/schema\/person\/33edd7d4d73723140487082573041c83","name":"Mozilla","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/blogarchive\/#\/schema\/person\/image\/f32381c01597770b1131dff44b9d6de1","url":"https:\/\/secure.gravatar.com\/avatar\/f84bd67e8e3ab3bcc9676910aecf5700?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f84bd67e8e3ab3bcc9676910aecf5700?s=96&d=mm&r=g","caption":"Mozilla"},"url":"https:\/\/blog.mozilla.org\/blogarchive\/blog\/author\/mozilla\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/blogarchive\/wp-json\/wp\/v2\/posts\/4222"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/blogarchive\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/blogarchive\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/blogarchive\/wp-json\/wp\/v2\/users\/144"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/blogarchive\/wp-json\/wp\/v2\/comments?post=4222"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/blogarchive\/wp-json\/wp\/v2\/posts\/4222\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/blogarchive\/wp-json\/wp\/v2\/media?parent=4222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/blogarchive\/wp-json\/wp\/v2\/categories?post=4222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/blogarchive\/wp-json\/wp\/v2\/tags?post=4222"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mozilla.org\/blogarchive\/wp-json\/wp\/v2\/coauthors?post=4222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}