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 |
浏览器兼容性
加载中…