PresentationRequest: reconnect() Methode

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Wenn die Methode reconnect(presentationId) auf einem PresentationRequest presentationRequest aufgerufen wird, MUSS der User-Agent die folgenden Schritte ausführen, um sich wieder mit einer Präsentation zu verbinden:

Eingabe

Ausgabe

P, ein Promise.

Algorithmus

  1. Verwenden Sie das Einstellungsobjekt des Dokuments, um den Algorithmus zur Verhinderung von gemischten Sicherheitskontexten durchzuführen.

  2. Wenn das Ergebnis des Algorithmus "Verhindert gemischte Sicherheitskontexte" ist und die Präsentationsanfrage-URL von presentationRequest eine a priori nicht authentifizierte URL ist, dann geben Sie ein Promise zurück, das mit einem SecurityError abgelehnt wird, und brechen Sie diese Schritte ab.

  3. Wenn das aktive Sandboxing-Flag-Set des Dokumentobjekts das sandboxed presentation browsing context flag enthält, geben Sie ein Promise zurück, das mit einem SecurityError abgelehnt wird, und brechen Sie diese Schritte ab.

  4. Lassen Sie P ein neues Promise sein.

  5. Geben Sie P zurück, aber führen Sie diese Schritte parallel weiter aus.

  6. Durchsuchen Sie die Menge der kontrollierten Präsentationen nach einer PresentationConnection, die die folgenden Kriterien erfüllt: ihr steuernder Browser-Kontext ist der aktuelle Browsing-Kontext, ihr Präsentationsverbindungszustand ist nicht terminated, ihre Präsentations-URL entspricht einer der Präsentationsanfrage-URLs von presentationRequest und ihr Präsentationsidentifikator entspricht presentationId.

  7. Wenn eine solche PresentationConnection existiert, führen Sie die folgenden Schritte aus:

    1. Lassen Sie S diese PresentationConnection sein.
    2. Lösen Sie P mit S auf.
    3. Wenn der Präsentationsverbindungszustand von S connecting oder connected ist, dann brechen Sie alle verbleibenden Schritte ab.
    4. Setzen Sie den Präsentationsverbindungszustand von S auf connecting.
    5. Erstellen Sie eine Präsentationsverbindung mit S.
    6. Brechen Sie alle verbleibenden Schritte ab.
  8. Durchsuchen Sie die Menge der kontrollierten Präsentationen nach der ersten PresentationConnection, die die folgenden Kriterien erfüllt: ihr Präsentationsverbindungszustand ist nicht terminated, ihre Präsentations-URL entspricht einer der Präsentationsanfrage-URLs von presentationRequest, und ihr Präsentationsidentifikator entspricht presentationId.

  9. Wenn eine solche PresentationConnection existiert, lassen Sie E diese PresentationConnection sein und führen Sie die folgenden Schritte aus:

    1. Erstellen Sie eine neue PresentationConnection S.
    2. Setzen Sie den Präsentationsidentifikator von S auf presentationId.
    3. Setzen Sie die Präsentations-URL von S auf die Präsentations-URL von E.
    4. Setzen Sie den Präsentationsverbindungszustand von S auf connecting.
    5. Fügen Sie S zur Menge der kontrollierten Präsentationen hinzu.
    6. Lösen Sie P mit S auf.
    7. Warteschlangieren Sie eine Aufgabe, um ein vertrauenswürdiges Ereignis mit dem Namen connectionavailable auszulösen, das die PresentationConnectionAvailableEvent-Schnittstelle mit dem connection-Attribut verwendet, das auf S initialisiert ist, bei presentationRequest. Das Ereignis darf nicht blubbern und abgebrochen werden und sollte keine Standardaktion haben.
    8. Erstellen Sie eine Präsentationsverbindung mit S.
    9. Brechen Sie alle verbleibenden Schritte ab.
  10. Lehnen Sie P mit einer NotFoundError Ausnahme ab.

Spezifikationen

Specification
Presentation API
# reconnecting-to-a-presentation

Browser-Kompatibilität