Firefox OS device APIs

by 2 contributors:

There are a number of emerging Web platform standards and device APIs crucial to Firefox OS app development and to Open Web Apps. This article provides a list of pages covering those APIs, as well as the app manifest permissions for each one. For more information see App permissions.

Manifest permission API name Description Minimum app type required access property Default granted Platform/version supported
alarms Alarm Schedule a notification, or schedule an application to be started. hosted none Allow FxOS 1.0.1
audio-capture GetUserMedia Obtain MediaStream from audio input devices, e.g. microphone. This is needed to allow audio capture in Firefox OS 1.2+. hosted none Prompt for all installed App types. FxOS 1.2 for audio
Desktop Firefox 20+
audio-channel-alarm AudioChannels Alarm clock, calendar alarms. privileged none Allow FxOS 1.0.1
audio-channel-content AudioChannels Music, video. hosted none Allow FxOS 1.0.1
audio-channel-normal AudioChannels UI sounds, Web content, music, radio. hosted none Allow FxOS 1.0.1
audio-channel-notification AudioChannels New email, incoming SMS. privileged none Allow FxOS 1.0.1
browser Browser Enables the app to implement a browser in an iframe. privileged none Allow FxOS 1.0.1
camera Camera

Take photos, shoot video, record audio, and control the camera.

Note: camera was limited to certified apps initially because the app sandbox was preventing access to the camera hardware. Fixed from Firefox OS 2.0 onwards.

privileged in Firefox OS 2.0+ internal/certified up to Firefox OS 1.4

none Prompt for all installed App types. FxOS 1.0.1-1.4 certified
FxOS 2.0+ privileged
contacts Contacts Add, read, or modify contacts from the address book on the device and read contacts from the SIM. privileged readonly, readwrite, readcreate, or createonly Prompt for all installed App types. FxOS 1.1
Firefox Android 18
desktop-notification mozNotification for Gecko <22, Notification for Gecko 22+ Display a notification on the user's desktop. Note that this has changed, so for Gecko <22 (Firefox OS <1.2) you need to use mozNotification, while for Gecko 22+ (Firefox 1.2+) you need to use Notification. hosted none Prompt for Web content. Allow for all installed App types. FxOS 1.0.1, Android 4.0, Desktop 4.0 for prefixed version
FxOS 1.2, Android 22, Desktop 22 for non-prefixed version
device-storage:music Device Storage Add, read, or modify music files stored on the device. privileged readonly, readwrite, readcreate, or createonly Prompt FxOS 1.0.1
device-storage:pictures Device Storage Add, read, or modify picture files stored on the device. privileged readonly, readwrite, readcreate, or createonly Prompt FxOS 1.0.1
device-storage:sdcard Device Storage Add, read, or modify files stored on the device's SD card. privileged readonly, readwrite, readcreate, or createonly Prompt FxOS 1.0.1
device-storage:videos Device Storage Add, read, or modify video files stored on the device. privileged readonly, readwrite, readcreate, or createonly Prompt FxOS 1.0.1
fmradio FM Radio Control the FM radio. hosted none Allow FxOS 1.0.1
geolocation Geolocation Obtain the current location of the user. hosted none Prompt (even for certified Apps) FxOS 1.0.1, Desktop Firefox 3.5, Android 4.0
input Keyboard Allows the app to act as a virtual keyboard by listening to focus change events in other apps. privileged none Allow FxOS 1.0.1
mobilenetwork Mobile Network Obtain mobile network information (MCC, MNC, etc.). privileged none Allow FxOS 1.0.1
moz-firefox-accounts Firefox Accounts Allows the use of Firefox Accounts when using the navigator.mozId API. privileged none Prompt for all installed App types. FxOS 2.0
push Simple Push Enable an app to wake up to receive notification. hosted none Allow FxOS 1.1
storage Storage Utilize storage (appcache, pinned apps, IndexedDB) without size limitations. See appcache, IndexedDB. hosted none Allow FxOS 1.0.1,
Desktop (early versions)
systemXHR SystemXHR Allows anonymous (no cookies) cross-origin XHR without the target site having CORS enabled. Similar to the TCP Socket API but restricted to XHR, not just raw sockets, so it is slightly less risky. See XMLHttpRequest. privileged none Allow FxOS 1.0.1
tcp-socket TCP Socket Create TCP sockets and communicate over them. privileged none Allow FxOS 1.0.1,
Desktop (early versions)
video-capture GetUserMedia Obtain MediaStream from video input devices, e.g. camera. This is needed to allow video capture in Firefox OS 1.4+. hosted none Prompt for all installed App types. FxOS 1.4

Note: To declare an app as privileged, you need to put "type" : "privileged" into your app manifest. You don't need to include the type field in your manifest for web apps, as web is the default value.

Note: The summary table on our Web API team's main Wiki page also provides a useful overview of what's supported and where.

 

Document Tags and Contributors

Contributors to this page: garrettn, chrisdavidmills
Last updated by: garrettn,