ABCDEFGJKLMTUVWXY
1
This Permissions Matrix is working copy only. See the latest version here -->https://docs.google.com/spreadsheet/ccc?key=0Akyz_Bqjgf5pdENVekxYRjBTX0dCXzItMnRyUU1RQ0E
2
3
4
API nameActionMain API endpointsWeb ContentInstalled Web AppPrivileged Web AppCertified Web AppVisual IndicatorPermission NameCommentsDetailed Security Model
5
API nameWhat does this API do?Associated objects and functionsRegular web contentA regular web appA "privileged" web app; more power = more responsibilityA "certified" web app; device-critical applicationsShow a visual indicator to the user while this permission is active?The permisison string(s) checked in code.Link to detailed security model, which this spreadsheet attempts to summarize.
6
Battery Status APIInformation about battery charge level and if device is plugged in.navigator.mozBatteryImplicit (no permission)Implicit (no permission)Implicit (no permission)Implicit (no permission)NoNo permission requiredhttps://wiki.mozilla.org/WebAPI/Security/Battery
7
Network Information APIGet basic information about current network connectivity.navigator.mozConnectionImplicit (no permission)Implicit (no permission)Implicit (no permission)Implicit (no permission)NoNo permission requiredhttps://wiki.mozilla.org/WebAPI/Security/NetworkInfo
8
Vibration APInavigator.vibrateImplicit (no permission)Implicit (no permission)Implicit (no permission)Implicit (no permission)NoNo permission requiredhttps://wiki.mozilla.org/WebAPI/Security/Vibration
9
Web Activities Delegate an activity to another application.
Implicit (no permission)Implicit (no permission)Implicit (no permission)Implicit (no permission)NoNo permission required
10
Screen Orientationlock screen orientation, detect changesscreen.mozOrientation
screen.mozLockOrientation
Fullscreen content only (no permission)Implicit (no permission)Implicit (no permission)Implicit (no permission)NoNo permission requiredNo permission involved, rather access is based on installed status, or for content, a check to allow fullscreen access only. (http://mxr.mozilla.org/mozilla-central/source/dom/base/nsScreen.cpp#331)https://wiki.mozilla.org/WebAPI/Security/ScreenOrientation
11
attention screenAbility to open the attention screen window that obstruct what user is doing or wake up the screen. Use case: call screenGaia permission. Allow content to open a window in front of all other content. Used by telephone and SMS.None (DENY_ACTION)None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)attentionThis is the permissions currently checked in gaia: https://github.com/mozilla-b2g/gaia/blob/master/apps/system/js/attention_screen.js#L199Not a web api, so no permission model.
12
Background servicesEnable a web application to run in the background and perform tasks like syncing or respond to incoming messages.Gaia only. An app can specify a 'background_page' attribute in its manifest, in order to have this page loaded at startup. However the app must have this permission in order for the page to be loaded.None (DENY_ACTION)None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)NobackgroundThis permission is to allow certified apps to run services at startup. The permission in code is currently 'background', though some apps request 'backgroundservice' as well. Not sure which is the 'final' permission name.Not a web api, so no permission model.
13
IdleAPINotify the App if the user is idle.navigator.addIdleObserver
navigator.removeIdleObserver
None (DENY_ACTION)None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)Noidlehttps://wiki.mozilla.org/WebAPI/Security/Idle
14
MobileConnection APIThis exposes information about the current mobile voice and data connection to (certain) HTML content.navigator.mozMobileConnectionNone (DENY_ACTION)None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)Nomobileconnectionhttps://wiki.mozilla.org/WebAPI/Security/MobileConnection
15
Open WebappsInstall web apps and manage installed webapps. Also allows an installed
webapp to get payment information. Everything needed to build a Open
WebApps app store.
navigator.mozApps.mgmtNone (DENY_ACTION)None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)webapps-manageInstalls are OS mediated. Only certified apps can get access to "webapps-manage" permission.Not documented.
16
PermissionsAllow an app to manage app permissions in a centralized location navigator.mozPermissionSettingsNone (DENY_ACTION)None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)permissionshttps://wiki.mozilla.org/WebAPI/Security/PermissionsAPI
17
PowerManagementAPITurn on/off screen, cpu, device power, etc. Listen and inspect resource lock events.navigator.power.*None (DENY_ACTION)None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)Nopowerhttps://wiki.mozilla.org/WebAPI/Security/PowerManagement
18
Settings APIAPI to configure device settingsnavigator.mozSettingsNone (DENY_ACTION)None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)NosettingsAccess flag can set more fine grained permissions. (read, write etc)https://wiki.mozilla.org/WebAPI/Security/Settings
19
WebBluetoothLow level access to Bluetooth hardware.navigator.mozBluetoothNone (DENY_ACTION)None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)YesmozBluetoothhttps://wiki.mozilla.org/WebAPI/Security/Bluetooth
20
WebSMSAll SMS APIsnavigator.mozSmsNone (DENY_ACTION)None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)Yessmshttps://wiki.mozilla.org/WebAPI/Security/SMS
21
WebTelephonyAll Web Telephony APIsnavigator.mozTelephonyNone (DENY_ACTION)None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)Yestelephonyhttps://wiki.mozilla.org/WebAPI/Security/WebTelephony
22
Browser APIEnables implementing a browser completely in web technologies.Ability to embed <iframe mozbrowser>None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)Implicit (ALLOW_ACTION)Nomozbrowserhttps://wiki.mozilla.org/WebAPI/Security/BrowserAPI
23
TCP Socket APIConnect to TCP socketnavigator.mozTCPSocketNone (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)Implicit (ALLOW_ACTION)Notcp-socketPermission string will change to 'networktcp' if/when https://bugzilla.mozilla.org/show_bug.cgi?id=783716 lands. Or maybe it will be 'network-tcp' in line with https://bug778326.bugzilla.mozilla.org/attachment.cgi?id=658698https://wiki.mozilla.org/WebAPI/Security/TCPSocket
24
Alarm APISchedule a notification, or for an application to be started, at a specific time.navigator.mozAlarms.*None (DENY_ACTION)Implicit (ALLOW_ACTION)Implicit (ALLOW_ACTION)Implicit (ALLOW_ACTION)Noalarmshttps://wiki.mozilla.org/WebAPI/Security/Alarm
25
Push Notifications APIimplicit the platform to send notification messages to specific applications.?None (DENY_ACTION)Implicit (ALLOW_ACTION)Implicit (ALLOW_ACTION)Implicit (ALLOW_ACTION)NopushNot implemented yet.https://wiki.mozilla.org/WebAPI/Security/pushNotificationsAPI
26
Camera APITake photos, shoot video, control camera (NOTE: this permission may need to be split into separate permissions)navigator.mozCameras.*None (DENY_ACTION)None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)YescameraNote that web activities are expected to provide mediated access to web content and installed web apps.The original discussion was at https://wiki.mozilla.org/WebAPI/Security/Camera.

The final API is much more simple, and not exposed to web content or regular apps.

27
Contacts APIAdd/Read/Modify the device contacts address book.navigator.mozContactsNone (DENY_ACTION)None (DENY_ACTION)Explicit (PROMPT_ACTION)Implicit (ALLOW_ACTION)Nocontactshttps://wiki.mozilla.org/WebAPI/Security/Contacts
28
Device Storage APIAdd/Read/Modify files stored on a central location on the device. For example the "pictures" folder on modern desktop platforms or the photo storage in mobile devices.navigator.getDeviceStorage(mediaType)None (DENY_ACTION)None (DENY_ACTION)Explicit (PROMPT_ACTION)Implicit (ALLOW_ACTION)Nodevice-storage:apps
device-storage:pictures
device-storage:music
device-storage:videos
device-storage:sdcard
The different permissions grant access to different areas storage locations.https://wiki.mozilla.org/WebAPI/Security/DeviceStorage
29
WiFi Information API Enumerate available WiFi networks, get signal strength and name of currently connected network, etc.navigator.mozWifiManagerNone (DENY_ACTION)None (DENY_ACTION)Explicit (PROMPT_ACTION)Implicit (ALLOW_ACTION)Yeswifi-manageSettings app has both 'wifi' and 'wifi-manage' ? Which is correct?https://wiki.mozilla.org/WebAPI/Security/Wifi
30
Geolocation APIObtain current location of usernavigator.geolocation.*Explicit (PROMPT_ACTION)Explicit (PROMPT_ACTION)Explicit (PROMPT_ACTION)Implicit (ALLOW_ACTION)Yesgeolocationhttps://wiki.mozilla.org/WebAPI/Security/Geolocation
31
ResourceLock APIPrevent the screen from being dimmed or switched offnavigator.mozPower.addWakeLockListener() ???implicit(fullscreen), explicit (otherwise)implicitimplicitimplicitNowake-lock-screen ? or is this just under 'power'https://wiki.mozilla.org/WebAPI/Security/ResourceLock
32
FM Radionavigator.mozFMRadio.*?Explicit (PROMPT_ACTION)Implicit (ALLOW_ACTION)Implicit (ALLOW_ACTION)Implicit (ALLOW_ACTION)fmradiohttps://wiki.mozilla.org/WebAPI/Security/FMRadioAPI
33
Desktop Notification API? Explicit (PROMPT_ACTION)Implicit (ALLOW_ACTION)Implicit (ALLOW_ACTION)Implicit (ALLOW_ACTION)desktop-notificationI think this is http://mxr.mozilla.org/mozilla-central/source/dom/src/notification/
34
mozAppAbility to embed mozapp framesAbility to embed <iframe mozapp>None (DENY_ACTION)None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)embed-apps
35
Network Stats ManageNone (DENY_ACTION)None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)networkstats-managebug 746069
36
Network EventsPermission to monitor network uploads and downloadsmoznetworkupload and moznetworkdownload event handlers (window events)None (DENY_ACTION)None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)network-eventsThis is a guess? I think this is intended for system app only?
37
systemclockNone (DENY_ACTION)None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)systemclock
38
VoicemailNone (DENY_ACTION)None (DENY_ACTION)None (DENY_ACTION)Implicit (ALLOW_ACTION)voicemailSame permission model as telephony.
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94