Capabilities available to pages.
WHAT THEY ARE
Functionality the browser exposes to JavaScript.
WHAT IS AVAILABLE
Storage Network requests Location
Media: camera, microphone, playback
Notifications Clipboard Background processing Device sensors, on mobile
WHAT MOST REQUIRE
A secure connection, and frequently explicit permission from the user.
WHY PERMISSION
Because they access things the user may not wish shared.
WHAT TO DO ABOUT PERMISSION REQUESTS
Ask at the moment the feature is used, with context.
WHAT NOT TO DO
Ask on page load, before the user knows why.
WHY
It is refused, permanently, and cannot easily be asked again.
WHAT TO HANDLE
Refusal, and the feature being unavailable.
WHY
Not every browser supports every capability, and users decline.
WHAT TO BUILD
A functioning experience without the capability, enhanced when it is available.
WHAT TO CHECK
Support for anything you depend on, before depending on it.