Açıklama
VPN istemcisi uygulamak için chrome.vpnProvider
API'yi kullanın.
İzinler
vpnProvider
Kullanılabilirlik
Kullanım
vpnProvider'ın tipik kullanımı aşağıdaki gibidir:
createConfig
yöntemini kullanarak VPN yapılandırmaları oluşturun. VPN yapılandırması, kullanıcıya yerel bir ChromeOS kullanıcı arayüzünde gösterilen kalıcı bir giriştir. Kullanıcı, listeden bir VPN yapılandırması seçip bu yapılandırmaya bağlanabilir veya bağlantısını kesebilir.onPlatformMessage
,onPacketReceived
veonConfigRemoved
etkinliklerine işleyiciler ekleyin.Kullanıcı VPN yapılandırmasına bağlandığında
onPlatformMessage
,"connected"
mesajıyla birlikte alınır."connected"
ve"disconnected"
mesajları arasındaki döneme VPN oturumu denir. Bu süre zarfında, mesajı alan uzantının VPN oturumuna sahip olduğu söylenir.VPN sunucusuna bağlantı başlatın ve VPN istemcisini başlatın.
setParameters
kullanarak bağlantı parametrelerini ayarlayın.notifyConnectionStateChanged
kullanarak bağlantı durumunu"connected"
olarak bildirin.Yukarıdaki adımlar hatasız bir şekilde tamamlandığında ChromeOS'in ağ yığını için sanal bir tünel oluşturulur. IP paketleri,
sendPacket
kullanılarak tünel üzerinden gönderilebilir ve ChromeOS cihazda oluşturulan tüm paketleronPacketReceived
etkinliği kullanılarak alınır.Kullanıcı VPN yapılandırmasıyla bağlantısını kestiğinde
onPlatformMessage
,"disconnected"
mesajıyla birlikte tetiklenir.VPN yapılandırması artık gerekli değilse
destroyConfig
kullanılarak yok edilebilir.
Türler
Parameters
Özellikler
-
adres
dize
CIDR gösteriminde VPN arayüzünün IP adresi. Şu anda yalnızca IPv4 desteklenmektedir.
-
broadcastAddress
dize isteğe bağlı
VPN arayüzünün yayın adresi. (varsayılan: IP adresi ve maskeden çıkarılır)
-
dnsServers
dize[]
DNS sunucularının IP listesi.
-
domainSearch
string[] isteğe bağlı
Arama alanlarının listesi. (varsayılan: arama alanı yok)
-
exclusionList
dize[]
CIDR gösterimindeki IP blokları listesine yönelik ağ trafiğini tünelden hariç tutun. Bu, VPN sunucusuna ve sunucusundan gelen trafiği atlamak için kullanılabilir. Bir hedefle çok sayıda kural eşleştiğinde, en uzun eşleşen öneke sahip kural geçerli olur. Aynı CIDR bloğuna karşılık gelen girişler yinelenen olarak kabul edilir. Derlenen listedeki (exclusionList + inclusionList) bu tür yinelenenler ortadan kaldırılır ve hangi tam kopya girişinin ortadan kaldırılacağı tanımlanmaz.
-
inclusionList
dize[]
Tünel için CIDR notasyonundaki IP blokları listesine ağ trafiğini dahil edin. Bu parametre, bölünmüş tünel oluşturmak için kullanılabilir. Varsayılan olarak tünele trafik yönlendirilmez. Bu listeye "0.0.0.0/0" girişini eklediğinizde tüm kullanıcı trafiği tünele yönlendirilir. Bir hedefle çok sayıda kural eşleştiğinde, en uzun eşleşen öneke sahip kural geçerli olur. Aynı CIDR bloğuna karşılık gelen girişler yinelenen olarak kabul edilir. Derlenen listedeki (exclusionList + inclusionList) bu tür yinelenenler ortadan kaldırılır ve hangi tam kopya girişinin ortadan kaldırılacağı tanımlanmaz.
-
mtu
dize isteğe bağlı
VPN arayüzü için MTU ayarı. (varsayılan: 1.500 bayt)
-
reconnect
dize isteğe bağlı
Chrome 51 veya sonraki sürümlerVPN uzantısının otomatik yeniden bağlanma özelliğini uygulayıp uygulamadığı.
Doğruysa ilgili etkinlikleri bildirmek için
linkDown
,linkUp
,linkChanged
,suspend
veresume
platform mesajları kullanılır. Değer yanlışsa ağ topolojisi değiştiğinde sistem VPN bağlantısını zorla keser ve kullanıcının manuel olarak yeniden bağlanması gerekir. (varsayılan: false)Bu özellik Chrome 51'de yeni olup önceki sürümlerde istisna oluşturur. try/catch, özelliği tarayıcı desteğine göre koşullu olarak etkinleştirmek için kullanılabilir.
PlatformMessage
Enum, platform tarafından istemciye VPN oturumu durumu hakkında bildirim göndermek için kullanılır.
Enum
"connected"
VPN yapılandırmasının bağlandığını gösterir.
"Bağlantı kesildi"
VPN yapılandırmasının bağlantısının kesildiğini gösterir.
"error"
VPN bağlantısında bir hata oluştuğunu (ör. zaman aşımı) gösterir. Hatanın açıklaması, onPlatformMessage işlevine hata bağımsız değişkeni olarak verilir.
"linkDown"
Varsayılan fiziksel ağ bağlantısının kapalı olduğunu gösterir.
"linkUp"
Varsayılan fiziksel ağ bağlantısının yedeklendiğini gösterir.
"linkChanged"
Varsayılan fiziksel ağ bağlantısının değiştiğini gösterir (ör. kablosuz > mobil).
"suspend"
İşletim sisteminin askıya almaya hazırlandığını belirtir. Bu nedenle VPN bağlantısını kesmelidir. Uzantının, askıya alınmadan önce bu etkinliği alacağı garanti edilmez.
"resume"
İşletim sisteminin devam ettiğini ve kullanıcının tekrar giriş yaptığını belirtir. Bu nedenle VPN yeniden bağlanmayı denemelidir.
UIEvent
Enum, platform tarafından onUIEvent
tetikleyen etkinliği belirtmek için kullanılır.
Enum
"showAddDialog"
VPN istemcisinin, yapılandırma ekleme iletişim kutusunu kullanıcıya göstermesini ister.
"showConfigureDialog"
VPN istemcisinin, yapılandırma ayarları iletişim kutusunu kullanıcıya göstermesini ister.
VpnConnectionState
Enum, VPN istemcisi tarafından platformu mevcut durumu hakkında bilgilendirmek için kullanılır. Bu sayede kullanıcıya anlamlı mesajlar sunulabilir.
Enum
"connected"
VPN bağlantısının başarılı olduğunu belirtir.
"failure"
VPN bağlantısının başarısız olduğunu belirtir.
Yöntemler
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
): Promise<string>
Kullanıcının birden fazla oturumunda kalıcı olan yeni bir VPN yapılandırması oluşturur.
Parametreler
-
ad
dize
VPN yapılandırmasının adı.
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(id: string) => void
-
id
dize
Oluşturulan yapılandırma için benzersiz bir kimlik veya hata durumunda
undefined
.
-
İadeler
-
Promise<string>
Chrome 96 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
): Promise<void>
Uzantı tarafından oluşturulan bir VPN yapılandırmasını yok eder.
Parametreler
-
id
dize
Yok edilecek VPN yapılandırmasının kimliği.
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Promise<void>
Chrome 96 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
): Promise<void>
VPN oturumu durumunu platforma bildirir. Bu işlem yalnızca VPN oturumu uzantıya ait olduğunda başarılı olur.
Parametreler
-
durum
VPN istemcisinin VPN oturumu durumu.
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Promise<void>
Chrome 96 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
): Promise<void>
VPN oturumu için oluşturulan tünelden bir IP paketi gönderir. Bu işlem yalnızca VPN oturumu uzantıya ait olduğunda başarılı olur.
Parametreler
-
aktarma
ArrayBuffer
Platforma gönderilecek IP paketi.
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Promise<void>
Chrome 96 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
): Promise<void>
VPN oturumu için parametreleri ayarlar. Bu işlev, platformdan "connected"
alındıktan hemen sonra çağrılmalıdır. Bu işlem yalnızca VPN oturumu uzantıya ait olduğunda başarılı olur.
Parametreler
-
parametreler
VPN oturumunun parametreleri.
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Promise<void>
Chrome 96 veya daha yeni bir sürümPromises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.
Etkinlikler
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
Platform tarafından uzantı için bir yapılandırma oluşturulduğunda tetiklenir.
Parametreler
-
callback
işlev
callback
parametresi şu şekilde görünür:(id: string, name: string, data: object) => void
-
id
dize
-
ad
dize
-
aktarma
nesne
-
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
Uzantı tarafından oluşturulan bir yapılandırma platform tarafından kaldırıldığında tetiklenir.
Parametreler
-
callback
işlev
callback
parametresi şu şekilde görünür:(id: string) => void
-
id
dize
-
onPacketReceived
chrome.vpnProvider.onPacketReceived.addListener(
callback: function,
)
Uzantının sahip olduğu VPN oturumu için tünel üzerinden bir IP paketi alındığında tetiklenir.
Parametreler
-
callback
işlev
callback
parametresi şu şekilde görünür:(data: ArrayBuffer) => void
-
aktarma
ArrayBuffer
-
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
Uzantının sahip olduğu bir VPN yapılandırması için platformdan mesaj alındığında tetiklenir.
Parametreler
-
callback
işlev
callback
parametresi şu şekilde görünür:(id: string, message: PlatformMessage, error: string) => void
-
id
dize
-
mesaj
-
hata
dize
-
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
Uzantı için bir kullanıcı arayüzü etkinliği olduğunda tetiklenir. Kullanıcı arayüzü etkinlikleri, platformdan gelen ve uygulamaya kullanıcıya bir kullanıcı arayüzü iletişim kutusunun gösterilmesi gerektiğini belirten sinyallerdir.