If no devices are detected (MediaDevices.enumerateDevices responds with an empty array), the MediaDevices.getUserMedia fails with a OverConstrainedError. This can happen if the webcam for some reason fails (happens from time to time on MacOS), or always in the case of the iOS Simulator. According to the specs, it should have failed with a NotFoundError – OverConstrainedError should happen when the available devices are not able to fulfill the constraints set (e.g. resolution).
I wonder whether there is a fingerprinting issue here, probably not big in practice.
<rdar://problem/34518610>