HTTP Permissions-Policy idle-detection

Typ

Die idle-detection-Direktive steuert den Zugriff auf die Idle Detection API zur Erkennung von Nutzer-Inaktivität.

Syntax

Die Direktive definiert eine Allowlist für Ursprünge, die Idle-Status abfragen dürfen.

http
Permissions-Policy: idle-detection=(self)
Permissions-Policy: idle-detection=(self "https://chat.example.com")
Permissions-Policy: idle-detection=()

Direktiven

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

self
Erlaubt Idle-Detection 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://presence.collab-tool.example.com", die zusätzlich zum Hauptdokument Idle-Detection verwenden dürfen. Für Presence-Widgets.

Beispiele

Die folgenden Beispiele zeigen typische Anwendungsfälle für Collaboration-Tools, Chat-Apps und Session-Management.

Collaboration-Tool mit Presence-Status

Eine Team-Collaboration-App nutzt Idle Detection für automatische Away-Status-Anzeige.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: idle-detection=(self)

<!DOCTYPE html>
<html>
<head><title>Team Chat</title></head>
<body>
  <div id="presence">Status: Active</div>
  <script>
    const idleDetector = new IdleDetector();
    idleDetector.addEventListener('change', () => {
      const userState = idleDetector.userState;
      const screenState = idleDetector.screenState;
      if (userState === 'idle' || screenState === 'locked') {
        document.getElementById('presence').textContent = 'Status: Away';
      } else {
        document.getElementById('presence').textContent = 'Status: Active';
      }
    });
    idleDetector.start({threshold: 60000});
  </script>
</body>
</html>

Enterprise-Portal mit Chat-Widget

Ein Enterprise-Portal erlaubt einem Chat-Widget Idle Detection für Presence-Anzeige.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: idle-detection=(self "https://chat.enterprise.example.com")

<!DOCTYPE html>
<html>
<head><title>Employee Dashboard</title></head>
<body>
  <iframe src="https://chat.enterprise.example.com/widget"
          allow="idle-detection"></iframe>
</body>
</html>

REST-API ohne Activity-Monitoring

Ein API-Endpunkt deaktiviert alle User-Monitoring-APIs.

http
HTTP/1.1 200 OK
Content-Type: application/json
Permissions-Policy: idle-detection=(), compute-pressure=()

{
  "status": "success",
  "data": []
}

Vorteile für die Systemarchitektur

  • Ermöglicht automatische Presence-Status-Updates in Collaboration-Tools
  • Verhindert unerwünschtes Activity-Monitoring durch Drittanbieter
  • Unterstützt Session-Timeout-Management basierend auf User-Activity
  • Reduziert Privacy-Risiken durch Policy-basierte Zugriffskontrolle

Spezifikation

Definiert in der W3C Idle Detection API Spezifikation. Chromium-basierte Browser. Erfordert explizite Nutzer-Permission per Browser-Prompt.

Weitere Spezifikationen

Permissions-Policy Header, Content-Security-Policy Header