WebAPI: Difference between revisions

Jump to navigation Jump to search
3,450 bytes added ,  15 November 2013
Add comments on how availability is determined
(Add comments on how availability is determined)
Line 22: Line 22:


See definition of template or mouseovers for definitions of status.
See definition of template or mouseovers for definitions of status.
-->
<!--
See https://mxr.mozilla.org/mozilla-central/source/dom/apps/src/PermissionsTable.jsm for "app", "privileged", and "certified" access information
-->
-->
{| cellpadding="2" border="1"
{| cellpadding="2" border="1"
Line 34: Line 37:
| Allow placing and answering phone calls as well as build in-call UI.
| Allow placing and answering phone calls as well as build in-call UI.
| W3C ED (SysApps)
| W3C ED (SysApps)
<!--
* dom.telephony.enabled=false in all.js, true in b2g.js
-->
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
Line 42: Line 48:
| Control device vibration for things like haptic feedback in games. Not intended to solve things like vibration for notification.
| Control device vibration for things like haptic feedback in games. Not intended to solve things like vibration for notification.
| W3C CR (Device APIs)
| W3C CR (Device APIs)
<!--
* dom.vibrator.enabled set to true in Navigator.cpp
-->
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Android}}
| {{WebAPIPlatformAvailability|implemented|Android}}
Line 50: Line 59:
| Send/receive SMS messages as well as manage messages stored on device.
| Send/receive SMS messages as well as manage messages stored on device.
| W3C ED (SysApps)
| W3C ED (SysApps)
<!--
* dom.sms.enabled=false in all.js, true in b2g.js
-->
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|offByDefault|Android}}
| {{WebAPIPlatformAvailability|offByDefault|Android}}
Line 58: Line 70:
| Get notifications when user is idle.
| Get notifications when user is idle.
| Needs plan
| Needs plan
<!--
* dom.idle-observers-api.enabled=true in all.js, not set elsewhere
* Navigator.cpp checks for nsIPrincipal::APP_STATUS_CERTIFIED
-->
| {{WebAPIPlatformAvailability|implemented|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Android}}
| {{WebAPIPlatformAvailability|implemented|Android}}
Line 66: Line 82:
| Get notification when screen orientation changes as well as control which screen orientation a page/app wants.
| Get notification when screen orientation changes as well as control which screen orientation a page/app wants.
| W3C WD (WebApps)
| W3C WD (WebApps)
<!--
FIXME:  is presence of implementations in widget/{android,gonk} sufficient?
-->
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Android}}
| {{WebAPIPlatformAvailability|implemented|Android}}
Line 74: Line 93:
| Set system-wide configurations that are saved permanently on the device.
| Set system-wide configurations that are saved permanently on the device.
| Future?
| Future?
<!--
FIXME:  more details here
* dom.mozSettings.enabled=false in all.js, true in b2g.js
* dom/settings/SettingsManager.js uses permission manager to check for settings-read/settings-write permissions
* Settings.perms.testExactPermissionFromPrincipal defined in netwerk/base/public/nsIPermissionManager.idl
** unsure where implementation is
-->
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
Line 82: Line 108:
| Turn on/off screen, cpu, device power, etc. Listen and inspect resource lock events.
| Turn on/off screen, cpu, device power, etc. Listen and inspect resource lock events.
| Future?
| Future?
<!--
* MozPowerManager.webidl
* how do we know this is b2g-only?
* certified only check is done in nsIPermissionManager
-->
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
Line 90: Line 121:
| Expose signal strength, operator, etc for GSM and other mobile connections. This does not cover WiFi.
| Expose signal strength, operator, etc for GSM and other mobile connections. This does not cover WiFi.
| Future?
| Future?
<!--
* dom/network/interfaces/moz.build contains
** if CONFIG['MOZ_B2G_RIL']: ... nsIMobileConnectionProvider.idl
* permission check in dom/network/src/MobileConnection.cpp
-->
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
Line 98: Line 134:
| Low-level TCP socket API. Will also include SSL support.
| Low-level TCP socket API. Will also include SSL support.
| W3C ED (SysApps)
| W3C ED (SysApps)
<!--
* dom.mozTCPSocket.enabled only true in b2g/app/b2g.js, not in all.js
-->
| {{WebAPIPlatformAvailability|privilegedAndCertified|Desktop}}
| {{WebAPIPlatformAvailability|privilegedAndCertified|Desktop}}
| {{WebAPIPlatformAvailability|offByDefault|Android}}
| {{WebAPIPlatformAvailability|offByDefault|Android}}
Line 106: Line 145:
| Access to the end user's location.
| Access to the end user's location.
| W3C CR
| W3C CR
<!--
* geolocation PROMPT_ACTION for app/privileged/certified
-->
| {{WebAPIPlatformAvailability|implemented|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Android}}
| {{WebAPIPlatformAvailability|implemented|Android}}
Line 114: Line 156:
| Privileged API to get a list of available WiFi networks. Also get signal strength and name of currently connected network, etc.
| Privileged API to get a list of available WiFi networks. Also get signal strength and name of currently connected network, etc.
| Future?
| Future?
<!--
* wifi-manage permission
* FIXME:  how do we know this is only built on b2g?
-->
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
Line 122: Line 168:
| Add/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.
| Add/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.
| Needs plan
| Needs plan
<!--
* device.storage.enabled pref=false in all.js, true in b2g.js
* webapps-manage permission
-->
| {{WebAPIPlatformAvailability|offByDefault|Desktop}}
| {{WebAPIPlatformAvailability|offByDefault|Desktop}}
| {{WebAPIPlatformAvailability|offByDefault|Android}}
| {{WebAPIPlatformAvailability|offByDefault|Android}}
Line 130: Line 180:
| Add/Read/Modify the device contacts address book.
| Add/Read/Modify the device contacts address book.
| W3C ED (SysApps)
| W3C ED (SysApps)
<!--
* privileged:  prompt
* certified:  allowed
* android:  #ifdef NIGHTLY_BUILD in mobile/android/base/AndroidManifest.xml.in
-->
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|offByDefault|Android}}
| {{WebAPIPlatformAvailability|offByDefault|Android}}
Line 138: Line 193:
| Lock access to mouse and get access to movement deltas rather than coordinates.
| Lock access to mouse and get access to movement deltas rather than coordinates.
| W3C ED
| W3C ED
| {{WebAPIPlatformAvailability|implemented|Desktop}}
<!--
* FIXME:  I see implementation but it's unclear how it's not implemented on b2g
-->| {{WebAPIPlatformAvailability|implemented|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
| {{WebAPIPlatformAvailability|notPlanned|B2G}}
| {{WebAPIPlatformAvailability|notPlanned|B2G}}
Line 146: Line 203:
| Install web apps and manage installed webapps. Also allows an installed webapp to get payment information. Everything needed to build a Open WebApps app store.
| Install web apps and manage installed webapps. Also allows an installed webapp to get payment information. Everything needed to build a Open WebApps app store.
| W3C WD (SysApps)
| W3C WD (SysApps)
<!--
* interfaces/apps in dom/moz.build with no conditionals
-->
| {{WebAPIPlatformAvailability|implemented|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Android}}
| {{WebAPIPlatformAvailability|implemented|Android}}
Line 154: Line 214:
| Low level access to Bluetooth hardware.
| Low level access to Bluetooth hardware.
| Future?
| Future?
<!--
* only certified in dom/apps/src/PermissionsTable.jsm
* MOZ_B2G_BT=1 with --enable-b2g-bt
-->
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
Line 162: Line 226:
| Get basic information about current network connectivity.  Example:  "How fast of a connection do I have?".
| Get basic information about current network connectivity.  Example:  "How fast of a connection do I have?".
| W3C ED
| W3C ED
<!--
* no explicit permission
* FIXME:  I only see the JNI implementation in {hal,widget}/android
-->
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Android}}
| {{WebAPIPlatformAvailability|implemented|Android}}
Line 170: Line 238:
| Information about battery charge level and if device is plugged in.
| Information about battery charge level and if device is plugged in.
| W3C CR (DAP)
| W3C CR (DAP)
<!--
* no explicit permission
* hal/*/*Battery.cpp
-->
| {{WebAPIPlatformAvailability|implemented|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Android}}
| {{WebAPIPlatformAvailability|implemented|Android}}
Line 178: Line 250:
| Schedule a notification, or for an application to be started, at a specific time.
| Schedule a notification, or for an application to be started, at a specific time.
| W3C WD (SysApps)
| W3C WD (SysApps)
<!--
* FIXME:  I see it in hal/gonk/GonkHal.cpp but does just the lack of
  existence of alarm stuff in other HALs denote "notImplemented"?
-->
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}
| {{WebAPIPlatformAvailability|notImplemented|Android}}
| {{WebAPIPlatformAvailability|notImplemented|Android}}
Line 186: Line 262:
| Enables implementing a browser completely in web technologies.
| Enables implementing a browser completely in web technologies.
| Future?
| Future?
<!--
* FIXME:  dom.mozBrowserFramesEnabled in b2g.js (nowhere else?)
-->
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}
| {{WebAPIPlatformAvailability|notImplemented|Android}}
| {{WebAPIPlatformAvailability|notImplemented|Android}}
Line 194: Line 273:
| Set current time. Timezone will go in the Settings API.
| Set current time. Timezone will go in the Settings API.
| Future?
| Future?
<!--
* FIXME:  implementation
-->
| {{WebAPIPlatformAvailability|notimplemented|Desktop}}
| {{WebAPIPlatformAvailability|notimplemented|Desktop}}
| {{WebAPIPlatformAvailability|notimplemented|Android}}
| {{WebAPIPlatformAvailability|notimplemented|Android}}
| {{WebAPIPlatformAvailability|implemented|B2G}}
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}
| {{bug|714357}}, {{bug|714358}}, [http://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/f382abb068abd4c5 API proposed]
| {{bug|714357}}, {{bug|714358}}, [http://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/f382abb068abd4c5 API proposed]
|-
|-
Line 202: Line 284:
| Delegate an activity to another application.
| Delegate an activity to another application.
| Discussed in Device APIs
| Discussed in Device APIs
<!--
* implemented for B2G in 78f4674cf0 (git SHA-1)
* FIXME:  unclear how not implemented elsewhere
** stuff in ../installer/package-manifest.in ?
-->
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}
| {{WebAPIPlatformAvailability|notImplemented|Android}}
| {{WebAPIPlatformAvailability|notImplemented|Android}}
Line 210: Line 297:
| Allow the platform to send notification messages to specific applications.
| Allow the platform to send notification messages to specific applications.
| [http://telefonicaid.github.com/WebAPISpecs/Push/index.html W3C ED (Webapps)]
| [http://telefonicaid.github.com/WebAPISpecs/Push/index.html W3C ED (Webapps)]
<!--
* pref "services.push.enabled" true on b2g, false on Android and in libpref all.js
* Desktop: ae0f6c30aaf (git SHA-1) (bug 863599) but services.push.enabled still false
-->
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}
| {{WebAPIPlatformAvailability|notImplemented|Android}}
| {{WebAPIPlatformAvailability|notImplemented|Android}}
Line 218: Line 309:
| Allow Settings app to manage all app permissions in a centralized location
| Allow Settings app to manage all app permissions in a centralized location
| Future?
| Future?
<!--
* dom.mozPermissionSettings.enabled=true in b2g.js, false in all.js
-->
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
Line 226: Line 320:
| For FM radio feature.  
| For FM radio feature.  
| Future?
| Future?
<!--
* FIXME:  dom/fmradio/moz.build has if CONFIG'[MOZ_B2G_FM]' => non-B2G unimplemented?
* configure.in sets MOZ_B2G_FM=1 if target=android & --with-gonk set
-->
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
Line 234: Line 332:
| Writable files with locking.
| Writable files with locking.
| Needs plan
| Needs plan
<!--
* implemented everywhere in 5f93a8930 (git SHA-1) (bug 726593)
-->
| {{WebAPIPlatformAvailability|implemented|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Android}}
| {{WebAPIPlatformAvailability|implemented|Android}}
Line 242: Line 343:
| Monitor data usage and expose data to privileged apps
| Monitor data usage and expose data to privileged apps
| Future?
| Future?
<!--
* dom.mozNetworkStats.enabled=true in b2g.js, false in all.js
-->
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
| {{WebAPIPlatformAvailability|notPlanned|Android}}
Line 250: Line 354:
| Allow web content to initiate payments and refunds for virtual goods. For the server implementation, see [[WebAPI/WebPayment|WebPaymentProvider]].
| Allow web content to initiate payments and refunds for virtual goods. For the server implementation, see [[WebAPI/WebPayment|WebPaymentProvider]].
| [http://lists.w3.org/Archives/Public/public-webpayments/2013May/0025.html Beginning]
| [http://lists.w3.org/Archives/Public/public-webpayments/2013May/0025.html Beginning]
<!--
* dom.mozPay.enabled=true in at least b2g.js and mobile/...js
-->
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Android}}
| {{WebAPIPlatformAvailability|implemented|Android}}
Line 258: Line 365:
| Client-side storage of structured data and high performance searches on this data
| Client-side storage of structured data and high performance searches on this data
| W3C WD
| W3C WD
<!--
* in dom/moz.build
-->
| {{WebAPIPlatformAvailability|implemented|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Android}}
| {{WebAPIPlatformAvailability|implemented|Android}}
Line 266: Line 376:
| Blob support for Zip file contents
| Blob support for Zip file contents
| Future?
| Future?
<!--
* dom.archivereader.enabled = false in all.js
-->
| {{WebAPIPlatformAvailability|offByDefault|Desktop}}
| {{WebAPIPlatformAvailability|offByDefault|Desktop}}
| {{WebAPIPlatformAvailability|offByDefault|Android}}
| {{WebAPIPlatformAvailability|offByDefault|Android}}
Line 274: Line 387:
| Device light sensor support
| Device light sensor support
| W3C WD
| W3C WD
<!--
* implementations spread out
* FIXME:  dougt thinks maybe some Mac support exists
-->
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Android}}
| {{WebAPIPlatformAvailability|implemented|Android}}
Line 282: Line 399:
| Device proximity sensor support
| Device proximity sensor support
| W3C WD
| W3C WD
<!--
* implementations spread out
-->
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}
| {{WebAPIPlatformAvailability|implemented|Android}}
| {{WebAPIPlatformAvailability|implemented|Android}}
Line 290: Line 410:
| External (non-same origin) XMLHttpRequests
| External (non-same origin) XMLHttpRequests
| ?
| ?
<!--
* FIXME:  I see the permission checks "SystemXHR" but I don't see how it's _not_ implemented on desktop/Android
-->
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}
| {{WebAPIPlatformAvailability|notImplemented|Android}}
| {{WebAPIPlatformAvailability|notImplemented|Android}}
canmove, Confirmed users
901

edits

Navigation menu