Skip to content

Commit 910fabb

Browse files
authored
Amend package:web tweaks to allow package:web roll (flutter#6793)
dart-lang/web@7604578 adds a number of APIs in order to get a more consistent API surface. This includes disablePictureInPicture and disableRemotePlayback, which both take in a bool and not a JSBoolean. However, it can't be rolled into google3 as this package will now be broken due to the way extension type methods take a higher precedence over extension methods. This CL aligns those methods with the package:web equivalent so that usages of these methods can be consistent. controlsList is also amended to take in a String so that if it's ever added to the Web IDL, it doesn't conflict with the package:web definition that will be added then.
1 parent a5dd314 commit 910fabb

File tree

5 files changed

+22
-11
lines changed

5 files changed

+22
-11
lines changed

packages/video_player/video_player_web/CHANGELOG.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1+
## 2.3.1
2+
3+
* Fixes some `package:web` tweaks.
4+
15
## 2.3.0
26

3-
* Migrates package and tests to `package:web``.
7+
* Migrates package and tests to `package:web`.
48
* Fixes infinite event loop caused by `seekTo` when the video ends.
59

610
## 2.2.0

packages/video_player/video_player_web/example/integration_test/pkg_web_tweaks.dart

+6-2
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,16 @@ import 'package:web/web.dart' as web;
1111
/// Adds a `controlsList` and `disablePictureInPicture` getters.
1212
extension NonStandardGettersOnVideoElement on web.HTMLVideoElement {
1313
external web.DOMTokenList? get controlsList;
14-
external JSBoolean get disablePictureInPicture;
14+
// TODO(srujzs): This will be added in `package:web` 0.6.0. Remove this helper
15+
// once it's available.
16+
external bool get disablePictureInPicture;
1517
}
1618

1719
/// Adds a `disableRemotePlayback` getter.
1820
extension NonStandardGettersOnMediaElement on web.HTMLMediaElement {
19-
external JSBoolean get disableRemotePlayback;
21+
// TODO(srujzs): This will be added in `package:web` 0.6.0. Remove this helper
22+
// once it's available.
23+
external bool get disableRemotePlayback;
2024
}
2125

2226
/// Defines JS interop to access static methods from `Object`.

packages/video_player/video_player_web/lib/src/pkg_web_tweaks.dart

+7-4
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,19 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
import 'dart:js_interop';
65
import 'package:web/web.dart' as web;
76

87
/// Adds a "disablePictureInPicture" setter to [web.HTMLVideoElement]s.
98
extension NonStandardSettersOnVideoElement on web.HTMLVideoElement {
10-
external set disablePictureInPicture(JSBoolean disabled);
9+
// TODO(srujzs): This will be added in `package:web` 0.6.0. Remove this helper
10+
// once it's available.
11+
external set disablePictureInPicture(bool disabled);
1112
}
1213

1314
/// Adds a "disableRemotePlayback" and "controlsList" setters to [web.HTMLMediaElement]s.
1415
extension NonStandardSettersOnMediaElement on web.HTMLMediaElement {
15-
external set disableRemotePlayback(JSBoolean disabled);
16-
external set controlsList(JSString? controlsList);
16+
// TODO(srujzs): This will be added in `package:web` 0.6.0. Remove this helper
17+
// once it's available.
18+
external set disableRemotePlayback(bool disabled);
19+
external set controlsList(String? controlsList);
1720
}

packages/video_player/video_player_web/lib/src/video_player.dart

+3-3
Original file line numberDiff line numberDiff line change
@@ -240,11 +240,11 @@ class VideoPlayer {
240240
_videoElement.controls = true;
241241
final String controlsList = options.controls.controlsList;
242242
if (controlsList.isNotEmpty) {
243-
_videoElement.controlsList = controlsList.toJS;
243+
_videoElement.controlsList = controlsList;
244244
}
245245

246246
if (!options.controls.allowPictureInPicture) {
247-
_videoElement.disablePictureInPicture = true.toJS;
247+
_videoElement.disablePictureInPicture = true;
248248
}
249249
}
250250

@@ -254,7 +254,7 @@ class VideoPlayer {
254254
}
255255

256256
if (!options.allowRemotePlayback) {
257-
_videoElement.disableRemotePlayback = true.toJS;
257+
_videoElement.disableRemotePlayback = true;
258258
}
259259
}
260260

packages/video_player/video_player_web/pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: video_player_web
22
description: Web platform implementation of video_player.
33
repository: https://github.com/flutter/packages/tree/main/packages/video_player/video_player_web
44
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22
5-
version: 2.3.0
5+
version: 2.3.1
66

77
environment:
88
sdk: ^3.3.0

0 commit comments

Comments
 (0)