HTTP Permissions-Policy ambient-light-sensor

Typ

Die ambient-light-sensor-Direktive steuert den Zugriff auf die Ambient Light Sensor API zur Messung der Umgebungslichtstärke.

Syntax

Die Direktive definiert eine Allowlist für Ursprünge, die Umgebungslicht-Daten lesen dürfen.

http
Permissions-Policy: ambient-light-sensor=(self)
Permissions-Policy: ambient-light-sensor=(self "https://trusted.com")
Permissions-Policy: ambient-light-sensor=()

Direktiven

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

self
Erlaubt Ambient-Light-Sensor-Zugriff 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://analytics.example.com", die zusätzlich zum Hauptdokument Zugriff erhalten. Für Drittanbieter-Widgets mit adaptiver UI.

Beispiele

Die folgenden Beispiele zeigen typische Anwendungsfälle für adaptive UIs und automatische Theme-Anpassung.

Progressive Web App mit adaptiver Helligkeit

Eine PWA passt die UI-Helligkeit automatisch an das Umgebungslicht an für bessere Lesbarkeit.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: ambient-light-sensor=(self)

<!DOCTYPE html>
<html>
<head><title>Reading App</title></head>
<body>
  <script>
    const sensor = new AmbientLightSensor();
    sensor.addEventListener('reading', () => {
      const lux = sensor.illuminance;
      if (lux < 50) {
        document.body.classList.add('dark-theme');
      } else {
        document.body.classList.remove('dark-theme');
      }
    });
    sensor.start();
  </script>
</body>
</html>

Analytics-Dashboard mit Theme-Optimierung

Ein Dashboard-Widget von einem Drittanbieter erhält Zugriff auf Lichtsensor für automatische Theme-Anpassung.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: ambient-light-sensor=(self "https://dashboard.analytics.com")

<!DOCTYPE html>
<html>
<head><title>Admin Console</title></head>
<body>
  <iframe src="https://dashboard.analytics.com/widget" allow="ambient-light-sensor"></iframe>
</body>
</html>

REST-API ohne Sensor-Zugriff

Ein API-Endpunkt deaktiviert alle Sensor-APIs inklusive Lichtsensor.

http
HTTP/1.1 200 OK
Content-Type: application/json
Permissions-Policy: ambient-light-sensor=(), accelerometer=(), gyroscope=()

{
  "status": "success",
  "theme": "auto"
}

Vorteile für die Systemarchitektur

  • Verhindert Fingerprinting durch Umgebungslicht-Daten von Drittanbietern
  • Reduziert unerwünschten Sensor-Zugriff in eingebetteten iFrames
  • Ermöglicht adaptive UI-Gestaltung für bessere User Experience
  • Schützt vor Akku-Drain durch unkontrollierten Sensor-Polling

Spezifikation

Definiert in der W3C Generic Sensor API und Ambient Light Sensor Spezifikation. Browser-Support limitiert auf Chromium-basierte Browser.

Weitere Spezifikationen

Permissions-Policy Header, Content-Security-Policy Header