refresh date: 2026-09-25 robots: noindex
תיאור
משתמשים ב-API של chrome.vpnProvider כדי להטמיע לקוח VPN.
הרשאות
vpnProviderזמינות
שימוש
השימוש הנפוץ ב-vpnProvider הוא:
יוצרים הגדרות VPN באמצעות השיטה
createConfig. הגדרת VPN היא רשומה קבועה שמוצגת למשתמש בממשק משתמש מקורי של ChromeOS. המשתמש יכול לבחור הגדרת VPN מרשימה ולהתחבר אליה או להתנתק ממנה.מוסיפים פונקציות event listener לאירועים
onPlatformMessage,onPacketReceivedו-onConfigRemoved.כשהמשתמש יתחבר להגדרת ה-VPN, יתקבל
onPlatformMessageעם ההודעה"connected". אנחנו מתייחסים לתקופה שבין ההודעות"connected"ו-"disconnected"כסשן VPN. בפרק הזמן הזה, התוסף שמקבל את ההודעה נחשב לבעלים של סשן ה-VPN.יוזמים חיבור לשרת ה-VPN ומפעילים את לקוח ה-VPN.
מגדירים את הפרמטרים של החיבור באמצעות
setParameters.מודיעים על מצב החיבור כ-
"connected"באמצעותnotifyConnectionStateChanged.אחרי שהשלבים שלמעלה הושלמו ללא שגיאות, נוצרת מנהרה וירטואלית למקבץ הרשת (network stack) של 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 מיישם חיבור מחדש אוטומטי.
אם הערך הוא True, הודעות הפלטפורמה
linkDown,linkUp,linkChanged,suspendו-resumeישמשו לאיתות על האירועים המתאימים. אם הערך הוא False, המערכת תנתק את ה-VPN באופן יזום אם הטופולוגיה של הרשת תשתנה, והמשתמש יצטרך להתחבר מחדש באופן ידני. (ברירת מחדל: false)המאפיין הזה חדש ב-Chrome 51. הוא ייצור חריגה בגרסאות קודמות. אפשר להשתמש ב-try/catch כדי להפעיל את התכונה באופן מותנה על סמך התמיכה בדפדפן.
PlatformMessage
הפלטפורמה משתמשת ב-enum כדי להודיע ללקוח על סטטוס הסשן של ה-VPN.
טיפוסים בני מנייה (enum)
"connected"
מציין שהגדרת ה-VPN מחוברת.
"disconnected"
מציין שהגדרת ה-VPN נותקה.
"error"
מציין שאירעה שגיאה בחיבור דרך VPN, למשל זמן קצוב לתפוגה. תיאור השגיאה מופיע כארגומנט השגיאה של onPlatformMessage.
"linkDown"
מציין שהחיבור הפיזי לרשת שמוגדר כברירת מחדל לא פעיל.
"linkUp"
מציין שהחיבור הפיזי המוגדר כברירת מחדל לרשת חזר לפעול.
"linkChanged"
מציין שהחיבור הפיזי שמוגדר כברירת מחדל לרשת השתנה, למשל Wi-Fi->נייד.
"suspend"
מציין שמערכת ההפעלה מתכוננת להשעיה, ולכן ה-VPN צריך לנתק את החיבור. לא מובטח שהתוסף יקבל את האירוע הזה לפני ההשעיה.
"resume"
מציין שמערכת ההפעלה חזרה לפעול והמשתמש התחבר שוב, ולכן ה-VPN צריך לנסות להתחבר מחדש.
UIEvent
הפלטפורמה משתמשת ב-enum כדי לציין את האירוע שהפעיל את onUIEvent.
טיפוסים בני מנייה (enum)
"showAddDialog"
מבקש מלקוח ה-VPN להציג למשתמש את תיבת הדו-שיח להוספת הגדרה.
"showConfigureDialog"
מבקש מלקוח ה-VPN להציג למשתמש את תיבת הדו-שיח של הגדרות התצורה.
VpnConnectionState
ה-enum משמש את לקוח ה-VPN כדי להודיע לפלטפורמה על המצב הנוכחי שלו. כך אפשר להציג למשתמש הודעות משמעותיות.
טיפוסים בני מנייה (enum)
"connected"
מציין שהחיבור דרך VPN הצליח.
"failure"
מציין שהחיבור דרך VPN נכשל.
Methods
createConfig()
chrome.vpnProvider.createConfig(
name: string,
callback?: function,
): Promise<string>
יוצרת הגדרת VPN חדשה שנשמרת בכמה סשנים של התחברות של המשתמש.
פרמטרים
-
שם
מחרוזת
השם של הגדרת ה-VPN.
-
callback
function optional
הפרמטר
callbackנראה כך:(id: string) => void
-
id [מזהה]
מחרוזת
מזהה ייחודי של ההגדרה שנוצרה, או
undefinedאם הפעולה נכשלה.
-
החזרות
-
Promise<string>
Chrome מגרסה 96 ואילךהפונקציה מחזירה אובייקט Promise שמותאם כשההגדרה נוצרת, או נדחה אם יש שגיאה.
הבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
destroyConfig()
chrome.vpnProvider.destroyConfig(
id: string,
callback?: function,
): Promise<void>
השמדת הגדרת VPN שנוצרה על ידי התוסף.
פרמטרים
-
id [מזהה]
מחרוזת
המזהה של הגדרת ה-VPN שרוצים למחוק.
-
callback
function optional
הפרמטר
callbackנראה כך:() => void
החזרות
-
Promise<void>
Chrome מגרסה 96 ואילךהפונקציה מחזירה אובייקט Promise שמותאם כשההגדרה נמחקת, או נדחה אם יש שגיאה.
הבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
notifyConnectionStateChanged()
chrome.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
callback?: function,
): Promise<void>
הודעה לפלטפורמה על מצב הסשן של ה-VPN. הפעולה הזו תצליח רק אם סשן ה-VPN נמצא בבעלות התוסף.
פרמטרים
-
מדינה (State)
מצב הסשן של לקוח ה-VPN.
-
callback
function optional
הפרמטר
callbackנראה כך:() => void
החזרות
-
Promise<void>
Chrome מגרסה 96 ואילךהפונקציה מחזירה אובייקט Promise שמותאם כשההתראה מסתיימת, או נדחה אם יש שגיאה.
הבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
sendPacket()
chrome.vpnProvider.sendPacket(
data: ArrayBuffer,
callback?: function,
): Promise<void>
שליחת חבילת IP דרך המנהרה שנוצרה לסשן ה-VPN. הפעולה הזו תצליח רק אם סשן ה-VPN נמצא בבעלות התוסף.
פרמטרים
-
נתונים
ArrayBuffer
חבילת ה-IP שתישלח לפלטפורמה.
-
callback
function optional
הפרמטר
callbackנראה כך:() => void
החזרות
-
Promise<void>
Chrome מגרסה 96 ואילךהפונקציה מחזירה אובייקט Promise שמותאם כשהחבילה נשלחת, או נדחה אם יש שגיאה.
הבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
setParameters()
chrome.vpnProvider.setParameters(
parameters: Parameters,
callback?: function,
): Promise<void>
מגדיר את הפרמטרים של סשן ה-VPN. צריך להפעיל את הפונקציה הזו מיד אחרי שמתקבלת "connected" מהפלטפורמה. הפעולה הזו תצליח רק אם סשן ה-VPN נמצא בבעלות התוסף.
פרמטרים
-
פרמטרים
הפרמטרים של סשן ה-VPN.
-
callback
function optional
הפרמטר
callbackנראה כך:() => void
החזרות
-
Promise<void>
Chrome מגרסה 96 ואילךהפונקציה מחזירה אובייקט Promise שמותאם כשהפרמטרים מוגדרים, או נדחה אם יש שגיאה.
הבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
אירועים
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 [מזהה]
מחרוזת
-
הודעה
-
error
מחרוזת
-
onUIEvent
chrome.vpnProvider.onUIEvent.addListener(
callback: function,
)
מופעל כשיש אירוע בממשק המשתמש של התוסף. אירועים בממשק המשתמש הם אותות מהפלטפורמה שמציינים לאפליקציה שצריך להציג למשתמש תיבת דו-שיח בממשק המשתמש.