HTTP Permissions-Policy screen-wake-lock

Typ

Die screen-wake-lock-Direktive steuert den Zugriff auf die Screen Wake Lock API zur Verhinderung von Display-Standby.

Syntax

Die Direktive definiert eine Allowlist für Ursprünge, die Screen Wake Locks anfordern dürfen.

http
Permissions-Policy: screen-wake-lock=(self)
Permissions-Policy: screen-wake-lock=(self "https://slides.presentation.com")
Permissions-Policy: screen-wake-lock=()

Direktiven

Die Direktive unterstützt Standard-Allowlist-Werte für präzise Zugriffssteuerung.

self
Erlaubt Screen-Wake-Lock nur für das Hauptdokument des gleichen Ursprungs. Eingebettete iFrames von anderen Ursprüngen werden blockiert.
origin-list
Liste von Ursprüngen in Anführungszeichen, z.B. "https://player.video-platform.example.com", die zusätzlich zum Hauptdokument Wake Locks verwenden dürfen. Für Video-Player-Widgets.

Beispiele

Die folgenden Beispiele zeigen typische Anwendungsfälle für Präsentationen, Video-Streaming und E-Reader-Apps.

Presentation-App mit Wake Lock

Eine Präsentations-Anwendung verhindert Display-Standby während Slideshows.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: screen-wake-lock=(self), fullscreen=(self)

<!DOCTYPE html>
<html>
<head><title>Slide Deck</title></head>
<body>
  <button id="present">Start Presentation</button>
  <script>
    document.getElementById('present').addEventListener('click', async () => {
      const wakeLock = await navigator.wakeLock.request('screen');
      console.log('Screen Wake Lock acquired');
      // Release on visibility change
      document.addEventListener('visibilitychange', () => {
        if (document.visibilityState === 'hidden') {
          wakeLock.release();
        }
      });
    });
  </script>
</body>
</html>

Video-Platform mit Embedded-Player

Eine Video-Plattform erlaubt einem eingebetteten Player Screen Wake Lock während Wiedergabe.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: screen-wake-lock=(self "https://player.streaming.example.com")

<!DOCTYPE html>
<html>
<head><title>Watch Video</title></head>
<body>
  <iframe src="https://player.streaming.example.com/video/12345"
          allow="screen-wake-lock"></iframe>
</body>
</html>

REST-API ohne Wake Lock

Ein API-Endpunkt deaktiviert alle Power-Management-APIs.

http
HTTP/1.1 200 OK
Content-Type: application/json
Permissions-Policy: screen-wake-lock=()

{
  "status": "success",
  "content_url": "https://cdn.example.com/content"
}

Vorteile für die Systemarchitektur

  • Verhindert störenden Display-Standby bei aktiver Content-Nutzung
  • Reduziert unerwünschte Wake-Lock-Anforderungen durch Drittanbieter
  • Unterstützt unterbrechungsfreie Präsentationen und Video-Streaming
  • Schützt vor Battery-Drain durch unkontrollierte Wake Locks

Spezifikation

Definiert in der W3C Screen Wake Lock API Spezifikation. Automatische Release bei Tab-Inaktivität. Browser-Support variiert. Keine User-Permission erforderlich.

Weitere Spezifikationen

Permissions-Policy Header, Content-Security-Policy Header