PresentationRequest: reconnect() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

當對 PresentationRequest 物件 presentationRequest 呼叫 reconnect(presentationId) 方法時,使用者代理必須執行以下步驟來重新連線到演示

輸入

輸出

P,一個 Promise

演算法

  1. 使用文件的 設定物件,執行 禁止混合安全上下文演算法

  2. 如果演算法結果是 "Prohibits Mixed Security Contexts",並且 presentationRequest演示請求 URL 是一個 先驗未經驗證的 URL,則返回一個以 SecurityError 拒絕的 Promise,並中止這些步驟。

  3. 如果文件物件的 啟用的沙箱標誌集 設有 受沙箱保護的演示瀏覽上下文標誌,則返回一個以 SecurityError 拒絕的 Promise,並中止這些步驟。

  4. P 為一個新的 Promise

  5. 返回 P,但繼續並行執行這些步驟。

  6. 受控演示集 中搜索一個 PresentationConnection,該 PresentationConnection 滿足以下條件:其 控制瀏覽上下文 是當前 瀏覽上下文,其 演示連線狀態 不是 terminated,其 演示 URL 等於 presentationRequest演示請求 URL 之一,並且其 演示識別符號 等於 presentationId

  7. 如果存在這樣的 PresentationConnection,則執行以下步驟:

    1. S 為該 PresentationConnection
    2. S 解析 P
    3. 如果 S演示連線狀態connectingconnected,則中止所有剩餘步驟。
    4. S演示連線狀態 設定為 connecting
    5. S 建立演示連線
    6. 中止所有剩餘步驟。
  8. 受控演示集 中搜索第一個 PresentationConnection,該 PresentationConnection 滿足以下條件:其 演示連線狀態 不是 terminated,其 演示 URL 等於 presentationRequest演示請求 URL 之一,並且其 演示識別符號 等於 presentationId

  9. 如果存在這樣的 PresentationConnection,令 E 為該 PresentationConnection,並執行以下步驟:

    1. 建立一個新的 PresentationConnection S
    2. S演示識別符號 設定為 presentationId
    3. S演示 URL 設定為 E演示 URL
    4. S演示連線狀態 設定為 connecting
    5. S 新增到 受控演示集
    6. S 解析 P
    7. presentationRequest排隊一個任務觸發 一個名為 connectionavailable受信任事件,該事件使用 PresentationConnectionAvailableEvent 介面,其 connection 屬性初始化為 S。該事件不得冒泡,不可取消,並且不應有預設操作。
    8. S 建立演示連線
    9. 中止所有剩餘步驟。
  10. NotFoundError 異常 拒絕 P

規範

規範
Presentation API
# reconnecting-to-a-presentation

瀏覽器相容性