chrome.vpnProvider

Beschreibung

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

Berechtigungen

vpnProvider

Verfügbarkeit

Chrome (ab Version 43) Nur ChromeOS

Konzepte und Verwendung

Die typische Verwendung von chrome.vpnProvider sieht so aus:

  • Erstellen Sie VPN-Konfigurationen durch Aufrufen von createConfig(). 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 ihr 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 wird der Erweiterung, die die Nachricht empfängt, die VPN-Sitzung zugewiesen.

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

  • Legen Sie die Parameter der Verbindung durch Aufrufen von setParameters() fest.

  • Benachrichtigen Sie den Verbindungsstatus als "connected", indem Sie notifyConnectionStateChanged() aufrufen.

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

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

  • Wenn die VPN-Konfiguration nicht mehr erforderlich ist, 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: von IP-Adresse und Maske abgeleitet)

  • dnsServers

    String[]

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

  • domainSearch

    string[] optional

    Eine Liste von Suchdomains. (Standardeinstellung: keine Suchdomain)

  • exclusionList

    String[]

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

  • inclusionList

    String[]

    Fügen Sie den Netzwerktraffic in die Liste der IP-Blöcke in CIDR-Notation zum Tunnel ein. Mit diesem Parameter kann ein Split-Tunnel eingerichtet werden. Standardmäßig wird kein Traffic an den Tunnel geleitet. Eintrag „0.0.0.0/0“ hinzufügen in dieser Liste wird der gesamte Nutzer-Traffic an den Tunnel weitergeleitet. Wenn viele Regeln mit einem Ziel übereinstimmen, hat die Regel mit dem längsten übereinstimmenden Präfix Vorrang. Einträge, die demselben CIDR-Block entsprechen, werden als Duplikate behandelt. Solche Duplikate in 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)

  • wieder verbinden

    String optional

    Chrome 51 und höher

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

    Bei Einstellung auf „true“ werden die Plattformnachrichten linkDown, linkUp, linkChanged, suspend und resume verwendet, um die jeweiligen Ereignisse zu signalisieren. Ist sie auf „false“ gesetzt, wird die Verbindung zum VPN erzwungen, wenn sich die Netzwerktopologie ändert, und der Nutzer muss die Verbindung manuell wiederherstellen. (Standardeinstellung: false)

    Diese Eigenschaft ist in Chrome 51 neu: wird in früheren Versionen eine Ausnahme generiert. Mit dem Versuch/catch kann die Funktion basierend auf der Browserunterstützung bedingt aktiviert werden.

PlatformMessage

Der Enum-Wert wird von der Plattform verwendet, um den Client über den VPN-Sitzungsstatus zu informieren.

Enum

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

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

"error"
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 unterbrochen ist.

"linkUp"
Gibt 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->Mobilgerät

"suspend"
Gibt an, dass das Betriebssystem auf den Anhalten vorbereitet wird. Daher sollte die VPN-Verbindung unterbrochen werden. Es ist nicht garantiert, dass die Erweiterung die Veranstaltung vor der Sperrung erhält.

"Resume"
Gibt an, dass das Betriebssystem fortgesetzt wurde und der Nutzer sich wieder angemeldet hat. Daher sollte über das VPN versucht werden, die Verbindung wiederherzustellen.

UIEvent

Der Enum-Wert wird von der Plattform verwendet, um das Ereignis anzugeben, das onUIEvent ausgelöst hat.

Enum

"showAddDialog"
Fragt, dass der VPN-Client dem Nutzer das Dialogfeld zum Hinzufügen der Konfiguration anzeigt.

"showConfigureDialog"
Fragt, dass der VPN-Client dem Nutzer das Dialogfeld mit den Konfigurationseinstellungen anzeigen soll.

VpnConnectionState

Der Enum-Wert wird vom VPN-Client verwendet, um die Plattform über den aktuellen Status zu informieren. Dies trägt dazu bei, dem Nutzer sinnvolle Botschaften zu präsentieren.

Enum

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

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

Methoden

createConfig()

<ph type="x-smartling-placeholder"></ph> Versprechen
chrome.vpnProvider.createConfig(
  name: string,
  callback?: function,
)

Erstellt eine neue VPN-Konfiguration, die über mehrere Anmeldesitzungen des Nutzers hinweg beibehalten wird.

Parameter

  • 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, wenn ein Fehler auftritt.

Returns

  • Promise&lt;string&gt;

    Chrome 96 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks sind jedoch für Abwärtskompatibilität. Sie können nicht beide in demselben Funktionsaufruf verwenden. Die Promise wird mit demselben Typ aufgelöst, der an das Callback übergeben wird.

destroyConfig()

<ph type="x-smartling-placeholder"></ph> Versprechen
chrome.vpnProvider.destroyConfig(
  id: string,
  callback?: function,
)

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

Parameter

  • id

    String

    ID der zu löschenden VPN-Konfiguration.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    () => void

Returns

  • Versprechen<void>

    Chrome 96 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks sind jedoch für Abwärtskompatibilität. Sie können nicht beide in demselben Funktionsaufruf verwenden. Die Promise wird mit demselben Typ aufgelöst, der an das Callback übergeben wird.

notifyConnectionStateChanged()

<ph type="x-smartling-placeholder"></ph> Versprechen
chrome.vpnProvider.notifyConnectionStateChanged(
  state: VpnConnectionState,
  callback?: function,
)

Informiert die Plattform über den VPN-Sitzungsstatus. Dies ist nur erfolgreich, wenn die VPN-Sitzung der Erweiterung gehört.

Parameter

  • Bundesstaat

    Der VPN-Sitzungsstatus des VPN-Clients.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    () => void

Returns

  • Versprechen<void>

    Chrome 96 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks sind jedoch für Abwärtskompatibilität. Sie können nicht beide in demselben Funktionsaufruf verwenden. Die Promise wird mit demselben Typ aufgelöst, der an das Callback übergeben wird.

sendPacket()

<ph type="x-smartling-placeholder"></ph> Versprechen
chrome.vpnProvider.sendPacket(
  data: ArrayBuffer,
  callback?: function,
)

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

Parameter

  • Daten

    ArrayBuffer

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

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    () => void

Returns

  • Versprechen<void>

    Chrome 96 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks sind jedoch für Abwärtskompatibilität. Sie können nicht beide in demselben Funktionsaufruf verwenden. Die Promise wird mit demselben Typ aufgelöst, der an das Callback übergeben wird.

setParameters()

<ph type="x-smartling-placeholder"></ph> 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 erfolgreich, wenn die VPN-Sitzung der Erweiterung gehört.

Parameter

  • Parameter

    Die Parameter für die VPN-Sitzung.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    () => void

Returns

  • Versprechen<void>

    Chrome 96 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks sind jedoch für Abwärtskompatibilität. Sie können nicht beide in demselben Funktionsaufruf verwenden. Die Promise wird mit demselben Typ aufgelöst, der an das Callback übergeben wird.

Ereignisse

onConfigCreated

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

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

Parameter

  • 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.

Parameter

  • 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 der Erweiterung empfangen wird.

Parameter

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (data: ArrayBuffer) => void

    • Daten

      ArrayBuffer

onPlatformMessage

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

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

Parameter

  • 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 vorliegt UI-Ereignisse sind Signale von der Plattform, die der App signalisieren, dass dem Nutzer ein UI-Dialogfeld angezeigt werden muss.

Parameter

  • callback

    Funktion

    Der Parameter callback sieht so aus:

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