chrome.vpnProvider

Opis

Użyj interfejsu API chrome.vpnProvider, aby wdrożyć klienta VPN.

Uprawnienia

vpnProvider

Dostępność

Chrome 43 i nowsze wersje tylko ChromeOS

Pojęcia i zastosowanie

Typowe zastosowanie chrome.vpnProvider:

  • Utwórz konfiguracje VPN, wywołując metodę createConfig(). Konfiguracja sieci VPN to stały wpis wyświetlany użytkownikowi w interfejsie ChromeOS. Użytkownik może wybrać konfigurację VPN z listy i połączyć się z nią lub się z nią rozłączyć.

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

  • Gdy użytkownik połączy się z konfiguracją VPN, onPlatformMessage otrzyma wiadomość z komunikatem "connected". Okres między wiadomościami "connected" i "disconnected" jest nazywany „sesją VPN”. W tym okresie mówi się, że rozszerzenie odbierające 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 jako "connected", wywołując metodę notifyConnectionStateChanged().

  • Jeśli poprzednie kroki zakończą się bez błędów, do stosu sieciowego ChromeOS zostanie utworzony wirtualny tunel. Pakiety IP mogą być wysyłane przez tunel przez wywołanie sendPacket(). Wszystkie pakiety pochodzące z urządzenia z ChromeOS będą odbierane przez moduł obsługi zdarzeń onPacketReceived.

  • Gdy użytkownik rozłączy się z konfiguracją VPN, uruchomi się aplikacja onPlatformMessage z komunikatem "disconnected".

  • Jeśli konfiguracja VPN nie jest już potrzebna, możesz ją zniszczyć, wywołując metodę destroyConfig().

Typy

Parameters

Właściwości

  • adres

    string,

    Adres IP interfejsu VPN w notacji CIDR. Jedynym obsługiwanym trybem jest obecnie IPv4.

  • broadcastAddress

    ciąg znaków opcjonalny

    Adres rozgłoszeniowy dla interfejsu VPN. (domyślnie: usunięte z adresu IP i maski)

  • dnsServers

    string[]

    Lista adresów IP serwerów DNS.

  • domainSearch

    string[] opcjonalny

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

  • exclusionList

    string[]

    Wyklucz ruch sieciowy z tunelu na liście bloków adresów IP w notacji CIDR. W ten sposób można omijać ruch 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 wykluczających (exclusionList + insertList) są usuwane, a dokładny duplikat, który zostanie usunięty, jest niezdefiniowany.

  • inclusionList

    string[]

    Uwzględnij ruch sieciowy do listy bloków adresów IP w notacji CIDR do tunelu. Tego parametru można użyć do skonfigurowania podzielonego tunelu. Domyślnie ruch nie jest kierowany do tunelu. Dodanie wpisu „0.0.0.0/0” do tej listy spowoduje, że cały ruch użytkowników będzie przekierowywany 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 wykluczających (exclusionList + insertList) są usuwane, a dokładny duplikat, który zostanie usunięty, 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 51 i nowsze wersje

    Wskazuje, czy rozszerzenie VPN stosuje automatyczne ponowne połączenie.

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

    Ta właściwość jest nowa w Chrome 51 – wygeneruje wyjątek we wcześniejszych wersjach. Polecenie try/catch może być używane do warunkowego włączania tej funkcji w zależności od obsługi przez przeglądarkę.

PlatformMessage

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

Enum

„Połączono”
Wskazuje, że konfiguracja VPN została połączona.

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

„error”
Wskazuje, że wystąpił błąd połączenia VPN, na przykład przekroczenie limitu czasu oczekiwania. Opis błędu jest podawany jako argument błędu w funkcji onPlatformMessage.

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

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

„linkChanged”
Wskazuje, że zmieniło się domyślne połączenie z siecią fizyczną, np. Wi-Fi->komórkowe.

"suspend"
Wskazuje, że system operacyjny przygotowuje się do zawieszenia, więc sieć VPN powinna zakończyć 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 próbować połączyć się ponownie.

UIEvent

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

Enum

"showAddDialog"
Zażąda, aby klient VPN wyświetlił okno dialogowe konfiguracji dodawania użytkownika.

"showConfigureDialog"
Zażąda od klienta VPN wyświetlenia okna ustawień konfiguracji.

VpnConnectionState

Klient VPN informuje platformę o jej bieżącym stanie. Wyliczenie jest używane przez klienta VPN. Pomaga to przekazywać użytkownikowi wartościowe komunikaty.

Enum

"linked"
Określa, że udało się nawiązać połączenie VPN.

"failure"
Wskazuje, ż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 będzie stosowana w wielu sesjach logowania użytkownika.

Parametry

  • nazwa

    string,

    Nazwa konfiguracji VPN.

  • wywołanie zwrotne

    funkcja opcjonalnie

    Parametr callback wygląda tak:

    (id: string)=>void

    • id

      string,

      Unikalny identyfikator utworzonej konfiguracji lub undefined w przypadku niepowodzenia.

Akcje powrotne

  • Obietnica<string>

    Chrome 96 i nowsze wersje

    Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika 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

    string,

    Identyfikator konfiguracji sieci VPN do zniszczenia.

  • wywołanie zwrotne

    funkcja opcjonalnie

    Parametr callback wygląda tak:

    ()=>void

Akcje powrotne

  • Promise<void>

    Chrome 96 i nowsze wersje

    Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.

notifyConnectionStateChanged()

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

Informuje 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 opcjonalnie

    Parametr callback wygląda tak:

    ()=>void

Akcje powrotne

  • Promise<void>

    Chrome 96 i nowsze wersje

    Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika 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 dla 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 opcjonalnie

    Parametr callback wygląda tak:

    ()=>void

Akcje powrotne

  • Promise<void>

    Chrome 96 i nowsze wersje

    Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika 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. Powinna ona zostać wywołana natychmiast po otrzymaniu parametru "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 opcjonalnie

    Parametr callback wygląda tak:

    ()=>void

Akcje powrotne

  • Promise<void>

    Chrome 96 i nowsze wersje

    Obietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.

Wydarzenia

onConfigCreated

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

Wywoływane, gdy platforma tworzy konfigurację rozszerzenia.

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

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

    • id

      string,

    • nazwa

      string,

    • 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

      string,

onPacketReceived

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

Wywoływane, gdy pakiet IP zostaje odebrany przez tunel dla 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, gdy z platformy zostanie odebrany komunikat dotyczący 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ępuje zdarzenie dotyczące rozszerzenia. Zdarzenia interfejsu to sygnały z platformy, które wskazują aplikacji, że użytkownikowi musi wyświetlić się okno interfejsu.

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

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

    • event
    • id

      ciąg znaków opcjonalny