Skip to content

Commit 1bb6ab5

Browse files
Fixed crashing null check bug in camera_web because of accessing a non-nullable field on browsers without facingMode available
1 parent cfe2fe2 commit 1bb6ab5

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

packages/camera/camera_web/lib/src/camera_service.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -200,11 +200,11 @@ class CameraService {
200200

201201
// A list of facing mode capabilities as
202202
// the camera may support multiple facing modes.
203-
final List<String> facingModeCapabilities = videoTrackCapabilities
204-
.facingMode
205-
.toDart
206-
.map((JSString e) => e.toDart)
207-
.toList();
203+
final List<String> facingModeCapabilities =
204+
videoTrackCapabilities.facingModeNullable?.toDart
205+
.map((JSString e) => e.toDart)
206+
.toList() ??
207+
<String>[];
208208

209209
if (facingModeCapabilities.isNotEmpty) {
210210
final String facingModeCapability = facingModeCapabilities.first;

packages/camera/camera_web/lib/src/pkg_web_tweaks.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ extension NonStandardFieldsOnMediaTrackCapabilities on MediaTrackCapabilities {
3131

3232
@JS('torch')
3333
external JSArray<JSBoolean>? get torchNullable;
34+
35+
@JS('facingMode')
36+
external JSArray<JSString>? get facingModeNullable;
3437
}
3538

3639
/// Adds missing fields to [MediaTrackSettings]

0 commit comments

Comments
 (0)