chrome.vpnProvider

Description

Utilisez l'API chrome.vpnProvider pour implémenter un client VPN.

Autorisations

vpnProvider

Garantie de disponibilité

Chrome 43 et versions ultérieures ChromeOS uniquement

Concepts et utilisation

Généralement, chrome.vpnProvider est utilisé comme suit:

  • Créez des configurations VPN en appelant createConfig(). Une configuration VPN est une entrée persistante présentée à l'utilisateur dans une interface utilisateur ChromeOS. L'utilisateur peut sélectionner une configuration VPN dans une liste et s'y connecter ou s'en déconnecter.

  • Ajoutez des écouteurs aux événements onPlatformMessage, onPacketReceived et onConfigRemoved.

  • Lorsque l'utilisateur se connecte à la configuration VPN, onPlatformMessage est reçu avec le message "connected". Le délai entre les messages "connected" et "disconnected" est appelé "session VPN". Pendant cette période, l'extension qui reçoit le message est considérée comme propriétaire de la session VPN.

  • Connectez-vous au serveur VPN et démarrez le client VPN.

  • Définissez les paramètres de la connexion en appelant setParameters().

  • Signaler l'état de la connexion en tant que "connected" en appelant notifyConnectionStateChanged()

  • Lorsque les étapes précédentes ont été effectuées sans erreur, un tunnel virtuel est créé vers la pile réseau de ChromeOS. Les paquets IP peuvent être envoyés via le tunnel en appelant sendPacket(). Tous les paquets provenant de l'appareil ChromeOS seront reçus à l'aide du gestionnaire d'événements onPacketReceived.

  • Lorsque l'utilisateur se déconnecte de la configuration VPN, onPlatformMessage est déclenché avec le message "disconnected".

  • Si la configuration VPN n'est plus nécessaire, elle peut être détruite en appelant destroyConfig().

Types

Parameters

Propriétés

  • adresse

    chaîne

    Adresse IP de l'interface VPN au format CIDR. IPv4 est actuellement le seul mode compatible.

  • broadcastAddress

    string facultatif

    Adresse de diffusion pour l'interface VPN. (par défaut: déduit de l'adresse IP et du masque)

  • dnsServers

    chaîne[]

    Liste des adresses IP des serveurs DNS.

  • domainSearch

    string[] facultatif

    Une liste des domaines de recherche. (par défaut: aucun domaine de recherche)

  • exclusionList

    chaîne[]

    Excluez le trafic réseau du tunnel vers la liste des blocs d'adresses IP au format CIDR. Cela permet de contourner le trafic à destination et en provenance du serveur VPN. Lorsque de nombreuses règles correspondent à une destination, la règle avec le préfixe correspondant le plus long l'emporte. Les entrées qui correspondent au même bloc CIDR sont traitées comme des doublons. Ces doublons de la liste compilée (exclusionList + inclusionList) sont éliminés et l'entrée en double exacte qui sera éliminée n'est pas définie.

  • inclusionList

    chaîne[]

    Incluez le trafic réseau vers la liste des blocs d'adresses IP au format CIDR vers le tunnel. Ce paramètre peut être utilisé pour configurer un tunnel fractionné. Par défaut, aucun trafic n'est dirigé vers le tunnel. Si vous ajoutez l'entrée "0.0.0.0/0" à cette liste, tout le trafic utilisateur est redirigé vers le tunnel. Lorsque de nombreuses règles correspondent à une destination, la règle avec le préfixe correspondant le plus long l'emporte. Les entrées qui correspondent au même bloc CIDR sont traitées comme des doublons. Ces doublons de la liste compilée (exclusionList + inclusionList) sont éliminés et l'entrée en double exacte qui sera éliminée n'est pas définie.

  • mtu

    string facultatif

    Paramètre de MTU pour l'interface VPN. (par défaut: 1 500 octets)

  • se reconnecter

    string facultatif

    Chrome 51 et versions ultérieures

    Indique si l'extension VPN met en œuvre la reconnexion automatique.

    Si la valeur est "true", les messages de plate-forme linkDown, linkUp, linkChanged, suspend et resume sont utilisés pour signaler les événements respectifs. Si la valeur est "false", le système déconnectera de force le VPN si la topologie du réseau change, et l'utilisateur devra se reconnecter manuellement. (par défaut: false)

    Cette propriété est nouvelle dans Chrome 51 et génère une exception dans les versions précédentes. try/catch peut être utilisé pour activer la fonctionnalité de manière conditionnelle en fonction de la compatibilité du navigateur.

PlatformMessage

La plate-forme utilise cette énumération pour informer le client de l'état de la session VPN.

Enum

"connected"
Indique que la configuration VPN est connectée.

"disconnected"
Indique que la configuration VPN est déconnectée.

"error"
Indique qu'une erreur s'est produite au niveau de la connexion VPN, par exemple un délai d'inactivité. La description de l'erreur est fournie en tant qu'argument d'erreur pour onPlatformMessage.

"linkDown"
Indique que la connexion réseau physique par défaut est interrompue.

"linkUp"
Indique que la connexion réseau physique par défaut est de nouveau active.

"linkChanged"
Indique que la connexion réseau physique par défaut a changé (par exemple, wifi->mobile).

"suspend"
Indique que le système d'exploitation est sur le point d'être suspendu. Le VPN doit donc interrompre sa connexion. Il n'est pas garanti que l'extension reçoive cet événement avant la suspension.

"resume"
Indique que le système d'exploitation a repris et que l'utilisateur s'est reconnecté. Le VPN doit donc essayer de se reconnecter.

UIEvent

L'énumération est utilisée par la plate-forme pour indiquer l'événement qui a déclenché onUIEvent.

Enum

"showAddDialog"
Demande au client VPN d'afficher la boîte de dialogue d'ajout de configuration à l'utilisateur.

"showConfigureDialog"
Demande que le client VPN affiche la boîte de dialogue des paramètres de configuration à l'utilisateur.

VpnConnectionState

L'énumération est utilisée par le client VPN pour informer la plate-forme de son état actuel. Cela permet de fournir des messages pertinents à l'utilisateur.

Enum

"connected"
Indique que la connexion VPN a réussi.

"failure"
Indique que la connexion VPN a échoué.

Méthodes

createConfig()

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

Crée une configuration VPN qui persiste sur plusieurs sessions de connexion de l'utilisateur.

Paramètres

  • name

    chaîne

    Nom de la configuration VPN.

  • rappel

    fonction facultative

    Le paramètre callback se présente comme suit :

    (id: string)=>void

    • id

      chaîne

      ID unique pour la configuration créée, ou undefined en cas d'échec.

Renvoie

  • Promesse<chaîne>

    Chrome 96 et versions ultérieures

    Les promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.

destroyConfig()

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

Détruit une configuration VPN créée par l'extension.

Paramètres

  • id

    chaîne

    ID de la configuration VPN à détruire.

  • rappel

    fonction facultative

    Le paramètre callback se présente comme suit :

    ()=>void

Renvoie

  • Promise<void>

    Chrome 96 et versions ultérieures

    Les promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.

notifyConnectionStateChanged()

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

Notifie l'état de la session VPN à la plate-forme. Cette opération ne fonctionne que si la session VPN appartient à l'extension.

Paramètres

  • État de la session VPN du client VPN.

  • rappel

    fonction facultative

    Le paramètre callback se présente comme suit :

    ()=>void

Renvoie

  • Promise<void>

    Chrome 96 et versions ultérieures

    Les promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.

sendPacket()

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

Envoie un paquet IP via le tunnel créé pour la session VPN. Cette opération ne fonctionne que si la session VPN appartient à l'extension.

Paramètres

  • data

    ArrayBuffer

    Paquet IP à envoyer à la plate-forme.

  • rappel

    fonction facultative

    Le paramètre callback se présente comme suit :

    ()=>void

Renvoie

  • Promise<void>

    Chrome 96 et versions ultérieures

    Les promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.

setParameters()

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

Définit les paramètres de la session VPN. Cette méthode doit être appelée immédiatement après la réception de l'élément "connected" de la plate-forme. Cette opération ne fonctionne que si la session VPN appartient à l'extension.

Paramètres

  • paramètres

    Paramètres de la session VPN.

  • rappel

    fonction facultative

    Le paramètre callback se présente comme suit :

    ()=>void

Renvoie

  • Promise<void>

    Chrome 96 et versions ultérieures

    Les promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.

Événements

onConfigCreated

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

Déclenchement lorsqu'une configuration est créée par la plate-forme pour l'extension.

Paramètres

  • rappel

    function

    Le paramètre callback se présente comme suit :

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

    • id

      chaîne

    • name

      chaîne

    • data

      objet

onConfigRemoved

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

Déclenchement lorsqu'une configuration créée par l'extension est supprimée par la plate-forme.

Paramètres

  • rappel

    function

    Le paramètre callback se présente comme suit :

    (id: string)=>void

    • id

      chaîne

onPacketReceived

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

Déclenchement lorsqu'un paquet IP est reçu via le tunnel pour la session VPN appartenant à l'extension.

Paramètres

  • rappel

    function

    Le paramètre callback se présente comme suit :

    (data: ArrayBuffer)=>void

    • data

      ArrayBuffer

onPlatformMessage

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

Déclenché lorsque la plate-forme reçoit un message concernant une configuration VPN appartenant à l'extension.

Paramètres

  • rappel

    function

    Le paramètre callback se présente comme suit :

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

onUIEvent

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

Déclenché lorsqu'un événement d'interface utilisateur est créé pour l'extension. Les événements d'UI sont des signaux de la plate-forme qui indiquent à l'application qu'une boîte de dialogue d'UI doit être présentée à l'utilisateur.

Paramètres

  • rappel

    function

    Le paramètre callback se présente comme suit :

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

    • event
    • id

      string facultatif