Web API Controversy

Very much still a work in progress, please help out in the repository.

Background: Lots of discussions and arguments on Twitter, GitHub, blogs and mailing lists. A summary can be found in eg. this GitHub issue and this CNET article.
Google Chrome Mozilla Firefox Apple Safari Spec
Engine Blink Gecko WebKit -
Serial API
(Chrome 89)

Spec
Web Bluetooth API
(Chrome 56)

Spec
Web HID API
(Chrome 89)

Spec
Web NFC API
(Chrome 89)

Spec
Web USB API
(Chrome 61)

Spec

Serial API in Google Chrome

Version
Chrome for desktop release 89
Notes
Feature on Chromestatus.

Serial API in Mozilla Firefox

Notes
See WebUSB API position on Mozilla Specification Positions

Serial API in Apple Safari

on
Notes
Outlined as vulnerable to fingerprinting in the Tracking Prevention in WebKit blog post on the WebKit blog

Web Bluetooth API in Google Chrome

Version
Chrome for desktop and Android, release 56
Notes
Feature on Chromestatus.

Web Bluetooth API in Mozilla Firefox

Notes
See Web Bluetooth position on Mozilla Specification Positions

Web Bluetooth API in Apple Safari

Notes
Outlined as vulnerable to fingerprinting in the Tracking Prevention in WebKit blog post on the WebKit blog

Web HID API in Google Chrome

Version
Chrome for desktop release 89
Notes
Feature on Chromestatus.

Web HID API in Mozilla Firefox

Web HID API in Apple Safari

Notes
Outlined as vulnerable to fingerprinting in the Tracking Prevention in WebKit blog post on the WebKit blog

Web NFC API in Google Chrome

Version
Chrome for Android release 89
Notes
Feature on Chromestatus.

Web NFC API in Mozilla Firefox

Notes
See Web NFC position on Mozilla Specification Positions

Web NFC API in Apple Safari

Notes
Outlined as vulnerable to fingerprinting in the Tracking Prevention in WebKit blog post on the WebKit blog and explicitly opposed to in a response on the webkit-dev email list.

Web USB API in Google Chrome

Version
Chrome for desktop and Android, release 61
Notes
Feature on Chromestatus.

Web USB API in Mozilla Firefox

Notes
See WebUSB API position on Mozilla Specification Positions

Web USB API in Apple Safari

Notes
Outlined as vulnerable to fingerprinting in the Tracking Prevention in WebKit blog post on the WebKit blog

Is this a FAQ?

Yes, it is, but as you can see it is kind of empty, so help contribute to it. PRs are welcome.

See more

"Controversy"? Are these bad and dangerous APIs?

There is no such conclusion to make. "Controversy" means that there isn't yet a consensus on the future of these APIs, with browser vendors having different thoughts and opinions about the design. This can be for a wide range of reasons and the intention of this page is not to pick sides and frame an API as either good or bad. The purpose of this site is purely to collect references to each browser vendors own public signals, to help the community better get a vendor independent overview of the status of these APIs. Also highlighted is their respective status on the W3C standards track.

Why this selection of APIs?

The initial data set comes from my, @voxpelli's, personal observations of APIs with controversy around them and where hard facts has often been hard to find. Rather than just collect those references for myself, I gathered them on this page. I will happily list additional APIs that people have observed a controversy in.

What are W3C groups?

Simplified one can say that there are two kinds, the Community Groups and the Working Groups.

See more

Do W3C Community Groups publish W3C standards?

No, they publish Community Group Reports and Drafts of those. In our table these will be refered to as "Community Report" and "Community Draft".

See more

Who publishes W3C standards?

The W3C Working Groups publishes W3C standards and does so at different maturity levels, indicating how far and how stable the standard is.

See more

What are the maturity levels of W3C standards?

Working Draft (WD), Candidate Recommendation (CR), Proposed Recommendation (PR), W3C Recommendation (REC)

See more

How do I contribute to this list?

Open issues and/or PRs about the viewpoints of browsers on controversial APIs with references to sources on that. Also come with suggestion on way to evolve this page and how to make it a more objective and reflective resource.

See more