PresentationRequest: reconnect() 方法
当在 PresentationRequest
presentationRequest 上调用 reconnect(presentationId)
方法时,用户代理 必须运行以下步骤以重新连接到演示文稿
输入
- presentationRequest,
PresentationRequest
对象,已在该对象上调用了reconnect()
。 - presentationId,一个有效的演示文稿标识符
输出
P,一个Promise。
算法
- 使用文档的设置对象运行禁止混合安全上下文算法。
- 如果算法的结果为
"禁止混合安全上下文"
,并且 presentationRequest 的演示文稿请求 URL 是一个先验未经身份验证的 URL,则返回一个Promise,该 Promise 使用SecurityError
被拒绝,并中止这些步骤。 - 如果文档对象的活动沙箱标志集 设置了沙箱演示浏览上下文标志,则返回一个Promise,该 Promise 使用
SecurityError
被拒绝,并中止这些步骤。 - 令 P 为一个新的Promise。
- 返回 P,但继续并行运行这些步骤。
- 在受控演示文稿集 中搜索满足以下条件的
PresentationConnection
:它的控制浏览上下文 是当前的浏览上下文,它的演示连接状态 不是terminated
,它的演示文稿 URL 等于 presentationRequest 的演示文稿请求 URL 之一,并且它的演示文稿标识符 等于 presentationId。 - 如果存在这样的
PresentationConnection
,则运行以下步骤- 令 S 为该
PresentationConnection
。 - 解析 P,使其包含 S。
- 如果 S 的演示连接状态 为
connecting
或connected
,则中止所有剩余步骤。 - 将 S 的演示连接状态 设置为
connecting
。 - 建立演示连接,并包含 S。
- 中止所有剩余步骤。
- 令 S 为该
- 在受控演示文稿集 中搜索第一个满足以下条件的
PresentationConnection
:它的演示连接状态 不是terminated
,它的演示文稿 URL 等于 presentationRequest 的演示文稿请求 URL 之一,并且它的演示文稿标识符 等于 presentationId。 - 如果存在这样的
PresentationConnection
,则令 E 为该PresentationConnection
,并运行以下步骤- 创建一个新的
PresentationConnection
S。 - 将 S 的演示文稿标识符 设置为 presentationId。
- 将 S 的演示文稿 URL 设置为 E 的演示文稿 URL。
- 将 S 的演示连接状态 设置为
connecting
。 - 将 S 添加到受控演示文稿集 中。
- 解析 P,使其包含 S。
- 排队一个任务,以触发 一个名为
connectionavailable
的可信事件,该事件使用PresentationConnectionAvailableEvent
接口,其中connection
属性初始化为 S,在 presentationRequest 上。该事件不能冒泡且可取消,并且应没有默认操作。 - 建立演示连接,并包含 S。
- 中止所有剩余步骤。
- 创建一个新的
- 拒绝 P,并使用
NotFoundError
异常。
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。