in src/devicecontroller/DefaultDeviceController.ts [1016:1048]
private handleGetUserMediaError(error: Error, errorTimeMs?: number): void {
if (!error) {
throw new GetUserMediaError(error);
}
switch (error.name) {
case 'NotReadableError':
case 'TrackStartError':
throw new NotReadableError(error);
case 'NotFoundError':
case 'DevicesNotFoundError':
throw new NotFoundError(error);
case 'NotAllowedError':
case 'PermissionDeniedError':
case 'SecurityError':
if (
errorTimeMs &&
errorTimeMs < DefaultDeviceController.permissionDeniedOriginDetectionThresholdMs
) {
throw new PermissionDeniedError(error, 'Permission denied by browser');
} else {
throw new PermissionDeniedError(error, 'Permission denied by user');
}
case 'OverconstrainedError':
case 'ConstraintNotSatisfiedError':
throw new OverconstrainedError(error);
case 'TypeError':
throw new TypeError(error);
case 'AbortError':
default:
throw new GetUserMediaError(error);
}
}