chrome.vpnProvider

Beschrijving

Gebruik de chrome.vpnProvider API om een VPN-client te implementeren.

Machtigingen

vpnProvider

Beschikbaarheid

Chrome 43+ Alleen ChromeOS

Gebruik

Het typische gebruik van vpnProvider is als volgt:

  • Maak VPN-configuraties met de createConfig methode. Een VPN-configuratie is een permanente vermelding die aan de gebruiker wordt getoond in een native ChromeOS-gebruikersinterface. De gebruiker kan een VPN-configuratie uit een lijst selecteren en er verbinding mee maken of de verbinding verbreken.

  • Voeg luisteraars toe aan de gebeurtenissen onPlatformMessage , onPacketReceived en onConfigRemoved .

  • Wanneer de gebruiker verbinding maakt met de VPN-configuratie, wordt onPlatformMessage ontvangen met de melding "connected" . De periode tussen de meldingen "connected" en "disconnected" noemen we een VPN-sessie. In deze periode wordt de extensie die het bericht ontvangt beschouwd als eigenaar van de VPN-sessie.

  • Maak verbinding met de VPN-server en start de VPN-client.

  • Stel de parameters van de verbinding in met setParameters .

  • Geef de verbindingsstatus door als "connected" met behulp van notifyConnectionStateChanged .

  • Wanneer de bovenstaande stappen zonder fouten worden voltooid, wordt er een virtuele tunnel naar de netwerkstack van ChromeOS gemaakt. IP-pakketten kunnen via de tunnel worden verzonden met sendPacket en alle pakketten die afkomstig zijn van het ChromeOS-apparaat, worden ontvangen met de gebeurtenis onPacketReceived .

  • Wanneer de gebruiker de verbinding met de VPN-configuratie verbreekt, wordt onPlatformMessage geactiveerd met het bericht "disconnected" .

  • Als de VPN-configuratie niet langer nodig is, kan deze worden verwijderd met behulp van destroyConfig .

Typen

Parameters

Eigenschappen

  • adres

    snaar

    IP-adres voor de VPN-interface in CIDR-notatie. IPv4 is momenteel de enige ondersteunde modus.

  • uitzendadres

    string optioneel

    Broadcastadres voor de VPN-interface. (standaard: afgeleid van IP-adres en masker)

  • dns-servers

    snaar[]

    Een lijst met IP-adressen van de DNS-servers.

  • domeinZoeken

    string[] optioneel

    Een lijst met zoekdomeinen. (standaard: geen zoekdomein)

  • uitsluitingslijst

    snaar[]

    Sluit netwerkverkeer uit van de lijst met IP-blokken in CIDR-notatie vanuit de tunnel. Dit kan worden gebruikt om verkeer van en naar de VPN-server te omzeilen. Wanneer veel regels overeenkomen met een bestemming, wint de regel met het langste overeenkomende prefix. Items die overeenkomen met hetzelfde CIDR-blok, worden als duplicaten behandeld. Dergelijke duplicaten in de samengevoegde lijst (exclusionList + inclusionList) worden verwijderd en het exacte dubbele item dat wordt verwijderd, is ongedefinieerd.

  • inclusielijst

    snaar[]

    Voeg netwerkverkeer toe aan de lijst met IP-blokken in CIDR-notatie voor de tunnel. Deze parameter kan worden gebruikt om een gesplitste tunnel in te stellen. Standaard wordt er geen verkeer naar de tunnel geleid. Door de regel "0.0.0.0/0" aan deze lijst toe te voegen, wordt al het gebruikersverkeer omgeleid naar de tunnel. Wanneer veel regels overeenkomen met een bestemming, wint de regel met het langste overeenkomende prefix. Vermeldingen die overeenkomen met hetzelfde CIDR-blok worden als duplicaten behandeld. Dergelijke duplicaten in de samengevoegde lijst (exclusionList + inclusionList) worden verwijderd en de exacte duplicaatvermelding die wordt verwijderd, is ongedefinieerd.

  • mtu

    string optioneel

    MTU-instelling voor de VPN-interface. (standaard: 1500 bytes)

  • opnieuw verbinden

    string optioneel

    Chroom 51+

    Of de VPN-extensie automatisch opnieuw verbinden implementeert.

    Indien ingesteld op 'true', worden de platformberichten linkDown , linkUp , linkChanged , suspend en resume gebruikt om de betreffende gebeurtenissen te signaleren. Indien ingesteld op 'false', verbreekt het systeem de VPN-verbinding geforceerd als de netwerktopologie verandert, en moet de gebruiker handmatig opnieuw verbinding maken. (standaard: false)

    Deze eigenschap is nieuw in Chrome 51. In eerdere versies genereert het een uitzondering. try/catch kan worden gebruikt om de functie voorwaardelijk in te schakelen op basis van de browserondersteuning.

PlatformMessage

De enum wordt door het platform gebruikt om de client op de hoogte te stellen van de status van de VPN-sessie.

Enum

"aangesloten"
Geeft aan dat de VPN-configuratie verbonden is.

"losgekoppeld"
Geeft aan dat de VPN-configuratie is verbroken.

"fout"
Geeft aan dat er een fout is opgetreden in de VPN-verbinding, bijvoorbeeld een time-out. Een beschrijving van de fout wordt gegeven als het error-argument voor onPlatformMessage.

"linkDown"
Geeft aan dat de standaard fysieke netwerkverbinding niet beschikbaar is.

"linkUp"
Geeft aan dat de standaard fysieke netwerkverbinding weer actief is.

"link gewijzigd"
Geeft aan dat de standaard fysieke netwerkverbinding is gewijzigd, bijvoorbeeld wifi->mobiel.

"opschorten"
Geeft aan dat het besturingssysteem zich voorbereidt op pauzeren, waardoor de VPN de verbinding moet verbreken. Er is geen garantie dat de extensie deze gebeurtenis ontvangt voordat de pauze wordt ingelast.

"cv"
Geeft aan dat het besturingssysteem is hervat en dat de gebruiker opnieuw is ingelogd. In dat geval moet de VPN opnieuw verbinding proberen te maken.

UIEvent

De enum wordt door het platform gebruikt om de gebeurtenis aan te geven die onUIEvent heeft geactiveerd.

Enum

"toonAddDialog"
Verzoekt de VPN-client om het dialoogvenster voor het toevoegen van de configuratie aan de gebruiker te tonen.

"toonConfigureDialog"
Verzoekt de VPN-client om het dialoogvenster met configuratie-instellingen aan de gebruiker te tonen.

VpnConnectionState

De enum wordt door de VPN-client gebruikt om het platform te informeren over de huidige status. Dit helpt om de gebruiker zinvolle berichten te sturen.

Enum

"aangesloten"
Geeft aan dat de VPN-verbinding succesvol was.

"mislukking"
Geeft aan dat de VPN-verbinding is mislukt.

Methoden

createConfig()

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

Maakt een nieuwe VPN-configuratie die blijft bestaan tijdens meerdere aanmeldsessies van de gebruiker.

Parameters

  • naam

    snaar

    De naam van de VPN-configuratie.

  • terugbellen

    functie optioneel

    De callback ziet er als volgt uit:

    (id: string) => void

    • id

      snaar

      Een unieke ID voor de gemaakte configuratie, of undefined bij een fout.

Retourneren

  • Belofte<string>

    Chroom 96+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

destroyConfig()

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

Vernietigt een VPN-configuratie die door de extensie is gemaakt.

Parameters

  • id

    snaar

    ID van de VPN-configuratie die moet worden vernietigd.

  • terugbellen

    functie optioneel

    De callback ziet er als volgt uit:

    () => void

Retourneren

  • Belofte<leegte>

    Chroom 96+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

notifyConnectionStateChanged()

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

Geeft de VPN-sessiestatus door aan het platform. Dit is alleen succesvol als de VPN-sessie eigendom is van de extensie.

Parameters

  • De VPN-sessiestatus van de VPN-client.

  • terugbellen

    functie optioneel

    De callback ziet er als volgt uit:

    () => void

Retourneren

  • Belofte<leegte>

    Chroom 96+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

sendPacket()

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

Stuurt een IP-pakket via de tunnel die voor de VPN-sessie is gemaakt. Dit lukt alleen als de VPN-sessie eigendom is van de extensie.

Parameters

  • gegevens

    ArrayBuffer

    Het IP-pakket dat naar het platform moet worden verzonden.

  • terugbellen

    functie optioneel

    De callback ziet er als volgt uit:

    () => void

Retourneren

  • Belofte<leegte>

    Chroom 96+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

setParameters()

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

Stelt de parameters voor de VPN-sessie in. Deze moet direct worden aangeroepen nadat "connected" van het platform is ontvangen. Dit werkt alleen als de VPN-sessie eigendom is van de extensie.

Parameters

  • parameters

    De parameters voor de VPN-sessie.

  • terugbellen

    functie optioneel

    De callback ziet er als volgt uit:

    () => void

Retourneren

  • Belofte<leegte>

    Chroom 96+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

Evenementen

onConfigCreated

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

Wordt geactiveerd wanneer er door het platform een configuratie voor de extensie wordt gemaakt.

Parameters

  • terugbellen

    functie

    De callback ziet er als volgt uit:

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

    • id

      snaar

    • naam

      snaar

    • gegevens

      voorwerp

onConfigRemoved

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

Wordt geactiveerd wanneer een door de extensie gemaakte configuratie door het platform wordt verwijderd.

Parameters

  • terugbellen

    functie

    De callback ziet er als volgt uit:

    (id: string) => void

    • id

      snaar

onPacketReceived

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

Wordt geactiveerd wanneer een IP-pakket wordt ontvangen via de tunnel voor de VPN-sessie die eigendom is van de extensie.

Parameters

  • terugbellen

    functie

    De callback ziet er als volgt uit:

    (data: ArrayBuffer) => void

    • gegevens

      ArrayBuffer

onPlatformMessage

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

Wordt geactiveerd wanneer er een bericht van het platform wordt ontvangen voor een VPN-configuratie die eigendom is van de extensie.

Parameters

  • terugbellen

    functie

    De callback ziet er als volgt uit:

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

onUIEvent

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

Wordt geactiveerd wanneer er een UI-gebeurtenis voor de extensie plaatsvindt. UI-gebeurtenissen zijn signalen van het platform die de app laten weten dat er een UI-dialoogvenster aan de gebruiker moet worden getoond.

Parameters

  • terugbellen

    functie

    De callback ziet er als volgt uit:

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

    • evenement
    • id

      string optioneel