chrome.vpnProvider

Description

使用 chrome.vpnProvider API 实现 VPN 客户端。

Permissions

vpnProvider

Availability

Chrome 43+

# Usage

vpnProvider 的典型用法如下:

  • 使用 createConfig 方法创建 VPN 配置。 VPN 配置是在原生 Chrome 操作系统 UI 中向用户显示的持久条目。用户可以从列表中选择 VPN 配置并连接到它或断开连接。
  • onPlatformMessageonPacketReceivedonConfigRemoved 事件添加侦听器。
  • 当用户连接到 VPN 配置时,将收到带有“已连接connected”消息的 onPlatformMessage。我们将消息“连接connected”和“断开连接disconnected”之间的时间段称为 VPN 会话。在此时间段内,接收消息的分机被称为拥有 VPN 会话。
  • 启动与 VPN 服务器的连接并启动 VPN 客户端。
  • 使用 setParameters 设置连接的参数。
  • 使用通知连接状态为“已连接connectednotifyConnectionStateChanged.
  • 当上述步骤无误地完成后,就会创建一个到 Chrome OS 网络堆栈的虚拟隧道。可以使用 sendPacket 通过隧道发送 IP 数据包,并且将使用 onPacketReceived 事件接收源自 Chrome OS 设备的任何数据包。
  • 当用户从 VPN 配置断开连接时,onPlatformMessage 将被触发并显示“断开连接disconnected”消息。
  • 如果不再需要 VPN 配置,可以使用 destroyConfig 销毁它。

Summary

Types

Parameters

PROPERTIES

  • address

    string

    采用 CIDR 表示法的 VPN 接口的 IP 地址。 IPv4 是目前唯一支持的模式。

  • broadcastAddress

    string optional

    VPN 接口的广播地址。 (默认:从 IP 地址和掩码推导出来)

  • dnsServers

    string[]

    DNS 服务器的 IP 列表。

  • domainSearch

    string[] optional

    搜索域列表。 (默认:无搜索域)

  • exclusionList

    string[]

    从隧道中将网络流量排除在 CIDR 表示法的 IP 块列表中。这可用于绕过进出 VPN 服务器的流量。当多个规则匹配一个目的地时,具有最长匹配前缀的规则获胜。对应于相同 CIDR 块的条目被视为重复项。整理的 (exclusionList + containsList) 列表中的此类重复项将被消除,并且将被消除的确切重复条目未定义。

  • inclusionList

    string[]

    将网络流量包含到隧道的 CIDR 表示法中的 IP 块列表中。该参数可用于建立拆分隧道。默认情况下,没有流量被定向到隧道。将条目“0.0.0.0/0”添加到此列表后,所有用户流量都会重定向到隧道。当多个规则匹配一个目的地时,具有最长匹配前缀的规则获胜。对应于相同 CIDR 块的条目被视为重复项。整理的 (exclusionList + containsList) 列表中的此类重复项将被消除,并且将被消除的确切重复条目未定义。

  • mtu

    string optional

    VPN 接口的 MTU 设置。 (默认值:1500 字节)

  • reconnect

    string optional

    Chrome 51+

    VPN 扩展是否实现自动重连。

    如果为 true,则 linkDownlinkUplinkChangedsuspendresume 平台消息将用于通知相应的事件。如果为false,如果网络拓扑发生变化,系统将强制断开VPN,用户需要手动重新连接。 (默认值:false)

    此属性是 Chrome 51 中的新属性;它会在早期版本中产生异常。 try/catch 可用于根据浏览器支持有条件地启用该功能。

PlatformMessage

平台使用枚举来通知客户端 VPN 会话状态。

TYPE

"connected", "disconnected", "error", "linkDown", "linkUp", "linkChanged", "suspend", or "resume"

UIEvent

平台使用枚举来指示触发 onUIEvent 的事件。

TYPE

"showAddDialog", or "showConfigureDialog"

VpnConnectionState

VPN 客户端使用枚举来通知平台其当前状态。这有助于向用户提供有意义的消息。

TYPE

"connected", or "failure"

Methods

createConfig

chrome.vpnProvider.createConfig(
  name: string,
  callback?: function,
)

Promise

创建一个新的 VPN 配置,该配置在用户的多个登录会话中持续存在。

PARAMETERS

  • name

    string

    VPN 配置的名称。

  • callback

    function optional

    The callback parameter looks like:

    (id: string) => void
    • id

      string

      创建的配置的唯一 ID,或在失败时未定义undefined

RETURNS

  • Promise<string>

    Pending

    这仅在未指定回调参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与回调的第一个参数相同。

destroyConfig

chrome.vpnProvider.destroyConfig(
  id: string,
  callback?: function,
)

Promise

销毁由扩展创建的 VPN 配置。

PARAMETERS

  • id

    string

    要销毁的 VPN 配置的 ID。

  • callback

    function optional

    The callback parameter looks like:

    () => void

RETURNS

  • Promise<void>

    Pending

    这仅在未指定回调参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与回调的第一个参数相同。

notifyConnectionStateChanged

chrome.vpnProvider.notifyConnectionStateChanged( state: VpnConnectionState, callback?: function, )

Promise

将 VPN 会话状态通知给平台。只有当 VPN 会话归扩展程序所有时,这才会成功。

PARAMETERS

  • state

    VpnConnectionState

    VPN 客户端的 VPN 会话状态。

  • callback

    function optional

    The callback parameter looks like:

    () => void

RETURNS

  • Promise<void>

    Pending

    这仅在未指定回调参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与回调的第一个参数相同。

sendPacket

chrome.vpnProvider.sendPacket(
  data: ArrayBuffer,
  callback?: function,
)

Promise

通过为 VPN 会话创建的隧道发送 IP 数据包。只有当 VPN 会话归扩展程序所有时,这才会成功。

PARAMETERS

  • data

    ArrayBuffer

    要发送到平台的 IP 数据包。

  • callback

    function optional

    The callback parameter looks like:

    () => void

RETURNS

  • Promise<void>

    Pending

    这仅在未指定回调参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与回调的第一个参数相同。

setParameters

chrome.vpnProvider.setParameters( parameters: Parameters, callback?: function, )

Promise

设置 VPN 会话的参数。这应该在从平台收到“连接connected”后立即调用。只有当 VPN 会话归扩展程序所有时,这才会成功。

PARAMETERS

  • parameters

    Parameters

    VPN 会话的参数。

  • callback

    function optional

    The callback parameter looks like:

    () => void

RETURNS

  • Promise<void>

    Pending

    这仅在未指定回调参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与回调的第一个参数相同。

Events

onConfigCreated

chrome.vpnProvider.onConfigCreated.addListener(
  callback: function,
)

当平台为扩展创建配置时触发。

PARAMETERS

  • callback

    function

    The callback parameter looks like:

    (id: string, name: string, data: object) => void
    • id

      string

    • name

      string

    • data

      object

onConfigRemoved

chrome.vpnProvider.onConfigRemoved.addListener(
  callback: function,
)

当平台删除扩展程序创建的配置时触发。

PARAMETERS

  • callback

    function

    The callback parameter looks like:

    (id: string) => void
    • id

      string

onPacketReceived

chrome.vpnProvider.onPacketReceived.addListener(
  callback: function,
)

当通过分机拥有的 VPN 会话的隧道接收到 IP 数据包时触发。

PARAMETERS

  • callback

    function

    The callback parameter looks like:

    (data: ArrayBuffer) => void
    • data

      ArrayBuffer

onPlatformMessage

chrome.vpnProvider.onPlatformMessage.addListener(
  callback: function,
)

当从平台接收到扩展所拥有的 VPN 配置的消息时触发。

PARAMETERS

  • callback

    function

    The callback parameter looks like:

    (id: string, message: PlatformMessage, error: string) => void

onUIEvent

chrome.vpnProvider.onUIEvent.addListener(
  callback: function,
)

当扩展有 UI 事件时触发。 UI 事件是来自平台的信号,向应用程序指示需要向用户显示 UI 对话框。

PARAMETERS

  • callback

    function

    The callback parameter looks like:

    (event: UIEvent, id?: string) => void

By.一粒技术服务.

results matching ""

    No results matching ""