PresentationRequest: reconnect() 方法

有限可用性

此功能不是基线,因为它不适用于一些使用最广泛的浏览器。

实验性: 这是一个实验性技术
在生产环境中使用此功能之前,请仔细查看浏览器兼容性表

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,在某些或所有支持的浏览器中可用。

当在 PresentationRequest presentationRequest 上调用 reconnect(presentationId) 方法时,用户代理 必须运行以下步骤以重新连接到演示文稿

输入

输出

P,一个Promise

算法

  1. 使用文档的设置对象运行禁止混合安全上下文算法
  2. 如果算法的结果为 "禁止混合安全上下文",并且 presentationRequest演示文稿请求 URL 是一个先验未经身份验证的 URL,则返回一个Promise,该 Promise 使用SecurityError 被拒绝,并中止这些步骤。
  3. 如果文档对象的活动沙箱标志集 设置了沙箱演示浏览上下文标志,则返回一个Promise,该 Promise 使用SecurityError 被拒绝,并中止这些步骤。
  4. P 为一个新的Promise
  5. 返回 P,但继续并行运行这些步骤。
  6. 受控演示文稿集 中搜索满足以下条件的PresentationConnection:它的控制浏览上下文 是当前的浏览上下文,它的演示连接状态 不是terminated,它的演示文稿 URL 等于 presentationRequest演示文稿请求 URL 之一,并且它的演示文稿标识符 等于 presentationId
  7. 如果存在这样的PresentationConnection,则运行以下步骤
    1. S 为该PresentationConnection
    2. 解析 P,使其包含 S
    3. 如果 S演示连接状态connectingconnected,则中止所有剩余步骤。
    4. S演示连接状态 设置为connecting
    5. 建立演示连接,并包含 S
    6. 中止所有剩余步骤。
  8. 受控演示文稿集 中搜索第一个满足以下条件的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. 解析 P,使其包含 S
    7. 排队一个任务,以触发 一个名为connectionavailable可信事件,该事件使用PresentationConnectionAvailableEvent 接口,其中connection 属性初始化为 S,在 presentationRequest 上。该事件不能冒泡且可取消,并且应没有默认操作。
    8. 建立演示连接,并包含 S
    9. 中止所有剩余步骤。
  10. 拒绝 P,并使用NotFoundError 异常。

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。