chrome.vpnProvider

Descripción

Usa la API de chrome.vpnProvider para implementar un cliente de VPN.

Permisos

vpnProvider

Disponibilidad

Chrome 43 y versiones posteriores Solo en ChromeOS

Uso

El uso típico de vpnProvider es el siguiente:

  • Crea configuraciones de VPN con el método createConfig. Una configuración de VPN es una entrada persistente que se muestra al usuario en una IU nativa de ChromeOS. El usuario puede seleccionar una configuración de VPN de una lista y conectarse a ella o desconectarse de ella.

  • Agrega objetos de escucha a los eventos onPlatformMessage, onPacketReceived y onConfigRemoved.

  • Cuando el usuario se conecte a la configuración de VPN, se recibirá onPlatformMessage con el mensaje "connected". Nos referimos al período entre los mensajes "connected" y "disconnected" como una sesión de VPN. Durante este período, se dice que la extensión que recibe el mensaje es propietaria de la sesión de VPN.

  • Inicia la conexión al servidor de VPN y, luego, inicia el cliente de VPN.

  • Establece los parámetros de la conexión con setParameters.

  • Notifica el estado de la conexión como "connected" con notifyConnectionStateChanged.

  • Cuando los pasos anteriores se completan sin errores, se crea un túnel virtual en la pila de red de ChromeOS. Los paquetes IP se pueden enviar a través del túnel con sendPacket, y los paquetes que se originen en el dispositivo ChromeOS se recibirán con el evento onPacketReceived.

  • Cuando el usuario se desconecta de la configuración de la VPN, se activará onPlatformMessage con el mensaje "disconnected".

  • Si la configuración de VPN ya no es necesaria, se puede destruir con destroyConfig.

Tipos

Parameters

Propiedades

  • dirección

    string

    Dirección IP de la interfaz de VPN en notación CIDR. Actualmente, IPv4 es el único modo compatible.

  • broadcastAddress

    cadena opcional

    Dirección de transmisión de la interfaz de VPN. (predeterminado: se deduce de la dirección IP y la máscara)

  • dnsServers

    string[]

    Es una lista de IPs para los servidores DNS.

  • domainSearch

    string[] opcional

    Es una lista de dominios de búsqueda. (valor predeterminado: sin dominio de búsqueda)

  • exclusionList

    string[]

    Excluye del túnel el tráfico de red a la lista de bloques de IP en notación CIDR. Esto se puede usar para omitir el tráfico hacia y desde el servidor de VPN. Cuando muchas reglas coinciden con un destino, gana la regla con el prefijo coincidente más largo. Las entradas que corresponden al mismo bloque CIDR se tratan como duplicados. Estos duplicados en la lista combinada (exclusionList + inclusionList) se eliminan, y no se define la entrada duplicada exacta que se eliminará.

  • inclusionList

    string[]

    Incluye el tráfico de red en la lista de bloques de IP en notación CIDR para el túnel. Este parámetro se puede usar para configurar un túnel dividido. De forma predeterminada, no se dirige tráfico al túnel. Si agregas la entrada "0.0.0.0/0" a esta lista, todo el tráfico del usuario se redireccionará al túnel. Cuando muchas reglas coinciden con un destino, gana la regla con el prefijo coincidente más largo. Las entradas que corresponden al mismo bloque CIDR se tratan como duplicados. Estos duplicados en la lista combinada (exclusionList + inclusionList) se eliminan, y no se define la entrada duplicada exacta que se eliminará.

  • mtu

    cadena opcional

    Es el parámetro de configuración de la MTU para la interfaz de VPN. (predeterminado: 1,500 bytes)

  • Volver a conectar

    cadena opcional

    Chrome 51 y versiones posteriores

    Indica si la extensión de VPN implementa la reconexión automática.

    Si es verdadero, se usarán los mensajes de plataforma linkDown, linkUp, linkChanged, suspend y resume para indicar los eventos respectivos. Si es falso, el sistema desconectará la VPN de forma forzada si cambia la topología de la red, y el usuario deberá volver a conectarse de forma manual. (valor predeterminado: false)

    Esta propiedad es nueva en Chrome 51; generará una excepción en versiones anteriores. Se puede usar try/catch para habilitar la función de forma condicional según la compatibilidad del navegador.

PlatformMessage

La plataforma usa la enumeración para notificar al cliente el estado de la sesión de VPN.

Enum

"connected"
Indica que se conectó la configuración de VPN.

"disconnected"
Indica que se desconectó la configuración de la VPN.

"error"
Indica que se produjo un error en la conexión VPN, por ejemplo, un tiempo de espera agotado. Se proporciona una descripción del error como el argumento de error para onPlatformMessage.

"linkDown"
Indica que la conexión de red física predeterminada está inactiva.

"linkUp"
Indica que se restableció la conexión de red física predeterminada.

"linkChanged"
Indica que cambió la conexión de red física predeterminada, p.ej., de Wi-Fi a móvil.

"suspend"
Indica que el SO se está preparando para suspender la conexión, por lo que la VPN debe desconectarse. No se garantiza que la extensión reciba este evento antes de suspenderse.

"resume"
Indica que el SO se reanudó y que el usuario volvió a acceder, por lo que la VPN debería intentar volver a conectarse.

UIEvent

La plataforma usa la enumeración para indicar el evento que activó onUIEvent.

Enum

"showAddDialog"
Solicita que el cliente de VPN muestre al usuario el cuadro de diálogo para agregar la configuración.

"showConfigureDialog"
Solicita que el cliente de VPN muestre al usuario el cuadro de diálogo de configuración.

VpnConnectionState

El cliente de VPN usa la enumeración para informar a la plataforma sobre su estado actual. Esto ayuda a proporcionar mensajes significativos al usuario.

Enum

"connected"
Especifica que la conexión de VPN se estableció correctamente.

"failure"
Especifica que falló la conexión de VPN.

Métodos

createConfig()

Promesa
chrome.vpnProvider.createConfig(
  name: string,
  callback?: function,
)
: Promise<string>

Crea una nueva configuración de VPN que persiste en varias sesiones de acceso del usuario.

Parámetros

  • nombre

    string

    Es el nombre de la configuración de VPN.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (id: string) => void

    • id

      string

      Es un ID único para la configuración creada o undefined si falla.

Muestra

  • Promise<string>

    Chrome 96 y versiones posteriores

    Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.

destroyConfig()

Promesa
chrome.vpnProvider.destroyConfig(
  id: string,
  callback?: function,
)
: Promise<void>

Destruye una configuración de VPN creada por la extensión.

Parámetros

  • id

    string

    ID de la configuración de VPN que se destruirá.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    () => void

Muestra

  • Promise<void>

    Chrome 96 y versiones posteriores

    Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.

notifyConnectionStateChanged()

Promesa
chrome.vpnProvider.notifyConnectionStateChanged(
  state: VpnConnectionState,
  callback?: function,
)
: Promise<void>

Notifica el estado de la sesión de VPN a la plataforma. Esto solo se realizará correctamente cuando la extensión sea propietaria de la sesión de VPN.

Parámetros

  • Es el estado de la sesión de VPN del cliente de VPN.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    () => void

Muestra

  • Promise<void>

    Chrome 96 y versiones posteriores

    Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.

sendPacket()

Promesa
chrome.vpnProvider.sendPacket(
  data: ArrayBuffer,
  callback?: function,
)
: Promise<void>

Envía un paquete IP a través del túnel creado para la sesión de VPN. Esto solo se realizará correctamente cuando la extensión sea propietaria de la sesión de VPN.

Parámetros

  • datos

    ArrayBuffer

    Es el paquete de IP que se enviará a la plataforma.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    () => void

Muestra

  • Promise<void>

    Chrome 96 y versiones posteriores

    Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.

setParameters()

Promesa
chrome.vpnProvider.setParameters(
  parameters: Parameters,
  callback?: function,
)
: Promise<void>

Establece los parámetros de la sesión de VPN. Se debe llamar inmediatamente después de que se reciba "connected" de la plataforma. Esto solo se realizará correctamente cuando la extensión sea propietaria de la sesión de VPN.

Parámetros

  • Parámetros

    Son los parámetros de la sesión de VPN.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    () => void

Muestra

  • Promise<void>

    Chrome 96 y versiones posteriores

    Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.

Eventos

onConfigCreated

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

Se activa cuando la plataforma crea una configuración para la extensión.

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

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

    • id

      string

    • nombre

      string

    • datos

      objeto

onConfigRemoved

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

Se activa cuando la plataforma quita una configuración creada por la extensión.

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (id: string) => void

    • id

      string

onPacketReceived

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

Se activa cuando se recibe un paquete IP a través del túnel para la sesión de VPN que posee la extensión.

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (data: ArrayBuffer) => void

    • datos

      ArrayBuffer

onPlatformMessage

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

Se activa cuando se recibe un mensaje de la plataforma para una configuración de VPN que pertenece a la extensión.

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

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

onUIEvent

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

Se activa cuando hay un evento de IU para la extensión. Los eventos de la IU son indicadores de la plataforma que le indican a la app que se debe mostrar un diálogo de la IU al usuario.

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

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

    • evento
    • id

      cadena opcional