chrome.vpnProvider

.

Opis

Wdróż klienta VPN za pomocą interfejsu API chrome.vpnProvider.

Uprawnienia

vpnProvider

Dostępność

Chrome w wersji 43 lub nowszej Tylko ChromeOS

Wykorzystanie

Typowe użycie parametru vpnProvider jest następujące:

  • Twórz konfiguracje VPN za pomocą metody createConfig. Konfiguracja sieci VPN to stały wpis wyświetlany użytkownikowi w natywnym interfejsie ChromeOS. Użytkownik może wybrać konfigurację sieci VPN z listy i nawiązać z nią połączenie lub się od niej rozłączyć.

  • Dodaj detektory do zdarzeń onPlatformMessage, onPacketReceived i onConfigRemoved.

  • Gdy użytkownik połączy się z konfiguracją VPN, wiadomość onPlatformMessage zostanie odebrana z komunikatem "connected". Przedział czasu między wiadomościami "connected" i "disconnected" nazywamy sesją VPN. W tym okresie informacja, że rozszerzenie, które otrzyma wiadomość, jest właścicielem sesji VPN.

  • Zainicjuj połączenie z serwerem VPN i uruchom klienta VPN.

  • Ustaw parametry połączenia za pomocą narzędzia setParameters.

  • Powiadom o stanie połączenia "connected" za pomocą funkcji notifyConnectionStateChanged.

  • Po wykonaniu powyższych czynności bez błędów zostanie utworzony wirtualny tunel dla stosu sieciowego ChromeOS. Pakiety IP mogą być wysyłane przez tunel przy użyciu sendPacket. Wszystkie pakiety pochodzące z urządzenia z ChromeOS będą odbierane za pomocą zdarzenia onPacketReceived.

  • Gdy użytkownik rozłączy się z konfiguracją VPN, narzędzie onPlatformMessage zostanie uruchomione z komunikatem "disconnected".

  • Jeśli konfiguracja VPN nie jest już potrzebna, może zostać zniszczona przy użyciu destroyConfig.

Typy

Parameters

Właściwości

  • adres

    ciąg znaków

    Adres IP dla interfejsu VPN w notacji CIDR. Obecnie jedynym obsługiwanym trybem jest IPv4.

  • broadcastAddress

    ciąg znaków opcjonalny

    Adres rozgłoszeniowy dla interfejsu VPN. (domyślnie: wyodrębnione na podstawie adresu IP i maski)

  • dnsServers

    ciąg znaków[]

    Lista adresów IP serwerów DNS.

  • domainSearch

    string[] opcjonalnie

    Lista domen wyszukiwania. (domyślnie: brak domeny wyszukiwania)

  • exclusionList

    ciąg znaków[]

    Wyklucz z tunelu ruch sieciowy do listy bloków adresów IP w notacji CIDR. Może to służyć do omijania ruchu do i z serwera VPN. Jeśli do miejsca docelowego pasuje wiele reguł, wygrywa reguła z najdłuższym pasującym prefiksem. Wpisy odpowiadające temu samemu blokowi CIDR są traktowane jako duplikaty. Takie duplikaty na liście zbiorczej (exclusionList + includeList) są wyeliminowane, a dokładny duplikat, który zostanie wyeliminowany, jest niezdefiniowany.

  • inclusionList

    ciąg znaków[]

    Uwzględnij ruch w sieci do listy bloków adresów IP w notacji CIDR dla tunelu. Tego parametru można użyć do skonfigurowania podzielonego tunelu. Domyślnie żaden ruch nie jest kierowany do tunelu. Dodaję wpis „0.0.0.0/0”. powoduje przekierowanie całego ruchu użytkowników do tunelu. Jeśli do miejsca docelowego pasuje wiele reguł, wygrywa reguła z najdłuższym pasującym prefiksem. Wpisy odpowiadające temu samemu blokowi CIDR są traktowane jako duplikaty. Takie duplikaty na liście zbiorczej (exclusionList + includeList) są wyeliminowane, a dokładny duplikat, który zostanie wyeliminowany, jest niezdefiniowany.

  • mtu

    ciąg znaków opcjonalny

    Ustawienie MTU dla interfejsu VPN. (domyślnie: 1500 bajtów)

  • połącz ponownie

    ciąg znaków opcjonalny

    Chrome w wersji 51 lub nowszej .

    Określa, czy rozszerzenie VPN ma obsługiwać automatyczne ponowne łączenie.

    Jeśli ma wartość prawda, komunikaty platformy linkDown, linkUp, linkChanged, suspend i resume będą używane do sygnalizowania odpowiednich zdarzeń. W przypadku wartości false (fałsz) w przypadku zmiany topologii sieci system wymusza rozłączenie z siecią VPN, a użytkownik będzie musiał ponownie połączyć się ręcznie. (domyślnie: fałsz)

    Jest to nowa właściwość w Chrome 51. spowoduje wygenerowanie wyjątku we wcześniejszych wersjach. Parametr try/catch służy do warunkowego włączania funkcji zależnej od obsługi przeglądarki.

PlatformMessage

Wyliczenie jest używane przez platformę do powiadamiania klienta o stanie sesji VPN.

Typ wyliczeniowy

„Połączono”
Wskazuje, że konfiguracja VPN została nawiązana.

"disconnected"
Wskazuje, że konfiguracja VPN została odłączona.

"error"
Wskazuje, że wystąpił błąd połączenia VPN, na przykład przekroczono limit czasu. Opis błędu jest podany jako argument błędu w usłudze onPlatformMessage.

"linkDown"
Wskazuje, że domyślne połączenie fizyczne nie działa.

"linkUp"
Wskazuje, że domyślne połączenie z siecią fizyczną zostało utworzone.

"linkChanged"
Wskazuje, że domyślne połączenie sieciowe uległo zmianie, np. wifi > komórka.

"suspend"
Wskazuje, że system operacyjny przygotowuje się do zawieszenia, więc sieć VPN powinna porzucić połączenie. Nie ma gwarancji, że rozszerzenie otrzyma to zdarzenie przed zawieszeniem.

"resume"
Wskazuje, że system operacyjny został wznowiony, a użytkownik zalogował się ponownie, więc sieć VPN powinna spróbować połączyć się ponownie.

UIEvent

Wyliczenie jest używane przez platformę do wskazywania zdarzenia, które wywołało onUIEvent.

Typ wyliczeniowy

"showAddDialog"
Żądanie, aby klient VPN wyświetlał użytkownikowi okno dodawania konfiguracji.

"showConfigureDialog"
Żądania, aby klient VPN wyświetlał użytkownikowi okno ustawień konfiguracji.

VpnConnectionState

Wyliczenie jest używane przez klienta VPN do informowania platformy o bieżącym stanie. Dzięki temu użytkownik otrzymuje miarodajny przekaz.

Typ wyliczeniowy

„Połączono”
Określa, że udało się nawiązać połączenie VPN.

"failure"
Określa, że nie udało się nawiązać połączenia VPN.

Metody

createConfig()

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

Tworzy nową konfigurację VPN, która nie zmienia się przez wiele sesji logowania użytkownika.

Parametry

  • nazwa

    ciąg znaków

    Nazwa konfiguracji sieci VPN.

  • wywołanie zwrotne

    funkcja optional

    Parametr callback wygląda tak:

    (id: string) => void

    • id

      ciąg znaków

      Unikalny identyfikator utworzonej konfiguracji lub undefined w przypadku niepowodzenia.

Zwroty

  • Obietnica<ciąg>

    Chrome w wersji 96 lub nowszej, .

    Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.

destroyConfig()

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

Niszczy konfigurację VPN utworzoną przez rozszerzenie.

Parametry

  • id

    ciąg znaków

    Identyfikator konfiguracji sieci VPN do zniszczenia.

  • wywołanie zwrotne

    funkcja optional

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Obietnica<void>

    Chrome w wersji 96 lub nowszej, .

    Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.

notifyConnectionStateChanged()

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

Powiadamia platformę o stanie sesji VPN. Będzie to działać tylko wtedy, gdy sesja VPN należy do rozszerzenia.

Parametry

  • Stan sesji VPN klienta VPN.

  • wywołanie zwrotne

    funkcja optional

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Obietnica<void>

    Chrome w wersji 96 lub nowszej, .

    Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.

sendPacket()

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

Wysyła pakiet IP przez tunel utworzony na potrzeby sesji VPN. Będzie to działać tylko wtedy, gdy sesja VPN należy do rozszerzenia.

Parametry

  • dane

    SlateBuffer

    Pakiet IP, który ma zostać wysłany do platformy.

  • wywołanie zwrotne

    funkcja optional

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Obietnica<void>

    Chrome w wersji 96 lub nowszej, .

    Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.

setParameters()

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

Ustawia parametry sesji VPN. Ta metoda powinna zostać wywołana natychmiast po odebraniu funkcji "connected" z platformy. Będzie to działać tylko wtedy, gdy sesja VPN należy do rozszerzenia.

Parametry

  • parametry

    Parametry sesji VPN.

  • wywołanie zwrotne

    funkcja optional

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Obietnica<void>

    Chrome w wersji 96 lub nowszej, .

    Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.

Wydarzenia

onConfigCreated

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

Wywoływane, gdy platforma utworzy konfigurację rozszerzenia.

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

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

    • id

      ciąg znaków

    • nazwa

      ciąg znaków

    • dane

      Obiekt

onConfigRemoved

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

Wywoływane, gdy konfiguracja utworzona przez rozszerzenie zostanie usunięta przez platformę.

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

    (id: string) => void

    • id

      ciąg znaków

onPacketReceived

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

Wywoływane po otrzymaniu pakietu IP przez tunel na potrzeby sesji VPN należącej do rozszerzenia.

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

    (data: ArrayBuffer) => void

    • dane

      SlateBuffer

onPlatformMessage

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

Wywoływane po otrzymaniu z platformy wiadomości dotyczącej konfiguracji VPN należącej do rozszerzenia.

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

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

onUIEvent

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

Wywoływane, gdy w interfejsie wystąpi zdarzenie dotyczące rozszerzenia. Zdarzenia w interfejsie to sygnały z platformy, które wskazują aplikacji, że trzeba wyświetlić użytkownikowi okno interfejsu.

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

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

    • event
    • id

      ciąg znaków opcjonalny