From c3b28b8278f9da2efda45168164f4e5f93ffba20 Mon Sep 17 00:00:00 2001 From: R0m1k3 Date: Tue, 11 Aug 2026 10:39:38 +0200 Subject: [PATCH] =?UTF-8?q?fix(player):=20le=20bouton=20plein=20=C3=A9cran?= =?UTF-8?q?=20ne=20faisait=20rien=20sous=20Chrome?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La détection lisait `webkitFullscreenElement` et `mozFullScreenElement` via un cast `dynamic`. dart2js ne retombe pas sur la propriété JavaScript quand le membre n'est pas déclaré sur la classe `Document` : il lève un `NoSuchMethodError`, visible en console sous la forme `method not found: 'gaR5'`. Le test d'état échouait donc à chaque appel, avant même de pouvoir demander le plein écran. Seule l'API non préfixée est désormais utilisée ; elle est supportée par tous les navigateurs visés. Co-Authored-By: Claude Opus 5 --- lib/features/iptv/screens/player_screen.dart | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/features/iptv/screens/player_screen.dart b/lib/features/iptv/screens/player_screen.dart index 26a6ffa..786ff87 100644 --- a/lib/features/iptv/screens/player_screen.dart +++ b/lib/features/iptv/screens/player_screen.dart @@ -103,12 +103,15 @@ class _PlayerScreenState extends ConsumerState { super.dispose(); } - bool get _documentIsFullscreen { - final doc = html.document; - return doc.fullscreenElement != null || - (doc as dynamic).webkitFullscreenElement != null || - (doc as dynamic).mozFullScreenElement != null; - } + /// Ne teste que l'API non préfixée. + /// + /// Les variantes `webkitFullscreenElement` / `mozFullScreenElement` étaient + /// lues via un cast `dynamic` : dart2js ne retombe pas sur la propriété JS + /// pour un membre absent de la classe `Document`, il lève un + /// `NoSuchMethodError`. Le getter échouait donc systématiquement, et le + /// bouton plein écran ne faisait rien. L'API standard est supportée par + /// tous les navigateurs visés. + bool get _documentIsFullscreen => html.document.fullscreenElement != null; void _syncFullscreenState() { final value = _documentIsFullscreen;