chrome.vpnProvider

refresh date: 2026-09-25 robots: noindex

Description

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

Autorisations

vpnProvider

Disponibilité

Chrome 43 ou version ultérieure ChromeOS uniquement

Utilisation

Voici un exemple d'utilisation courant de vpnProvider :

  • Créez des configurations VPN à l'aide de la méthode createConfig. Une configuration VPN est une entrée persistante présentée à l'utilisateur dans une UI ChromeOS native. L'utilisateur peut sélectionner une configuration VPN dans une liste, puis 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". La période entre les messages "connected" et "disconnected" est appelée "session VPN". Pendant cette période, l'extension qui reçoit le message est considérée comme propriétaire de la session VPN.

  • Établissez la connexion au serveur VPN et démarrez le client VPN.

  • Définissez les paramètres de la connexion à l'aide de setParameters.

  • Indiquez l'état de la connexion comme "connected" à l'aide de notifyConnectionStateChanged.

  • Une fois les étapes ci-dessus 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 à l'aide de sendPacket, et tous les paquets provenant de l'appareil ChromeOS seront reçus à l'aide de l'événement 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 à l'aide de 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

    chaîne facultatif

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

  • dnsServers

    chaîne[]

    Liste des adresses IP des serveurs DNS.

  • domainSearch

    string[] facultatif

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

  • exclusionList

    chaîne[]

    Excluez du tunnel le trafic réseau vers la liste des blocs d'adresses IP au format CIDR. Cela peut être utilisé pour contourner le trafic vers et depuis le serveur VPN. Lorsque plusieurs 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 dans la liste assemblée (exclusionList + inclusionList) sont éliminés, et l'entrée exacte en double 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 dans le tunnel. Ce paramètre peut être utilisé pour configurer un tunnel fractionné. Par défaut, aucun trafic n'est dirigé vers le tunnel. L'ajout de l'entrée "0.0.0.0/0" à cette liste redirige tout le trafic utilisateur vers le tunnel. Lorsque plusieurs 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 dans la liste assemblée (exclusionList + inclusionList) sont éliminés, et l'entrée exacte en double qui sera éliminée n'est pas définie.

  • mtu

    chaîne facultatif

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

  • reconnecter

    chaîne facultatif

    Chrome 51 ou version ultérieure

    Indique si l'extension VPN implémente la reconnexion automatique.

    Si la valeur est "true", les messages de plate-forme linkDown, linkUp, linkChanged, suspend et resume seront 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. Elle génère une exception dans les versions antérieures. try/catch peut être utilisé pour activer la fonctionnalité de manière conditionnelle en fonction de la compatibilité du navigateur.

PlatformMessage

L'énumération est utilisée par la plate-forme pour informer le client de l'état de la session VPN.

Énumération

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

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

"error"
Indique qu'une erreur s'est produite dans la connexion VPN, par exemple un délai avant expiration. Une description de l'erreur est fournie en tant qu'argument d'erreur à 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 opérationnelle.

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

"suspend"
Indique que l'OS se prépare à suspendre l'activité, de sorte que le VPN doit interrompre sa connexion. Il n'est pas garanti que l'extension reçoive cet événement avant la suspension.

"resume"
Indique que l'OS 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.

Énumération

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

"showConfigureDialog"
Demande au client VPN d'afficher 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.

Énumération

"connected"
Indique que la connexion VPN a bien été établie.

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

Méthodes

createConfig()

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

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

Paramètres

  • nom

    chaîne

    Nom de la configuration VPN.

  • callback

    function facultatif

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

    (id: string) => void

    • id

      chaîne

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

Renvoie

  • Promise<string>

    Chrome 96 ou version ultérieure

    Renvoie une promesse qui se résout lorsque la configuration est créée ou qui est rejetée en cas d'erreur.

    Les promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

destroyConfig()

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

Supprime une configuration VPN créée par l'extension.

Paramètres

  • id

    chaîne

    ID de la configuration VPN à détruire.

  • callback

    function facultatif

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

    () => void

Renvoie

  • Promise<void>

    Chrome 96 ou version ultérieure

    Renvoie une promesse qui se résout lorsque la configuration est détruite ou qui est rejetée en cas d'erreur.

    Les promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

notifyConnectionStateChanged()

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

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

Paramètres

  • État de la session VPN du client VPN.

  • callback

    function facultatif

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

    () => void

Renvoie

  • Promise<void>

    Chrome 96 ou version ultérieure

    Renvoie une promesse qui se résout lorsque la notification est terminée ou qui est rejetée en cas d'erreur.

    Les promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

sendPacket()

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

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

Paramètres

  • données

    ArrayBuffer

    Paquet IP à envoyer à la plate-forme.

  • callback

    function facultatif

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

    () => void

Renvoie

  • Promise<void>

    Chrome 96 ou version ultérieure

    Renvoie une promesse qui se résout lorsque le paquet est envoyé ou qui est rejetée en cas d'erreur.

    Les promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

setParameters()

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

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

Paramètres

  • paramètres

    Paramètres de la session VPN.

  • callback

    function facultatif

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

    () => void

Renvoie

  • Promise<void>

    Chrome 96 ou version ultérieure

    Renvoie une promesse qui se résout lorsque les paramètres sont définis ou qui est rejetée en cas d'erreur.

    Les promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

Événements

onConfigCreated

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

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

Paramètres

  • callback

    fonction

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

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

    • id

      chaîne

    • nom

      chaîne

    • données

      objet

onConfigRemoved

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

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

Paramètres

  • callback

    fonction

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

    (id: string) => void

    • id

      chaîne

onPacketReceived

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

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

Paramètres

  • callback

    fonction

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

    (data: ArrayBuffer) => void

    • données

      ArrayBuffer

onPlatformMessage

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

Déclenché lorsqu'un message est reçu de la plate-forme pour une configuration VPN appartenant à l'extension.

Paramètres

  • callback

    fonction

    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 se produit 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

  • callback

    fonction

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

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

    • événement
    • id

      chaîne facultatif