WebAPI test:
What is a WebAPI?
WebAPIs are a collection of specifications defined by W3C and others that allow web applications to interact with device hardware and browser capabilities beyond simple script execution, e.g. storage, service workers, etc.
Why are WebAPIs important?
Currently the situation is the following. If you want to deliver the optimal mobile experience to your users you have to go down the native route and build a native Android app and a native iOS app. This is a lot of work and on top of that Google and Apple act as gatekeepers, dictating which apps can and can not be published in their app stores. Plus, if you want to charge for your app, they take a hefty cut and force you to use their own payment systems, which adds a lot of accounting as well.
Therefore, it is in the interest of users and developers that web apps reach parity with native apps both in performance as well as capability. The performance topic is for another day, but on the capability side WebAPIs are here to bridge the gap.
Take a look at my post Let's build a Native(-like) Web App (NWA) for more info on that topic.
Why are special Permissions required for certain WebAPIs?
Some APIs directly access critical device hardware and data or expose powerful UI interfaces, e.g. Geolocation API, Bluetooth API, and Notifications API. For these features the browser takes control of managing access permissions so that users can easily manage and revoke them. Features that require permissions will trigger a popup asking for them when used. There is also a dedicated Permissions API that gives you better control over the permissions UX.
What are Web Workers?
Web workers allow applications to execute computation-intensive JavaScript in the background. That way, the application can execute heavy tasks without congesting the main thread and negatively impacting the performance of the user interface. You can find more information about web workers in the Web Worker API documentation on MDN.