browser.vpnProvider

Açıklama

VPN istemcisini uygulamaya almak için chrome.vpnProvider API'sini kullanın.

İzinler

vpnProvider

Kullanılabilirlik

Chrome 43 ve sonraki sürümler Chrome 148'den itibaren browser.* Yalnızca ChromeOS

Kavramlar ve kullanım

browser.vpnProvider genellikle şu şekilde kullanılır:

  • createConfig() yöntemini çağırarak VPN yapılandırmaları oluşturun. VPN yapılandırması, ChromeOS kullanıcı arayüzünde kullanıcıya 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ıyı kesebilir.

  • onPlatformMessage, onPacketReceived ve onConfigRemoved etkinliklerine dinleyiciler ekleyin.

  • Kullanıcı VPN yapılandırmasına bağlandığında "connected" mesajıyla birlikte onPlatformMessage alınır. "connected" ve "disconnected" mesajları arasındaki süreye "VPN oturumu" denir. Bu dönemde, mesajı alan uzantının VPN oturumuna sahip olduğu kabul edilir.

  • VPN sunucusuyla bağlantı kurun ve VPN istemcisini başlatın.

  • setParameters() yöntemini çağırarak bağlantının parametrelerini ayarlayın.

  • notifyConnectionStateChanged() işlevini çağırarak bağlantı durumunu "connected" olarak bildirin.

  • Önceki adımlar hatasız bir şekilde tamamlandığında ChromeOS'in ağ yığınına sanal bir tünel oluşturulur. IP paketleri, sendPacket() çağrılarak tünel üzerinden gönderilebilir ve ChromeOS cihazdan kaynaklanan tüm paketler onPacketReceived etkinlik işleyici kullanılarak alınır.

  • Kullanıcı VPN yapılandırmasıyla bağlantıyı kestiğinde onPlatformMessage, "disconnected" mesajıyla tetiklenir.

  • VPN yapılandırmasına artık gerek yoksa destroyConfig() çağrılarak imha edilebilir.

Türler

Parameters

Özellikler

  • adres

    dize

    CIDR gösteriminde VPN arayüzünün IP adresi. Şu anda yalnızca IPv4 modu desteklenmektedir.

  • broadcastAddress

    string isteğe bağlı

    VPN arayüzünün yayın adresi. (varsayılan: IP adresi ve maskeden çıkarılır)

  • dnsServers

    string[]

    DNS sunucularının IP'lerinin listesi.

  • domainSearch

    string[] isteğe bağlı

    Arama alanlarının listesi. (varsayılan: arama alanı yok)

  • exclusionList

    string[]

    CIDR biçimindeki IP blokları listesine giden ağ trafiğini tünelden hariç tutun. Bu, VPN sunucusuna giden ve sunucudan gelen trafiği atlamak için kullanılabilir. Bir hedefle eşleşen çok sayıda kural olduğunda, en uzun eşleşen ön eke sahip kural geçerli olur. Aynı CIDR bloğuna karşılık gelen girişler kopya olarak değerlendirilir. Birleştirilmiş listedeki (exclusionList + inclusionList) bu tür yinelenenler kaldırılır ve kaldırılacak tam yinelenen giriş tanımlanmaz.

  • inclusionList

    string[]

    CIDR notasyonundaki IP blokları listesine tünele giden ağ trafiğini ekleyin. 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 eşleşen çok sayıda kural olduğunda, en uzun eşleşen ön eke sahip kural geçerli olur. Aynı CIDR bloğuna karşılık gelen girişler kopya olarak değerlendirilir. Birleştirilmiş listedeki (exclusionList + inclusionList) bu tür yinelenenler kaldırılır ve kaldırılacak tam yinelenen giriş tanımlanmaz.

  • mtu

    string isteğe bağlı

    VPN arayüzü için MTU ayarı. (varsayılan: 1.500 bayt)

  • yeniden bağlanma

    string isteğe bağlı

    Chrome 51 ve sonraki sürümler Chrome 148'den itibaren browser.*

    VPN uzantısının otomatik yeniden bağlanma özelliğini uygulayıp uygulamadığı.

    Doğru ise ilgili etkinlikleri belirtmek için linkDown, linkUp, linkChanged, suspend ve resume platform mesajları kullanılır. Yanlış ise Network Topology 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 yenidir ve önceki sürümlerde bir istisna oluşturur. try/catch, tarayıcı desteğine bağlı olarak özelliği koşullu bir şekilde etkinleştirmek için kullanılabilir.

PlatformMessage

Platform, VPN oturumunun durumunu istemciye bildirmek için enum'u kullanır.

Enum

"connected"
VPN yapılandırmasının bağlandığını gösterir.

"disconnected"
VPN yapılandırmasının bağlantısının kesildiğini gösterir.

"error"
VPN bağlantısında bir hata (ör. zaman aşımı) oluştuğunu gösterir. Hatanın açıklaması, onPlatformMessage için hata bağımsız değişkeni olarak verilir.

"linkDown"
Varsayılan fiziksel ağ bağlantısının kesildiğini gösterir.

"linkUp"
Varsayılan fiziksel ağ bağlantısının tekrar etkin olduğunu gösterir.

"linkChanged"
Varsayılan fiziksel ağ bağlantısının değiştiğini gösterir (ör. kablosuz ağ->mobil).

"suspend"
İşletim sisteminin askıya alınmaya hazırlandığını, bu nedenle VPN'in bağlantısını kesmesi gerektiğini belirtir. Uzantının askıya alınmadan önce bu etkinliği alacağı garanti edilmez.

"resume"
OS'in devam ettiğini ve kullanıcının tekrar giriş yaptığını gösterir. Bu nedenle VPN yeniden bağlanmayı denemelidir.

UIEvent

Numaralandırma, platform tarafından onUIEvent tetikleyen etkinliği belirtmek için kullanılır.

Enum

"showAddDialog"
VPN istemcisinin, kullanıcıya yapılandırma ekleme iletişim kutusunu 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()

browser.vpnProvider.createConfig(
  name: string,
)
: Promise<string>

Kullanıcının birden fazla giriş oturumu boyunca devam eden yeni bir VPN yapılandırması oluşturur.

Parametreler

  • ad

    dize

    VPN yapılandırmasının adı.

İadeler

  • Promise<string>

    Chrome 96 ve sonraki sürümler Chrome 148'den itibaren browser.*

    Yapılandırma oluşturulduğunda çözümlenen veya hata varsa reddedilen bir Promise döndürür.

destroyConfig()

browser.vpnProvider.destroyConfig(
  id: string,
)
: Promise<void>

Uzantı tarafından oluşturulan bir VPN yapılandırmasını siler.

Parametreler

  • id

    dize

    İmha edilecek VPN yapılandırmasının kimliği.

İadeler

  • Promise<void>

    Chrome 96 ve sonraki sürümler Chrome 148'den itibaren browser.*

    Yapılandırma silindiğinde çözümlenen veya hata varsa reddedilen bir Promise döndürür.

notifyConnectionStateChanged()

browser.vpnProvider.notifyConnectionStateChanged(
  state: VpnConnectionState,
)
: Promise<void>

VPN oturumu durumunu platforma bildirir. Bu işlem yalnızca VPN oturumu uzantıya ait olduğunda başarılı olur.

Parametreler

İadeler

  • Promise<void>

    Chrome 96 ve sonraki sürümler Chrome 148'den itibaren browser.*

    Bildirim tamamlandığında çözümlenen veya hata varsa reddedilen bir Promise döndürür.

sendPacket()

browser.vpnProvider.sendPacket(
  data: ArrayBuffer,
)
: Promise<void>

VPN oturumu için oluşturulan tünel üzerinden bir IP paketi gönderir. Bu işlem yalnızca VPN oturumu uzantıya ait olduğunda başarılı olur.

Parametreler

  • veri

    ArrayBuffer

    Platforma gönderilecek IP paketi.

İadeler

  • Promise<void>

    Chrome 96 ve sonraki sürümler Chrome 148'den itibaren browser.*

    Paket gönderildiğinde çözümlenen veya hata varsa reddedilen bir Promise döndürür.

setParameters()

browser.vpnProvider.setParameters(
  parameters: Parameters,
)
: Promise<void>

VPN oturumunun parametrelerini ayarlar. Bu, 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

İadeler

  • Promise<void>

    Chrome 96 ve sonraki sürümler Chrome 148'den itibaren browser.*

    Parametreler ayarlandığında çözümlenen veya hata varsa reddedilen bir Promise döndürür.

Etkinlikler

onConfigCreated

browser.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

    • veri

      nesne

onConfigRemoved

browser.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

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

Uzantıya ait 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

    • veri

      ArrayBuffer

onPlatformMessage

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

Uzantıya ait 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

onUIEvent

browser.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 kutusu gösterilmesi gerektiğini belirten sinyallerdir.

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

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

    • etkinlik
    • id

      string isteğe bağlı