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

浏览器兼容性