Description
Utilisez l'API chrome.vpnProvider pour implémenter un client VPN.
Autorisations
vpnProviderDisponibilité
Utilisation
Voici une utilisation typique de vpnProvider :
- Créez des configurations VPN à l'aide de la méthode - createConfig. Une configuration VPN est une entrée persistante affiché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,- onPacketReceivedet- onConfigRemoved.
- Lorsque l'utilisateur se connecte à la configuration VPN, - onPlatformMessageest reçu avec le message- "connected". Nous appelons la période entre les messages- "connected"et- "disconnected"une 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 une 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.
- Lorsque les étapes ci-dessus sont 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. 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, - onPlatformMessageest 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
- 
    adressechaîne Adresse IP de l'interface VPN au format CIDR. IPv4 est actuellement le seul mode compatible. 
- 
    broadcastAddresschaîne facultative Adresse de diffusion pour l'interface VPN. (par défaut : déduit de l'adresse IP et du masque) 
- 
    dnsServerschaîne[] Liste des adresses IP des serveurs DNS. 
- 
    domainSearchstring[] facultatif Liste des domaines de recherche. (par défaut : aucun domaine de recherche) 
- 
    exclusionListchaî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. Lorsqu'une destination correspond à plusieurs règles, c'est celle dont le préfixe correspondant est le plus long qui s'applique. Les entrées correspondant au même bloc CIDR sont traitées comme des doublons. Ces doublons dans 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. 
- 
    inclusionListchaîne[] Incluez le trafic réseau à la liste des blocs d'adresses IP au format CIDR vers le tunnel. Ce paramètre peut être utilisé pour configurer un tunnel partagé. 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 sera redirigé vers le tunnel. Lorsqu'une destination correspond à plusieurs règles, c'est celle dont le préfixe correspondant est le plus long qui s'applique. Les entrées correspondant au même bloc CIDR sont traitées comme des doublons. Ces doublons dans 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. 
- 
    mtuchaîne facultative Paramètre MTU pour l'interface VPN. (par défaut : 1 500 octets) 
- 
    reconnectchaîne facultative Chrome 51 et versions ultérieuresIndique si l'extension VPN implémente la reconnexion automatique. Si la valeur est "true", les messages de plate-forme linkDown,linkUp,linkChanged,suspendetresumeseront utilisés pour signaler les événements respectifs. Si la valeur est "false", le système déconnecte de force le VPN si la topologie du réseau change, et l'utilisateur doit se reconnecter manuellement. (par défaut : false)Cette propriété est nouvelle dans Chrome 51. Elle générera une exception dans les versions antérieures. try/catch peut être utilisé pour activer conditionnellement la fonctionnalité 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 d'attente). 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 inactive.
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 la connexion, de sorte que le VPN doit la couper. Il n'est pas garanti que l'extension reçoive cet événement avant la suspension.
"resume" 
 Indique que l'OS a repris son activité 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 "Ajouter une 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 été établie.
"failure" 
 Indique que la connexion VPN a échoué.
Méthodes
createConfig()
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
- 
    nomchaîne Nom de la configuration VPN. 
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :(id: string) => void - 
    idchaîne Identifiant unique de la configuration créée ou undefineden cas d'échec.
 
- 
    
Renvoie
- 
            Promise<string> Chrome 96 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
): Promise<void>
Détruit une configuration VPN créée par l'extension.
Paramètres
- 
    idchaîne ID de la configuration VPN à détruire. 
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :() => void 
Renvoie
- 
            Promise<void> Chrome 96 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
): Promise<void>
Indique l'état de la session VPN à la plate-forme. Cette opération ne réussit que lorsque la session VPN appartient à l'extension.
Paramètres
- 
    stateÉtat de la session VPN du client VPN. 
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :() => void 
Renvoie
- 
            Promise<void> Chrome 96 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
sendPacket()
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 lorsque la session VPN appartient à l'extension.
Paramètres
- 
    donnéesArrayBuffer Paquet IP à envoyer à la plate-forme. 
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :() => void 
Renvoie
- 
            Promise<void> Chrome 96 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
setParameters()
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 lorsque la session VPN appartient à l'extension.
Paramètres
- 
    paramètresParamètres de la session VPN. 
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :() => void 
Renvoie
- 
            Promise<void> Chrome 96 et versions ultérieuresLes 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
- 
    callbackfonction Le paramètre callbackse présente comme suit :(id: string, name: string, data: object) => void - 
    idchaîne 
- 
    nomchaîne 
- 
    donnéesobjet 
 
- 
    
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
- 
    callbackfonction Le paramètre callbackse présente comme suit :(id: string) => void - 
    idchaî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
- 
    callbackfonction Le paramètre callbackse présente comme suit :(data: ArrayBuffer) => void - 
    donnéesArrayBuffer 
 
- 
    
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
- 
    callbackfonction Le paramètre callbackse présente comme suit :(id: string, message: PlatformMessage, error: string) => void - 
    idchaîne 
- 
    message
- 
    erreurchaîne 
 
- 
    
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 affichée à l'utilisateur.