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