SlideShare a Scribd company logo
Firefox OS
Lengyel Zsolt
zsolt.lengyel.it@gmail.com
Bringing the Open Web to
Mobile Devices OS
Bringing The Boot to Gecko
project was launched to enable
the Open Web as a platform for
mobile devices. We’re making
innovation possible by driving
the development of new Web
standards.
Operators and developers write apps
and services for one platform and then
rewrite them for others. Users who
want to buy phones, e-readers and
game consoles from different
manufacturers often need to repurchase apps for each device.
Opportunities for
Developers
Using HTML5 and the new Mozillaproposed standard APIs, developers
everywhere will be able to create
amazing experiences and apps.
Developers will no longer need to learn
and develop against platform-specific
native APIs.
Customization for OEMs & Operators
OEMs and operators will be able to
provide content and services across
their entire device portfolio, regardless
of OS. And they will be able to
customize user experiences, manage
app distribution and retain customer
attention, loyalty and billing
relationships.
Consumer Freedom
Consumers who use devices based on the Open
Web platform will be able to easily access and
download their own content regardless of which OS
they use.
New Web Standards
Firefox OS produces an implementation of
these new Web standards to free mobile
platforms from the encumbrances of the
rules and restrictions of existing proprietary
platforms.
Components
GAI
A

APPS
GECKO
GONK
GONK
Lower level operating system, consisting of a
Linux kernel and HAL
(Hardware Abstraction Layer).
Possibility to expose anything from the
hardware to Gecko.
GECKO
The application runtime.
The rendering engine in Firefox for HTML5,
CSS & JavaScript.
Implements a number of APIs.
GAIA
Firefox os-introduction
The user interface.
Built entirely by HTML5 & Open Web APIs.
Web APIs
The Boot to Gecko project is based entirely
on open standards and the source code is
open and accessible to all.
Where open standards are missing, we're
working with standards bodies and other
vendors to create them.
WEBTELEPHONY
// Telephony object
var tel = navigator.mozTelephony;
// Check if the phone is muted (read/write property)
console.log(tel.muted);
// Check if the speaker is enabled (read/write property)
console.log(tel.speakerEnabled);
// Place a call
var cal = tel.dial(“123456789”);
// Events for that call
call.onstatechange = function (event) {
/*
Possible values for state:
"dialing", "ringing", "busy", "connecting", "connected",
"disconnecting", "disconnected", "incoming"
*/
console.log(event.state);
};
// Above options as direct events
call.onconnected = function () {
// Call was connected
};
call.ondisconnected = function () {
// Call was disconnected
};
// Receiving a call
tel.onincoming = function (event) {
var incomingCall = event.call;
// Get the number of the incoming call
console.log(incomingCall.number);
// Answer the call
incomingCall.answer();
};
// Disconnect a call
call.hangUp();
// Iterating over calls, and taking action depending on their changed status
tel.oncallschanged = function (event) {
tel.calls.forEach(function (call) {
// Log the state of each call
console.log(call.state);
});
};
WEBSMS
// SMS object
var sms = navigator.mozSMS;
// Send a message
sms.send("123456789", "Hello world!");
// Recieve a message
sms.onreceived = function (event) {
// Read message
console.log(event.message);
};
BATTERY
STATUS API
var battery = navigator.mozBattery
if (battery) {
var batteryLevel = Math.round(battery.level * 100) + "%",
charging = (battery.charging)? "" : "not ",
chargingTime = parseInt(battery.chargingTime / 60, 10,
dischargingTime = parseInt(battery.dischargingTime / 60, 10);
// Set events
battery.addEventListener("levelchange", setStatus, false);
battery.addEventListener("chargingchange", setStatus, false);
battery.addEventListener("chargingtimechange", setStatus, false);
battery.addEventListener("dischargingtimechange", setStatus, false);
}
VIBRATION API
// Vibrate for one second
navigator.mozVibrate(1000);
// Vibration pattern [vibrationTime, pause,…]
navigator.mozVibrate([200, 100, 200, 100]);
// Vibrate for 5 seconds
navigator.mozVibrate(5000);
// Turn off vibration
navigator.mozVibrate(0);
CONTACTS API
var contact = new mozContact();
contact.init({name: "Tom"});
var request = navigator.mozContacts.save(contact);
request.onsuccess = function() {
console.log("Success");
};
request.onerror = function() {
console.log("Error")
};
SETTINGS API
var settings = window.navigator.mozSettings;
settings.getLock().set({"background":
"pretty.png"});
DEVICE
STORAGE API
var storage = navigator.getDeviceStorage("videos"),
cursor = storage.enumerate();
cursor.onerror = function() {
console.error("Error in DeviceStorage.enumerate()", cursor.error.name);
};
cursor.onsuccess = function() {
if (!cursor.result)
return;
var file = cursor.result;
// If this isn't a video, skip it
if (file.type.substring(0, 6) !== "video/") {
cursor.continue();
return;
}
// If it isn't playable, skip it
var testplayer = document.createElement("video");
if (!testplayer.canPlayType(file.type)) {
cursor.continue();
return;
}
}
SCREEN
ORIENTATION
API
// Portrait mode:
screen.mozLockOrientation("portrait");
/*
Possible values:
"landscape"
"portrait"
"landscape-primary"
"landscape-secondary"
"portrait-primary"
"portrait-secondary"
*/
NETWORK
INFORMATION
API
var connection = window.navigator.mozConnection,
online = connection.bandwidth > 0,
metered = connectrion.metered;
KEYBOARD/IME
API
var keyboard = window.navigator.mozKeyboard;
keyboard.sendKey(0, keyCode);
Web Apps from Mozilla
Firefox os-introduction
Vibration
API,
Screen
Orientation,
Geolocation API, Mouse Lock API, Open
WebApps, Network Information API, Battery
Status API, Alarm API, Push Notifications
API, WebFM API / FMRadio, WebPayment,
IndexedDB, Ambient light sensor, Proximity
sensor, Notification

Security Levels
HOSTED

Device Storage API
Browser API
TCP Socket API
Contacts API
systemXHR

WebTelephony, WebSMS, Idle API, Settings
API, Power Management API, Mobile
Connection API, WiFi Information API,
WebBluetooth, Permissions API, Network
Stats API, Camera API, Time/Clock API,
Attention screen, Voicemail

PRIVILEGED

CERTIFIED
Writing Apps, Mozilla Marketplace
Firefox os-introduction
Firefox os-introduction
Web apps are apps built using standard Web technologies. They work
in any modern Web browser, and can be developed using your
favorite tools.
The Open Web apps project proposes some small additions to
existing sites to turn them into apps that run in a rich, fun, and
powerful computing environment.
These apps run on desktop browsers and mobile devices, and are
easier for a user to discover and launch than Web sites.
Steps to Take
1.

Develop Web App using
HTML5, CSS, & Javascript

2.

Create an app manifest file

3.

Publish/install the app
Develop Web App using
HTML5, CSS & JavaScript
Reuse any existing web site/app or develop from scratch with open
web standards.
Utilize HTML5 features such as localStorage, offline manifest,
IndexedDB and access Web APIs for more options.
Responsive web design for adapting to varying resolutions and
screen orientation.
Create an app manifest file
Create a file with a .webapp extension
{
"version": "1.0",
"name": "MozillaBall",
"description": "Exciting Open Web development action!",
"icons": {
"16": "/img/icon-16.png",
"48": "/img/icon-48.png",
"128": "/img/icon-128.png"
},
"developer": {
"name": "Mozilla Labs",
"url": "http://mozillalabs.com"
},
"installs_allowed_from": ["*"],
"appcache_path": "/cache.manifest",
"locales": {
"es": {
"description": "¡Acción abierta emocionante del desarrollo del Web!",
"developer": {
"url": "http://es.mozillalabs.com/"
}
},
"it": {
"description": "Azione aperta emozionante di sviluppo di fotoricettore!",
"developer": {
"url": "http://it.mozillalabs.com/"
}
}
},
"default_locale": "en"
}
MANIFEST CHECKER
Publish/install the app
Mozilla Marketplace
Firefox os-introduction
Installing/hosting the app
var request = navigator.mozApps.install(
"http://mozillalabs.com/MozillaBall.webapp",
{
user_id: "some_user"
}
);
request.onsuccess = function() {
// Success! Notification, launch page etc
}
request.onerror = function() {
// Failed. this.error.name has details
}
Development tools
Your favourite tools
App Manager
Thank you for your attention!

Questions

More Related Content

What's hot (20)

PPTX
Firefox os
Amit Chaudhary
 
PDF
Firefox OS
Siddhartha Rao
 
PPTX
Firefox operating system
Nishant Mehare
 
PPTX
Firefox os ppt
Sourav Halder
 
ODP
FirefoxOS and its use of Linux (a deep dive into Gonk architecture)
Aimee Maree
 
PDF
Firefox OS
ankitgadgil
 
PDF
Firefox OS Perspective
ankitgadgil
 
PDF
Retour d’expérience sur Couchbase par James Nocentini
CocoaHeads France
 
PPTX
Wikipedia Mobile App with PhoneGap
Ted Chien
 
PPTX
Firefox OS
Robert 'Bob' Reyes
 
PDF
Cordova and PhoneGap Insights
Monaca
 
PPTX
Firefox OS Intro, Inside OUT
skiee-mahir
 
ODP
Synapse india reviews on cross plateform mobile apps development
saritasingh19866
 
PDF
New things about Cordova 4.0
Monaca
 
KEY
Phonegap/Cordova vs Native Application
Muhammad Hakim A
 
ODP
Apache Cordova, Hybrid Application Development
thedumbterminal
 
PPTX
Hybrid App Development with PhoneGap
Dotitude
 
PDF
Hybrid Apps with Angular & Ionic Framework
Cihad Horuzoğlu
 
PDF
Creating mobile apps - an introduction to Ionic (Engage 2016)
Mark Leusink
 
PDF
Apps with Apache Cordova and Phonegap
Christian Grobmeier
 
Firefox os
Amit Chaudhary
 
Firefox OS
Siddhartha Rao
 
Firefox operating system
Nishant Mehare
 
Firefox os ppt
Sourav Halder
 
FirefoxOS and its use of Linux (a deep dive into Gonk architecture)
Aimee Maree
 
Firefox OS
ankitgadgil
 
Firefox OS Perspective
ankitgadgil
 
Retour d’expérience sur Couchbase par James Nocentini
CocoaHeads France
 
Wikipedia Mobile App with PhoneGap
Ted Chien
 
Firefox OS
Robert 'Bob' Reyes
 
Cordova and PhoneGap Insights
Monaca
 
Firefox OS Intro, Inside OUT
skiee-mahir
 
Synapse india reviews on cross plateform mobile apps development
saritasingh19866
 
New things about Cordova 4.0
Monaca
 
Phonegap/Cordova vs Native Application
Muhammad Hakim A
 
Apache Cordova, Hybrid Application Development
thedumbterminal
 
Hybrid App Development with PhoneGap
Dotitude
 
Hybrid Apps with Angular & Ionic Framework
Cihad Horuzoğlu
 
Creating mobile apps - an introduction to Ionic (Engage 2016)
Mark Leusink
 
Apps with Apache Cordova and Phonegap
Christian Grobmeier
 

Viewers also liked (20)

PPT
Firefox presentation
Simon Power
 
PDF
An Introduction to Firefox (高應大)
Irvin Chen
 
PDF
Firefox OS
abdelrahman samy
 
PDF
Introduction to firefox os
H Mohammed Rajjaz
 
PPT
Introduction about Foss and mozilla
Gauthamraj Elango
 
PDF
Firefox
Ankit Shah
 
PDF
Operating system
Ahmed Hesham
 
PPTX
Operating Systems in Mobile Phones
SasukeJUchiha
 
PPT
Advantages and disadvantages of an ajax based client application
Placinta Alin
 
PDF
مقدمة نظام التشغيل مفهومه و أنواعه
khadija meddah
 
PPT
Firefox vs. chrome
Prabhath Suminda
 
PPTX
Arabic Introduction For Firefox OS
mohamed Hafez
 
PPT
Introduction to Tiny OS
Sudharsan S
 
PPTX
Different types of operating systems
Mehul Jain
 
PPTX
Research on Web Browsers ppt
Sagar Agarwal
 
PPSX
انظمة التشغيل
د.فداء الشنيقات
 
PPTX
PAPER PRESENTATION ON FIREFOX OS
Tousif Baddemalic
 
PPT
Sailfish os
Anandhu Krishnan
 
PPTX
Sailfish OS
Abhisek Panda
 
ODP
Introduction to Sailfish OS
Leon Anavi
 
Firefox presentation
Simon Power
 
An Introduction to Firefox (高應大)
Irvin Chen
 
Firefox OS
abdelrahman samy
 
Introduction to firefox os
H Mohammed Rajjaz
 
Introduction about Foss and mozilla
Gauthamraj Elango
 
Firefox
Ankit Shah
 
Operating system
Ahmed Hesham
 
Operating Systems in Mobile Phones
SasukeJUchiha
 
Advantages and disadvantages of an ajax based client application
Placinta Alin
 
مقدمة نظام التشغيل مفهومه و أنواعه
khadija meddah
 
Firefox vs. chrome
Prabhath Suminda
 
Arabic Introduction For Firefox OS
mohamed Hafez
 
Introduction to Tiny OS
Sudharsan S
 
Different types of operating systems
Mehul Jain
 
Research on Web Browsers ppt
Sagar Agarwal
 
انظمة التشغيل
د.فداء الشنيقات
 
PAPER PRESENTATION ON FIREFOX OS
Tousif Baddemalic
 
Sailfish os
Anandhu Krishnan
 
Sailfish OS
Abhisek Panda
 
Introduction to Sailfish OS
Leon Anavi
 
Ad

Similar to Firefox os-introduction (20)

PDF
Øredev2013 - FirefoxOS - the platform HTML5 deserves
Christian Heilmann
 
PDF
Firefox OS workshop, JSFoo, India
Robert Nyman
 
PDF
Firefox OS - Answering global challenges
Christian Heilmann
 
PDF
(Christian heilman) firefox
NAVER D2
 
PDF
Fixing the mobile web - Internet World Romania
Christian Heilmann
 
PDF
Bringing the open web and APIs to mobile devices with Firefox OS - Whisky W...
Robert Nyman
 
PDF
FirefoxOS Introduction
Pavel Ivanov
 
PDF
Firefox OS - HTML5 for a truly world-wide-web
Christian Heilmann
 
PDF
Empowering the "mobile web"
Chris Mills
 
PDF
Empowering the Mobile Web - Mills
Codemotion
 
PDF
Empowering the “Mobile Web” with Chris Mills
FITC
 
PPTX
Firefox os
Nivin Thomas
 
PDF
Web APIs & Apps - Mozilla
Robert Nyman
 
PDF
Hungarian Web Conference: HTML5 beyond the hype - let's make it work!
Christian Heilmann
 
PPTX
Firefox OS - The platform you deserve - Athens App Days - 2013-11-27
Frédéric Harper
 
PDF
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Frédéric Harper
 
KEY
Open Web Device: The first phone running Firefox OS!
Francisco Jordano
 
PDF
HTML for the Mobile Web, Firefox OS
All Things Open
 
PDF
WebAPIs & Apps - Mozilla London
Robert Nyman
 
PPTX
Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-1...
Frédéric Harper
 
Øredev2013 - FirefoxOS - the platform HTML5 deserves
Christian Heilmann
 
Firefox OS workshop, JSFoo, India
Robert Nyman
 
Firefox OS - Answering global challenges
Christian Heilmann
 
(Christian heilman) firefox
NAVER D2
 
Fixing the mobile web - Internet World Romania
Christian Heilmann
 
Bringing the open web and APIs to mobile devices with Firefox OS - Whisky W...
Robert Nyman
 
FirefoxOS Introduction
Pavel Ivanov
 
Firefox OS - HTML5 for a truly world-wide-web
Christian Heilmann
 
Empowering the "mobile web"
Chris Mills
 
Empowering the Mobile Web - Mills
Codemotion
 
Empowering the “Mobile Web” with Chris Mills
FITC
 
Firefox os
Nivin Thomas
 
Web APIs & Apps - Mozilla
Robert Nyman
 
Hungarian Web Conference: HTML5 beyond the hype - let's make it work!
Christian Heilmann
 
Firefox OS - The platform you deserve - Athens App Days - 2013-11-27
Frédéric Harper
 
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Frédéric Harper
 
Open Web Device: The first phone running Firefox OS!
Francisco Jordano
 
HTML for the Mobile Web, Firefox OS
All Things Open
 
WebAPIs & Apps - Mozilla London
Robert Nyman
 
Firefox OS - The platform you deserve - Firefox OS Budapest workshop - 2013-1...
Frédéric Harper
 
Ad

Recently uploaded (20)

PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Biography of Daniel Podor.pdf
Daniel Podor
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 

Firefox os-introduction

  • 2. Bringing the Open Web to Mobile Devices OS
  • 3. Bringing The Boot to Gecko project was launched to enable the Open Web as a platform for mobile devices. We’re making innovation possible by driving the development of new Web standards.
  • 4. Operators and developers write apps and services for one platform and then rewrite them for others. Users who want to buy phones, e-readers and game consoles from different manufacturers often need to repurchase apps for each device.
  • 6. Using HTML5 and the new Mozillaproposed standard APIs, developers everywhere will be able to create amazing experiences and apps. Developers will no longer need to learn and develop against platform-specific native APIs.
  • 8. OEMs and operators will be able to provide content and services across their entire device portfolio, regardless of OS. And they will be able to customize user experiences, manage app distribution and retain customer attention, loyalty and billing relationships.
  • 10. Consumers who use devices based on the Open Web platform will be able to easily access and download their own content regardless of which OS they use.
  • 12. Firefox OS produces an implementation of these new Web standards to free mobile platforms from the encumbrances of the rules and restrictions of existing proprietary platforms.
  • 15. GONK
  • 16. Lower level operating system, consisting of a Linux kernel and HAL (Hardware Abstraction Layer). Possibility to expose anything from the hardware to Gecko.
  • 17. GECKO
  • 18. The application runtime. The rendering engine in Firefox for HTML5, CSS & JavaScript. Implements a number of APIs.
  • 19. GAIA
  • 21. The user interface. Built entirely by HTML5 & Open Web APIs.
  • 23. The Boot to Gecko project is based entirely on open standards and the source code is open and accessible to all. Where open standards are missing, we're working with standards bodies and other vendors to create them.
  • 25. // Telephony object var tel = navigator.mozTelephony; // Check if the phone is muted (read/write property) console.log(tel.muted); // Check if the speaker is enabled (read/write property) console.log(tel.speakerEnabled);
  • 26. // Place a call var cal = tel.dial(“123456789”);
  • 27. // Events for that call call.onstatechange = function (event) { /* Possible values for state: "dialing", "ringing", "busy", "connecting", "connected", "disconnecting", "disconnected", "incoming" */ console.log(event.state); }; // Above options as direct events call.onconnected = function () { // Call was connected }; call.ondisconnected = function () { // Call was disconnected };
  • 28. // Receiving a call tel.onincoming = function (event) { var incomingCall = event.call; // Get the number of the incoming call console.log(incomingCall.number); // Answer the call incomingCall.answer(); }; // Disconnect a call call.hangUp(); // Iterating over calls, and taking action depending on their changed status tel.oncallschanged = function (event) { tel.calls.forEach(function (call) { // Log the state of each call console.log(call.state); }); };
  • 30. // SMS object var sms = navigator.mozSMS; // Send a message sms.send("123456789", "Hello world!");
  • 31. // Recieve a message sms.onreceived = function (event) { // Read message console.log(event.message); };
  • 33. var battery = navigator.mozBattery if (battery) { var batteryLevel = Math.round(battery.level * 100) + "%", charging = (battery.charging)? "" : "not ", chargingTime = parseInt(battery.chargingTime / 60, 10, dischargingTime = parseInt(battery.dischargingTime / 60, 10); // Set events battery.addEventListener("levelchange", setStatus, false); battery.addEventListener("chargingchange", setStatus, false); battery.addEventListener("chargingtimechange", setStatus, false); battery.addEventListener("dischargingtimechange", setStatus, false); }
  • 35. // Vibrate for one second navigator.mozVibrate(1000); // Vibration pattern [vibrationTime, pause,…] navigator.mozVibrate([200, 100, 200, 100]); // Vibrate for 5 seconds navigator.mozVibrate(5000); // Turn off vibration navigator.mozVibrate(0);
  • 37. var contact = new mozContact(); contact.init({name: "Tom"}); var request = navigator.mozContacts.save(contact); request.onsuccess = function() { console.log("Success"); }; request.onerror = function() { console.log("Error") };
  • 39. var settings = window.navigator.mozSettings; settings.getLock().set({"background": "pretty.png"});
  • 41. var storage = navigator.getDeviceStorage("videos"), cursor = storage.enumerate(); cursor.onerror = function() { console.error("Error in DeviceStorage.enumerate()", cursor.error.name); }; cursor.onsuccess = function() { if (!cursor.result) return; var file = cursor.result; // If this isn't a video, skip it if (file.type.substring(0, 6) !== "video/") { cursor.continue(); return; } // If it isn't playable, skip it var testplayer = document.createElement("video"); if (!testplayer.canPlayType(file.type)) { cursor.continue(); return; } }
  • 43. // Portrait mode: screen.mozLockOrientation("portrait"); /* Possible values: "landscape" "portrait" "landscape-primary" "landscape-secondary" "portrait-primary" "portrait-secondary" */
  • 45. var connection = window.navigator.mozConnection, online = connection.bandwidth > 0, metered = connectrion.metered;
  • 47. var keyboard = window.navigator.mozKeyboard; keyboard.sendKey(0, keyCode);
  • 48. Web Apps from Mozilla
  • 50. Vibration API, Screen Orientation, Geolocation API, Mouse Lock API, Open WebApps, Network Information API, Battery Status API, Alarm API, Push Notifications API, WebFM API / FMRadio, WebPayment, IndexedDB, Ambient light sensor, Proximity sensor, Notification Security Levels HOSTED Device Storage API Browser API TCP Socket API Contacts API systemXHR WebTelephony, WebSMS, Idle API, Settings API, Power Management API, Mobile Connection API, WiFi Information API, WebBluetooth, Permissions API, Network Stats API, Camera API, Time/Clock API, Attention screen, Voicemail PRIVILEGED CERTIFIED
  • 51. Writing Apps, Mozilla Marketplace
  • 54. Web apps are apps built using standard Web technologies. They work in any modern Web browser, and can be developed using your favorite tools. The Open Web apps project proposes some small additions to existing sites to turn them into apps that run in a rich, fun, and powerful computing environment. These apps run on desktop browsers and mobile devices, and are easier for a user to discover and launch than Web sites.
  • 56. 1. Develop Web App using HTML5, CSS, & Javascript 2. Create an app manifest file 3. Publish/install the app
  • 57. Develop Web App using HTML5, CSS & JavaScript
  • 58. Reuse any existing web site/app or develop from scratch with open web standards. Utilize HTML5 features such as localStorage, offline manifest, IndexedDB and access Web APIs for more options. Responsive web design for adapting to varying resolutions and screen orientation.
  • 59. Create an app manifest file
  • 60. Create a file with a .webapp extension
  • 61. { "version": "1.0", "name": "MozillaBall", "description": "Exciting Open Web development action!", "icons": { "16": "/img/icon-16.png", "48": "/img/icon-48.png", "128": "/img/icon-128.png" }, "developer": { "name": "Mozilla Labs", "url": "http://mozillalabs.com" }, "installs_allowed_from": ["*"], "appcache_path": "/cache.manifest", "locales": { "es": { "description": "¡Acción abierta emocionante del desarrollo del Web!", "developer": { "url": "http://es.mozillalabs.com/" } }, "it": { "description": "Azione aperta emozionante di sviluppo di fotoricettore!", "developer": { "url": "http://it.mozillalabs.com/" } } }, "default_locale": "en" }
  • 67. var request = navigator.mozApps.install( "http://mozillalabs.com/MozillaBall.webapp", { user_id: "some_user" } ); request.onsuccess = function() { // Success! Notification, launch page etc } request.onerror = function() { // Failed. this.error.name has details }
  • 71. Thank you for your attention! Questions