chrome.vpnProvider

.

Opis

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

Uprawnienia

vpnProvider

Dostępność

Chrome w wersji 43 lub nowszej Tylko ChromeOS

Pojęcia i wykorzystanie

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

  • Konfiguracja VPN możesz utworzyć, wywołując metodę createConfig(). Konfiguracja sieci VPN to stały wpis wyświetlany użytkownikowi w interfejsie użytkownika 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". Okres między wiadomościami "connected" a "disconnected" jest nazywany „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, wywołując metodę setParameters().

  • Powiadom o stanie połączenia "connected", wywołując metodę notifyConnectionStateChanged().

  • Jeśli ukończysz poprzednie kroki bez błędów, zostanie utworzony wirtualny tunel dla stosu sieciowego ChromeOS. Pakiety IP mogą być wysyłane przez tunel przy użyciu wywołania sendPacket(). Wszystkie pakiety pochodzące z urządzenia z ChromeOS będą odbierane przy użyciu modułu obsługi zdarzeń 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żna ją zniszczyć, wywołując metodę 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 96 lub nowszy

    Obietnice są obsługiwane w Manifest V3 i nowszych, ale wywołania zwrotne są podane w przypadku zgodność wsteczną. Nie można użyć obu w tym samym wywołaniu funkcji. Polecenie promowana jest realizowane z tym samym typem, który jest przekazywany do wywołania zwrotnego.

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 96 lub nowszy

    Obietnice są obsługiwane w Manifest V3 i nowszych, ale wywołania zwrotne są podane w przypadku zgodność wsteczną. Nie można użyć obu w tym samym wywołaniu funkcji. Polecenie promowana jest realizowane z tym samym typem, który jest przekazywany do wywołania zwrotnego.

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 96 lub nowszy

    Obietnice są obsługiwane w Manifest V3 i nowszych, ale wywołania zwrotne są podane w przypadku zgodność wsteczną. Nie można użyć obu w tym samym wywołaniu funkcji. Polecenie promowana jest realizowane z tym samym typem, który jest przekazywany do wywołania zwrotnego.

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

    ArrayBuffer

    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 96 lub nowszy

    Obietnice są obsługiwane w Manifest V3 i nowszych, ale wywołania zwrotne są podane w przypadku zgodność wsteczną. Nie można użyć obu w tym samym wywołaniu funkcji. Polecenie promowana jest realizowane z tym samym typem, który jest przekazywany do wywołania zwrotnego.

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 96 lub nowszy

    Obietnice są obsługiwane w Manifest V3 i nowszych, ale wywołania zwrotne są podane w przypadku zgodność wsteczną. Nie można użyć obu w tym samym wywołaniu funkcji. Polecenie promowana jest realizowane z tym samym typem, który jest przekazywany do wywołania zwrotnego.

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

      ArrayBuffer

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