คำอธิบาย
ใช้ chrome.vpnProvider
API เพื่อใช้ไคลเอ็นต์ VPN
สิทธิ์
vpnProvider
ความพร้อมใช้งาน
การใช้งาน
การใช้งานทั่วไปของ vpnProvider มีดังนี้
สร้างการกำหนดค่า VPN โดยใช้เมธอด
createConfig
การกำหนดค่า VPN คือรายการที่แสดงให้ผู้ใช้เห็นใน UI แบบเนทีฟของ ChromeOS อย่างถาวร ผู้ใช้สามารถเลือกการกำหนดค่า VPN จากรายการแล้วเชื่อมต่อหรือยกเลิกการเชื่อมต่อจากรายการได้เพิ่ม Listener เหตุการณ์
onPlatformMessage
,onPacketReceived
และonConfigRemoved
เมื่อผู้ใช้เชื่อมต่อกับการกำหนดค่า VPN คุณจะได้รับ
onPlatformMessage
พร้อมข้อความ"connected"
เราจะอ้างอิงช่วงเวลาระหว่างข้อความ"connected"
ถึง"disconnected"
เป็นเซสชัน VPN ซึ่งในช่วงเวลานี้ ส่วนขยายที่ได้รับข้อความจะเป็นเจ้าของเซสชัน VPNเริ่มการเชื่อมต่อกับเซิร์ฟเวอร์ VPN และเริ่มไคลเอ็นต์ VPN
ตั้งค่าพารามิเตอร์ของการเชื่อมต่อโดยใช้
setParameters
แจ้งสถานะการเชื่อมต่อเป็น
"connected"
โดยใช้notifyConnectionStateChanged
เมื่อขั้นตอนข้างต้นเสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด ระบบจะสร้างอุโมงค์เสมือนไปยังสแต็กเครือข่ายของ ChromeOS คุณสามารถส่งแพ็กเก็ต IP ผ่านอุโมงค์ข้อมูลโดยใช้
sendPacket
และจะได้รับแพ็กเกตทั้งหมดที่เกิดขึ้นในอุปกรณ์ ChromeOS โดยใช้เหตุการณ์onPacketReceived
เมื่อผู้ใช้ยกเลิกการเชื่อมต่อจากการกำหนดค่า VPN
onPlatformMessage
จะเริ่มทำงานพร้อมข้อความ"disconnected"
หากไม่จำเป็นต้องกำหนดค่า VPN อีกต่อไป คุณสามารถทำลายได้โดยใช้
destroyConfig
ประเภท
Parameters
พร็อพเพอร์ตี้
-
ที่อยู่
สตริง
ที่อยู่ IP สำหรับอินเทอร์เฟซ VPN ในรูปแบบ CIDR ปัจจุบันโหมดใดโหมดหนึ่งที่สนับสนุน IPv4 เท่านั้น
-
broadcastAddress
string ไม่บังคับ
ที่อยู่บรอดแคสต์สำหรับอินเทอร์เฟซ VPN (ค่าเริ่มต้น: อนุมานจากที่อยู่ IP และมาสก์)
-
dnsServers
สตริง[]
รายการ IP สำหรับเซิร์ฟเวอร์ DNS
-
domainSearch
string[] ไม่บังคับ
รายการโดเมนการค้นหา (ค่าเริ่มต้น: ไม่มีโดเมนการค้นหา)
-
exclusionList
สตริง[]
ยกเว้นการจราจรของข้อมูลในเครือข่ายลงในรายการบล็อก IP ในรูปแบบ CIDR จากอุโมงค์ข้อมูล ซึ่งใช้เพื่อข้ามการรับส่งข้อมูลไปยังและจากเซิร์ฟเวอร์ VPN ได้ เมื่อมีกฎหลายข้อตรงกับปลายทาง กฎที่มีคำนำหน้าตรงกันยาวที่สุดจะเป็นผู้ชนะ รายการที่สอดคล้องกับบล็อก CIDR เดียวกันจะถือว่าเป็นรายการที่ซ้ำกัน ข้อมูลที่ซ้ำกันดังกล่าวในรายการที่จัดเรียง (exclusionList + IntegrationList) จะถูกลบและระบบจะไม่ระบุรายการที่ซ้ำกันที่จะลบออก
-
inclusionList
สตริง[]
รวมการจราจรของข้อมูลในเครือข่ายไปยังรายการบล็อก IP ในรูปแบบ CIDR ไปยังอุโมงค์ข้อมูล คุณใช้พารามิเตอร์นี้เพื่อสร้างอุโมงค์แบบแยกได้ โดยค่าเริ่มต้น ระบบจะไม่เปลี่ยนเส้นทางการจราจรไปยังอุโมงค์ข้อมูล การเพิ่มรายการ "0.0.0.0/0" รายการนี้จะทำให้การรับส่งข้อมูลของผู้ใช้ทั้งหมดเปลี่ยนเส้นทางไปยังอุโมงค์ข้อมูล เมื่อมีกฎหลายข้อตรงกับปลายทาง กฎที่มีคำนำหน้าตรงกันยาวที่สุดจะเป็นผู้ชนะ รายการที่สอดคล้องกับบล็อก CIDR เดียวกันจะถือว่าเป็นรายการที่ซ้ำกัน ข้อมูลที่ซ้ำกันดังกล่าวในรายการที่จัดเรียง (exclusionList + IntegrationList) จะถูกลบและระบบจะไม่ระบุรายการที่ซ้ำกันที่จะลบออก
-
mtu
string ไม่บังคับ
การตั้งค่า MTU สำหรับอินเทอร์เฟซ VPN (ค่าเริ่มต้น: 1500 ไบต์)
-
เชื่อมต่ออีกครั้ง
string ไม่บังคับ
Chrome 51 ขึ้นไปส่วนขยาย VPN ใช้การเชื่อมต่อใหม่อัตโนมัติหรือไม่
หากเป็นจริง ระบบจะใช้ข้อความแพลตฟอร์ม
linkDown
,linkUp
,linkChanged
,suspend
และresume
เพื่อส่งสัญญาณเหตุการณ์ที่เกี่ยวข้อง หากเป็น "เท็จ" ระบบจะบังคับให้ยกเลิกการเชื่อมต่อ VPN หากโทโพโลยีเครือข่ายมีการเปลี่ยนแปลง และผู้ใช้จะต้องเชื่อมต่อใหม่ด้วยตนเอง (ค่าเริ่มต้น: เท็จ)พร็อพเพอร์ตี้นี้เป็นฟีเจอร์ใหม่ใน Chrome 51 ระบบจะสร้างข้อยกเว้นในเวอร์ชันก่อนหน้านี้ สามารถใช้ use/catch เพื่อเปิดใช้ฟีเจอร์ตามเงื่อนไขตามการสนับสนุนเบราว์เซอร์
PlatformMessage
แพลตฟอร์มจะใช้ Enum เพื่อแจ้งไคลเอ็นต์เกี่ยวกับสถานะเซสชัน VPN
ค่าแจกแจง
"เชื่อมต่อแล้ว"
ระบุว่าเชื่อมต่อการกำหนดค่า VPN แล้ว
"disconnected"
บ่งบอกว่ายกเลิกการเชื่อมต่อการกำหนดค่า VPN แล้ว
"error"
ระบุว่าเกิดข้อผิดพลาดในการเชื่อมต่อ VPN เช่น หมดเวลา คำอธิบายข้อผิดพลาดจะระบุเป็นอาร์กิวเมนต์ข้อผิดพลาดที่ onPlatformMessage
"linkDown"
ระบุว่าการเชื่อมต่อเครือข่ายทางกายภาพเริ่มต้นขัดข้อง
"linkUp"
ระบุว่าสำรองข้อมูลการเชื่อมต่อเครือข่ายทางกายภาพเริ่มต้นแล้ว
"linkChanged"
ระบุว่าการเชื่อมต่อเครือข่ายทางกายภาพเริ่มต้นมีการเปลี่ยนแปลง เช่น wifi->mobile.
"ระงับ"
ระบุว่าระบบปฏิบัติการกำลังเตรียมระงับการใช้งาน ทำให้ VPN ควรยกเลิกการเชื่อมต่อ เราไม่รับประกันว่าส่วนขยายนี้จะได้รับรางวัลนี้ก่อนที่จะระงับ
"ดำเนินการต่อ"
ระบุว่าระบบปฏิบัติการกลับมาทำงานอีกครั้งแล้ว และผู้ใช้ได้เข้าสู่ระบบอีกครั้งแล้ว VPN ควรพยายามเชื่อมต่อใหม่
UIEvent
แพลตฟอร์มจะใช้ enum เพื่อระบุเหตุการณ์ที่ทริกเกอร์ onUIEvent
ค่าแจกแจง
"showAddDialog"
ขอให้ไคลเอ็นต์ VPN แสดงกล่องโต้ตอบการเพิ่มการกำหนดค่าให้กับผู้ใช้
"showConfigureDialog"
ขอให้ไคลเอ็นต์ VPN แสดงกล่องโต้ตอบการตั้งค่าการกำหนดค่าให้ผู้ใช้
VpnConnectionState
ไคลเอ็นต์ VPN จะใช้ enum เพื่อแจ้งให้แพลตฟอร์มทราบถึงสถานะปัจจุบันของแพลตฟอร์ม วิธีนี้จะช่วยส่งข้อความที่มีความหมายแก่ผู้ใช้
ค่าแจกแจง
"เชื่อมต่อแล้ว"
ระบุว่าการเชื่อมต่อ VPN สำเร็จ
"failure"
ระบุว่าการเชื่อมต่อ VPN ล้มเหลว
เมธอด
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
)
สร้างการกำหนดค่า VPN ใหม่ที่ยังคงอยู่ในเซสชันการเข้าสู่ระบบหลายเซสชันของผู้ใช้
พารามิเตอร์
-
ชื่อ
สตริง
ชื่อของการกำหนดค่า VPN
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(id: string) => void
-
id
สตริง
รหัสที่ไม่ซ้ำกันสำหรับการกำหนดค่าที่สร้างขึ้น หรือ
undefined
เมื่อล้มเหลว
-
การคืนสินค้า
-
คำมั่นสัญญา<สตริง>
Chrome 96 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
)
ทำลายการกำหนดค่า VPN ที่ส่วนขยายสร้างขึ้น
พารามิเตอร์
-
id
สตริง
รหัสของการกำหนดค่า VPN ที่จะทำลาย
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
คำมั่นสัญญา<โมฆะ>
Chrome 96 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
)
แจ้งสถานะเซสชัน VPN ให้แพลตฟอร์มทราบ การดำเนินการนี้จะสำเร็จก็ต่อเมื่อส่วนขยายเป็นเจ้าของเซสชัน VPN เท่านั้น
พารามิเตอร์
-
สถานะเซสชัน VPN ของไคลเอ็นต์ VPN
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
คำมั่นสัญญา<โมฆะ>
Chrome 96 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
)
ส่งแพ็กเก็ต IP ผ่านอุโมงค์ข้อมูลที่สร้างขึ้นสำหรับเซสชัน VPN การดำเนินการนี้จะสำเร็จก็ต่อเมื่อส่วนขยายเป็นเจ้าของเซสชัน VPN เท่านั้น
พารามิเตอร์
-
ข้อมูล
อาร์เรย์บัฟเฟอร์
แพ็กเก็ต IP ที่จะส่งไปยังแพลตฟอร์ม
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
คำมั่นสัญญา<โมฆะ>
Chrome 96 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
)
ตั้งค่าพารามิเตอร์สำหรับเซสชัน VPN การดำเนินการนี้ควรเรียกใช้ทันทีหลังจากได้รับ "connected"
จากแพลตฟอร์ม การดำเนินการนี้จะสำเร็จก็ต่อเมื่อส่วนขยายเป็นเจ้าของเซสชัน VPN เท่านั้น
พารามิเตอร์
-
พารามิเตอร์
พารามิเตอร์สำหรับเซสชัน VPN
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
คำมั่นสัญญา<โมฆะ>
Chrome 96 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
กิจกรรม
onConfigCreated
chrome.vpnProvider.onConfigCreated.addListener(
callback: function,
)
ทริกเกอร์เมื่อแพลตฟอร์มสร้างการกำหนดค่าสำหรับส่วนขยาย
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(id: string, name: string, data: object) => void
-
id
สตริง
-
ชื่อ
สตริง
-
ข้อมูล
ออบเจ็กต์
-
onConfigRemoved
chrome.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
ทริกเกอร์เมื่อแพลตฟอร์มนำการกำหนดค่าที่สร้างโดยส่วนขยายออก
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(id: string) => void
-
id
สตริง
-
onPacketReceived
chrome.vpnProvider.onPacketReceived.addListener(
callback: function,
)
ทริกเกอร์เมื่อได้รับแพ็กเก็ต IP ผ่านอุโมงค์ข้อมูลสำหรับเซสชัน VPN ของส่วนขยาย
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(data: ArrayBuffer) => void
-
ข้อมูล
อาร์เรย์บัฟเฟอร์
-
onPlatformMessage
chrome.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
ทริกเกอร์เมื่อได้รับข้อความจากแพลตฟอร์มสำหรับการกำหนดค่า VPN ที่เป็นของส่วนขยาย
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(id: string, message: PlatformMessage, error: string) => void
-
id
สตริง
-
ข้อความ
-
ข้อผิดพลาด
สตริง
-
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
ทริกเกอร์เมื่อมีเหตุการณ์ UI สำหรับส่วนขยาย เหตุการณ์ UI คือสัญญาณจากแพลตฟอร์มที่บอกให้แอปทราบว่ากล่องโต้ตอบ UI ต้องแสดงต่อผู้ใช้