Fix safe login submission, mobile fullscreen, and OIDC discovery

This commit is contained in:
Technomancer702
2026-10-13 18:31:48 -07:00
parent b85b160013
commit ce122eb34b
16 changed files with 479 additions and 72 deletions

View File

@ -0,0 +1,31 @@
/** Invoke fullscreen synchronously within the click/keyboard gesture, then handle its promise. */
const PlayerFullscreen = {
async toggle(video, container, doc = document) {
try {
if (doc.fullscreenElement && doc.exitFullscreen) {
await doc.exitFullscreen();
} else if (doc.webkitFullscreenElement && doc.webkitExitFullscreen) {
await doc.webkitExitFullscreen();
} else if (video?.webkitDisplayingFullscreen && video.webkitExitFullscreen) {
await video.webkitExitFullscreen();
} else {
const target = container || video;
// Some iPhones expose element methods even though element fullscreen is disabled.
const standard = doc.fullscreenEnabled === true ||
(doc.fullscreenEnabled === undefined && !video?.webkitEnterFullscreen);
const prefixed = doc.webkitFullscreenEnabled === true ||
(doc.webkitFullscreenEnabled === undefined && doc.fullscreenEnabled !== false && !video?.webkitEnterFullscreen);
if (standard && target?.requestFullscreen) await target.requestFullscreen();
else if (prefixed && target?.webkitRequestFullscreen) await target.webkitRequestFullscreen();
else if (video?.webkitEnterFullscreen) await video.webkitEnterFullscreen();
else return false;
}
return true;
} catch (error) {
console.error('Fullscreen failed:', error.message);
return false;
}
}
};
if (typeof window !== 'undefined') window.PlayerFullscreen = PlayerFullscreen;
if (typeof module !== 'undefined') module.exports = PlayerFullscreen;