chrome.vpnProvider

Beschreibung

Verwenden Sie die chrome.vpnProvider API, um einen VPN-Client zu implementieren.

Berechtigungen

vpnProvider

Verfügbarkeit

Chrome 43 und höher Nur ChromeOS

Konzepte und Nutzung

Typische Verwendung von chrome.vpnProvider:

  • Rufen Sie zum Erstellen von VPN-Konfigurationen createConfig() auf. Eine VPN-Konfiguration ist ein dauerhafter Eintrag, der dem Nutzer in einer ChromeOS-Benutzeroberfläche angezeigt wird. Der Nutzer kann eine VPN-Konfiguration aus einer Liste auswählen und eine Verbindung zu dieser Konfiguration herstellen oder die Verbindung trennen.

  • Fügen Sie den Ereignissen onPlatformMessage, onPacketReceived und onConfigRemoved Listener hinzu.

  • Wenn der Nutzer eine Verbindung zur VPN-Konfiguration herstellt, wird onPlatformMessage mit der Nachricht "connected" empfangen. Der Zeitraum zwischen den Nachrichten "connected" und "disconnected" wird als „VPN-Sitzung“ bezeichnet. In diesem Zeitraum gehört die VPN-Sitzung der Erweiterung, die die Nachricht erhält.

  • Stellen Sie die Verbindung zum VPN-Server her und starten Sie den VPN-Client.

  • Legen Sie die Parameter der Verbindung fest, indem Sie setParameters() aufrufen.

  • Rufen Sie notifyConnectionStateChanged() auf, um den Verbindungsstatus als "connected" zu benachrichtigen.

  • Wenn die vorherigen Schritte ohne Fehler ausgeführt werden, wird ein virtueller Tunnel zum Netzwerkstack von ChromeOS erstellt. IP-Pakete können durch den Tunnel gesendet werden, indem sendPacket() aufgerufen wird. Alle Pakete, die vom ChromeOS-Gerät stammen, werden mit dem Event-Handler von onPacketReceived empfangen.

  • Wenn der Nutzer die VPN-Konfiguration trennt, wird onPlatformMessage mit der Meldung "disconnected" ausgelöst.

  • Wenn die VPN-Konfiguration nicht mehr benötigt wird, kann sie durch Aufrufen von destroyConfig() gelöscht werden.

Typen

Parameters

Attribute

  • Adresse

    String

    IP-Adresse für die VPN-Schnittstelle in CIDR-Notation. IPv4 ist derzeit der einzige unterstützte Modus.

  • broadcastAddress

    String optional

    Übertragungsadresse für die VPN-Schnittstelle. (Standard: abgeleitet aus IP-Adresse und Maske)

  • dnsServers

    String[]

    Eine Liste von IP-Adressen für die DNS-Server.

  • domainSearch

    string[] optional

    Eine Liste mit Suchdomains. (Standardeinstellung: keine Suchdomain)

  • exclusionList

    String[]

    Schließen Sie Netzwerkverkehr aus der Liste der IP-Blöcke in CIDR-Notation aus dem Tunnel aus. Dadurch kann der Traffic zum und vom VPN-Server umgangen werden. Wenn viele Regeln mit einem Ziel übereinstimmen, gewinnt die Regel mit dem längsten übereinstimmenden Präfix. Einträge, die demselben CIDR-Block entsprechen, werden als Duplikate behandelt. Solche Duplikate aus der sortierten Liste (exclusionList + inclusionList) werden entfernt und der exakte Duplikateintrag, der entfernt wird, ist nicht definiert.

  • inclusionList

    String[]

    Nehmen Sie Netzwerkverkehr in die Liste der IP-Blöcke in CIDR-Notation zum Tunnel auf. Dieser Parameter kann zum Einrichten eines Split-Tunnels verwendet werden. Standardmäßig wird kein Traffic an den Tunnel weitergeleitet. Wenn Sie der Liste den Eintrag „0.0.0.0/0“ hinzufügen, wird der gesamte Nutzertraffic an den Tunnel weitergeleitet. Wenn viele Regeln mit einem Ziel übereinstimmen, gewinnt die Regel mit dem längsten übereinstimmenden Präfix. Einträge, die demselben CIDR-Block entsprechen, werden als Duplikate behandelt. Solche Duplikate aus der sortierten Liste (exclusionList + inclusionList) werden entfernt und der exakte Duplikateintrag, der entfernt wird, ist nicht definiert.

  • mtu

    String optional

    MTU-Einstellung für die VPN-Schnittstelle. (Standard: 1.500 Byte)

  • Erneut verbinden

    String optional

    Chrome 51 und höher

    Gibt an, ob die VPN-Erweiterung die automatische Wiederverbindung implementiert.

    Bei „true“ werden die Plattformnachrichten linkDown, linkUp, linkChanged, suspend und resume verwendet, um die entsprechenden Ereignisse zu signalisieren. Wenn „false“ festgelegt ist, wird die Verbindung zum VPN erzwungen, wenn sich die Netzwerktopologie ändert. Der Nutzer muss dann manuell wieder eine Verbindung herstellen. (Standard: false)

    Diese Eigenschaft ist neu in Chrome 51. Sie generiert in früheren Versionen eine Ausnahme. Mit „try/catch“ kann die Funktion je nach Browserunterstützung aktiviert werden.

PlatformMessage

Die Aufzählung wird von der Plattform verwendet, um den Client über den Status der VPN-Sitzung zu informieren.

Enum

"connected"
Gibt an, dass die VPN-Konfiguration verbunden wurde.

"disconnected"
Gibt an, dass die VPN-Konfiguration getrennt wurde.

"Fehler"
Gibt an, dass bei der VPN-Verbindung ein Fehler aufgetreten ist, z. B. eine Zeitüberschreitung. Eine Beschreibung des Fehlers wird als Fehlerargument an onPlatformMessage übergeben.

"linkDown"
Gibt an, dass die standardmäßige physische Netzwerkverbindung ausgefallen ist.

"linkUp"
Zeigt an, dass die standardmäßige physische Netzwerkverbindung wieder verfügbar ist.

"linkChanged"
Gibt an, dass sich die standardmäßige physische Netzwerkverbindung geändert hat, z.B. WLAN > Mobilfunk.

"suspend"
Zeigt an, dass sich das Betriebssystem auf den Sperrvorgang vorbereitet. Daher sollte die Verbindung des VPN getrennt werden. Es wird nicht garantiert, dass die Erweiterung dieses Ereignis erhält, bevor sie gesperrt wird.

"resume"
Gibt an, dass das Betriebssystem fortgesetzt wurde und sich der Nutzer wieder angemeldet hat. Daher sollte das VPN versuchen, die Verbindung wiederherzustellen.

UIEvent

Die Aufzählung wird von der Plattform verwendet, um das Ereignis anzugeben, das onUIEvent ausgelöst hat.

Enum

"showAddDialog"
Führt an, dass der VPN-Client dem Nutzer das Dialogfeld zum Hinzufügen von Konfigurationen anzeigt.

"showConfigDialog"
Fordert an, dass der VPN-Client dem Nutzer das Dialogfeld mit den Konfigurationseinstellungen anzeigt.

VpnConnectionState

Die Enum wird vom VPN-Client verwendet, um die Plattform über ihren aktuellen Status zu informieren. Dies trägt dazu bei, dem Nutzer aussagekräftige Botschaften zu liefern.

Enum

"connected"
Gibt an, dass die VPN-Verbindung erfolgreich hergestellt wurde.

"failure"
Gibt an, dass die VPN-Verbindung fehlgeschlagen ist.

Methoden

createConfig()

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

Erstellt eine neue VPN-Konfiguration, die über mehrere Log-in-Sitzungen des Nutzers hinweg bestehen bleibt.

Parameters

  • name

    String

    Der Name der VPN-Konfiguration.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    (id: string)=>void

    • id

      String

      Eine eindeutige ID für die erstellte Konfiguration oder undefined bei einem Fehler.

Rückgaben

  • Versprechen<string>

    Chrome 96 oder höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

destroyConfig()

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

Zerstört eine von der Erweiterung erstellte VPN-Konfiguration.

Parameters

  • id

    String

    ID der zu löschenden VPN-Konfiguration.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    ()=>void

Rückgaben

  • Promise<void>

    Chrome 96 oder höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

notifyConnectionStateChanged()

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

Informiert den Status der VPN-Sitzung an die Plattform. Dies ist nur möglich, wenn die VPN-Sitzung der Erweiterung gehört.

Parameters

  • Der VPN-Sitzungsstatus des VPN-Clients.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    ()=>void

Rückgaben

  • Promise<void>

    Chrome 96 oder höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

sendPacket()

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

Sendet ein IP-Paket über den für die VPN-Sitzung erstellten Tunnel. Dies ist nur möglich, wenn die VPN-Sitzung der Erweiterung gehört.

Parameters

  • Daten

    ArrayBuffer

    Das IP-Paket, das an die Plattform gesendet werden soll.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    ()=>void

Rückgaben

  • Promise<void>

    Chrome 96 oder höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

setParameters()

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

Legt die Parameter für die VPN-Sitzung fest. Dieser sollte sofort aufgerufen werden, nachdem "connected" von der Plattform empfangen wurde. Dies ist nur möglich, wenn die VPN-Sitzung der Erweiterung gehört.

Parameters

  • Parameter

    Die Parameter für die VPN-Sitzung.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    ()=>void

Rückgaben

  • Promise<void>

    Chrome 96 oder höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

Veranstaltungen

onConfigCreated

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

Wird ausgelöst, wenn von der Plattform eine Konfiguration für die Erweiterung erstellt wird.

Parameters

  • callback

    Funktion

    Der Parameter callback sieht so aus:

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

    • id

      String

    • name

      String

    • Daten

      Objekt

onConfigRemoved

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

Wird ausgelöst, wenn eine von der Erweiterung erstellte Konfiguration von der Plattform entfernt wird.

Parameters

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (id: string)=>void

    • id

      String

onPacketReceived

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

Wird ausgelöst, wenn ein IP-Paket über den Tunnel für die VPN-Sitzung empfangen wird, die der Erweiterung gehört.

Parameters

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (data: ArrayBuffer)=>void

    • Daten

      ArrayBuffer

onPlatformMessage

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

Wird ausgelöst, wenn von der Plattform eine Nachricht für eine VPN-Konfiguration eingeht, die der Erweiterung gehört.

Parameters

  • callback

    Funktion

    Der Parameter callback sieht so aus:

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

onUIEvent

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

Wird ausgelöst, wenn ein UI-Ereignis für die Erweiterung eintritt. UI-Ereignisse sind Signale von der Plattform, die der App signalisieren, dass dem Nutzer ein UI-Dialogfeld angezeigt werden muss.

Parameters

  • callback

    Funktion

    Der Parameter callback sieht so aus:

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