PresentationRequest: reconnect() 方法
當對 PresentationRequest 物件 presentationRequest 呼叫 reconnect(presentationId) 方法時,使用者代理必須執行以下步驟來重新連線到演示。
輸入
- presentationRequest,即呼叫了
reconnect()的PresentationRequest物件。 - presentationId,一個有效的 演示識別符號。
輸出
P,一個 Promise。
演算法
-
使用文件的 設定物件,執行 禁止混合安全上下文演算法。
-
如果演算法結果是
"Prohibits Mixed Security Contexts",並且 presentationRequest 的 演示請求 URL 是一個 先驗未經驗證的 URL,則返回一個以SecurityError拒絕的 Promise,並中止這些步驟。 -
如果文件物件的 啟用的沙箱標誌集 設有 受沙箱保護的演示瀏覽上下文標誌,則返回一個以
SecurityError拒絕的 Promise,並中止這些步驟。 -
令 P 為一個新的 Promise。
-
返回 P,但繼續並行執行這些步驟。
-
在 受控演示集 中搜索一個
PresentationConnection,該PresentationConnection滿足以下條件:其 控制瀏覽上下文 是當前 瀏覽上下文,其 演示連線狀態 不是terminated,其 演示 URL 等於 presentationRequest 的 演示請求 URL 之一,並且其 演示識別符號 等於 presentationId。 -
如果存在這樣的
PresentationConnection,則執行以下步驟:- 令 S 為該
PresentationConnection。 - 用 S 解析 P。
- 如果 S 的 演示連線狀態 是
connecting或connected,則中止所有剩餘步驟。 - 將 S 的 演示連線狀態 設定為
connecting。 - 與 S 建立演示連線。
- 中止所有剩餘步驟。
- 令 S 為該
-
在 受控演示集 中搜索第一個
PresentationConnection,該PresentationConnection滿足以下條件:其 演示連線狀態 不是terminated,其 演示 URL 等於 presentationRequest 的 演示請求 URL 之一,並且其 演示識別符號 等於 presentationId。 -
如果存在這樣的
PresentationConnection,令 E 為該PresentationConnection,並執行以下步驟:- 建立一個新的
PresentationConnectionS。 - 將 S 的 演示識別符號 設定為 presentationId。
- 將 S 的 演示 URL 設定為 E 的 演示 URL。
- 將 S 的 演示連線狀態 設定為
connecting。 - 將 S 新增到 受控演示集。
- 用 S 解析 P。
- 在 presentationRequest 上 排隊一個任務 來 觸發 一個名為
connectionavailable的 受信任事件,該事件使用PresentationConnectionAvailableEvent介面,其connection屬性初始化為 S。該事件不得冒泡,不可取消,並且不應有預設操作。 - 與 S 建立演示連線。
- 中止所有剩餘步驟。
- 建立一個新的
-
用
NotFoundError異常 拒絕 P。
規範
| 規範 |
|---|
| Presentation API # reconnecting-to-a-presentation |
瀏覽器相容性
載入中…