Opis
Wdróż klienta VPN za pomocą interfejsu API chrome.vpnProvider
.
Uprawnienia
vpnProvider
Dostępność
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
ionConfigRemoved
.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ą funkcjinotifyConnectionStateChanged
.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ą zdarzeniaonPacketReceived
.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
iresume
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()
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()
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()
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
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()
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()
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
-
id
ciąg znaków
-
wiadomość
-
błąd
ciąg znaków
-
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.