الوصف
استخدِم واجهة برمجة التطبيقات chrome.vpnProvider لتنفيذ برنامج شبكة VPN.
الأذونات
vpnProviderمدى التوفّر
المفاهيم والاستخدام
في ما يلي الاستخدام المعتاد لـ browser.vpnProvider:
يمكنك إنشاء إعدادات شبكة VPN من خلال طلب
createConfig(). إعدادات شبكة VPN هي إدخال دائم يظهر للمستخدم في واجهة مستخدم ChromeOS. يمكن للمستخدم اختيار إعدادات شبكة VPN من قائمة والاتصال بها أو قطع الاتصال بها.أضِف أدوات معالجة إلى الأحداث
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
string[]
قائمة بعناوين IP لخوادم نظام أسماء النطاقات
-
domainSearch
string[] اختياري
قائمة بنطاقات البحث (الإعداد التلقائي: لا يوجد نطاق بحث)
-
exclusionList
string[]
استبعاد حركة بيانات الشبكة إلى قائمة مجموعات عناوين IP في تدوين CIDR من النفق ويمكن استخدام ذلك لتجاوز حركة البيانات من خادم VPN وإليه. عندما تتطابق قواعد متعددة مع وجهة معيّنة، تفوز القاعدة التي تتضمّن أطول بادئة مطابقة. يتم التعامل مع الإدخالات التي تتوافق مع مجموعة CIDR نفسها على أنّها مكرّرة. تتم إزالة هذه التكرارات في القائمة المجمّعة (exclusionList + inclusionList)، ولا يتم تحديد الإدخال المكرّر بالضبط الذي ستتم إزالته.
-
inclusionList
string[]
تضمين حركة بيانات الشبكة في قائمة مجموعات عناوين IP في تدوين CIDR إلى النفق يمكن استخدام هذه المَعلمة لإعداد نفق مقسَّم. لا يتم توجيه أي زيارات إلى النفق تلقائيًا. تؤدي إضافة الإدخال "0.0.0.0/0" إلى هذه القائمة إلى إعادة توجيه كل زيارات المستخدمين إلى النفق. عندما تتطابق قواعد متعددة مع وجهة معيّنة، تفوز القاعدة التي تتضمّن أطول بادئة مطابقة. يتم التعامل مع الإدخالات التي تتوافق مع مجموعة CIDR نفسها على أنّها مكرّرة. تتم إزالة هذه التكرارات في القائمة المجمّعة (exclusionList + inclusionList)، ولا يتم تحديد الإدخال المكرّر بالضبط الذي ستتم إزالته.
-
mtu
string اختياري
إعداد وحدة الإرسال الكبرى (MTU) لواجهة شبكة VPN (الإعداد التلقائي: 1500 بايت)
-
إعادة الربط
string اختياري
الإصدار 51 من Chrome والإصدارات الأحدث browser.* منذ الإصدار 148 من Chromeما إذا كانت إضافة شبكة VPN تنفّذ إعادة الاتصال التلقائي أم لا
في حال ضبطها على "صحيح"، سيتم استخدام رسائل المنصة
linkDownوlinkUpوlinkChangedوsuspendوresumeللإشارة إلى الأحداث المعنيّة. وإذا تم ضبطها على "خطأ"، سيقطع النظام اتصال شبكة VPN بالقوة في حال تغيّر هيكل الشبكة، وسيحتاج المستخدم إلى إعادة الاتصال يدويًا. (القيمة التلقائية: false)هذه السمة جديدة في الإصدار 51 من Chrome، وستؤدي إلى إنشاء استثناء في الإصدارات السابقة. يمكن استخدام try/catch لتفعيل الميزة بشكل مشروط استنادًا إلى توافق المتصفّح.
PlatformMessage
يستخدم النظام الأساسي التعداد لإعلام العميل بحالة جلسة شبكة VPN.
Enum
"connected"
تشير إلى أنّه تم الاتصال بإعدادات شبكة VPN.
"disconnected"
تشير إلى أنّ إعدادات شبكة VPN غير متصلة.
"error"
تشير إلى حدوث خطأ في الاتصال عبر شبكة VPN، مثل انتهاء المهلة. يتم تقديم وصف للخطأ كوسيطة الخطأ في onPlatformMessage.
"linkDown"
يشير إلى أنّ الاتصال التلقائي بالشبكة الفعلية معطَّل.
"linkUp"
يشير إلى أنّ الاتصال التلقائي بالشبكة الفعلية قد عاد إلى العمل.
"linkChanged"
تشير إلى أنّ الاتصال التلقائي بالشبكة الفعلية قد تغيّر، مثل الانتقال من شبكة Wi-Fi إلى شبكة الجوّال.
"suspend"
تشير إلى أنّ نظام التشغيل يستعد للتعليق، لذا يجب أن تقطع شبكة VPN اتصالها. ولا نضمن أن تتلقّى الإضافة هذا الحدث قبل تعليقها.
"resume"
يشير إلى أنّ نظام التشغيل قد استأنف العمل وأنّ المستخدم قد سجّل الدخول مرة أخرى، لذا يجب أن تحاول شبكة VPN إعادة الاتصال.
UIEvent
يستخدم النظام الأساسي التعداد للإشارة إلى الحدث الذي أدّى إلى تفعيل onUIEvent.
Enum
"showAddDialog"
يطلب من عميل شبكة VPN عرض مربّع حوار إضافة الإعدادات للمستخدم.
"showConfigureDialog"
يطلب من عميل شبكة VPN عرض مربّع حوار إعدادات الضبط للمستخدم.
VpnConnectionState
يستخدم عميل شبكة VPN التعداد لإبلاغ المنصة بحالته الحالية. يساعد ذلك في تقديم رسائل مفيدة للمستخدم.
Enum
"connected"
تشير إلى أنّ الاتصال عبر شبكة VPN تم بنجاح.
"failure"
يشير إلى تعذُّر الاتصال عبر شبكة VPN.
الطُرق
createConfig()
browser.vpnProvider.createConfig(
name: string,
): Promise<string>
تنشئ هذه الطريقة إعدادات جديدة لشبكة VPN تظل محفوظة في جلسات تسجيل دخول متعددة للمستخدم.
المعلمات
-
الاسم
سلسلة
اسم إعدادات شبكة VPN
المرتجعات
-
وعد<سلسلة>
الإصدار 96 من Chrome والإصدارات الأحدث browser.* منذ الإصدار 148 من Chromeتعرض هذه الطريقة Promise يتم حلّه عند إنشاء الإعدادات أو رفضه في حال حدوث خطأ.
destroyConfig()
browser.vpnProvider.destroyConfig(
id: string,
): Promise<void>
يؤدي هذا الإذن إلى إتلاف إعدادات شبكة VPN التي أنشأتها الإضافة.
المعلمات
-
id
سلسلة
رقم تعريف إعدادات شبكة VPN المطلوب إزالتها
المرتجعات
-
وعد<فراغ>
الإصدار 96 من Chrome والإصدارات الأحدث browser.* منذ الإصدار 148 من Chromeتعرض هذه الطريقة كائن Promise يتم حله عند إتلاف الإعدادات أو رفضه في حال حدوث خطأ.
notifyConnectionStateChanged()
browser.vpnProvider.notifyConnectionStateChanged(
state: VpnConnectionState,
): Promise<void>
يُعلم المنصة بحالة جلسة شبكة VPN. ولن تنجح هذه العملية إلا عندما تكون جلسة شبكة VPN مملوكة للإضافة.
المعلمات
-
الولاية
حالة جلسة شبكة VPN لبرنامج VPN
المرتجعات
-
وعد<فراغ>
الإصدار 96 من Chrome والإصدارات الأحدث browser.* منذ الإصدار 148 من Chromeتعرض هذه الطريقة كائن Promise يتم حله عند اكتمال الإشعار أو رفضه في حال حدوث خطأ.
sendPacket()
browser.vpnProvider.sendPacket(
data: ArrayBuffer,
): Promise<void>
يتم إرسال حزمة IP عبر النفق الذي تم إنشاؤه لجلسة شبكة VPN. ولن تنجح هذه العملية إلا عندما تكون جلسة شبكة VPN مملوكة للإضافة.
المعلمات
-
البيانات
ArrayBuffer
حزمة IP التي سيتم إرسالها إلى المنصة
المرتجعات
-
وعد<فراغ>
الإصدار 96 من Chrome والإصدارات الأحدث browser.* منذ الإصدار 148 من Chromeتعرض هذه الطريقة كائن Promise يتم حله عند إرسال الحزمة أو رفضه في حال حدوث خطأ.
setParameters()
browser.vpnProvider.setParameters(
parameters: Parameters,
): Promise<void>
يضبط مَعلمات جلسة شبكة VPN. يجب استدعاء هذه الدالة فور تلقّي "connected" من المنصة. ولن تنجح هذه العملية إلا عندما تكون جلسة شبكة VPN مملوكة للإضافة.
المعلمات
-
المعلمات
مَعلمات جلسة شبكة VPN
المرتجعات
-
وعد<فراغ>
الإصدار 96 من Chrome والإصدارات الأحدث browser.* منذ الإصدار 148 من Chromeتعرض هذه الطريقة كائن Promise يتم حله عند ضبط المَعلمات أو رفضه في حال حدوث خطأ.
الفعاليات
onConfigCreated
browser.vpnProvider.onConfigCreated.addListener(
callback: function,
)
يتم تفعيل هذا الحدث عندما تنشئ المنصة إعدادات للإضافة.
المعلمات
-
callback
دالة
تظهر المَعلمة
callbackعلى النحو التالي:(id: string, name: string, data: object) => void
-
id
سلسلة
-
الاسم
سلسلة
-
البيانات
عنصر
-
onConfigRemoved
browser.vpnProvider.onConfigRemoved.addListener(
callback: function,
)
يتم تفعيل هذا الحدث عندما تزيل المنصة إعدادًا أنشأته الإضافة.
المعلمات
-
callback
دالة
تظهر المَعلمة
callbackعلى النحو التالي:(id: string) => void
-
id
سلسلة
-
onPacketReceived
browser.vpnProvider.onPacketReceived.addListener(
callback: function,
)
يتم تشغيل هذا الحدث عند تلقّي حزمة IP عبر النفق لجلسة شبكة VPN التي تملكها الإضافة.
المعلمات
-
callback
دالة
تظهر المَعلمة
callbackعلى النحو التالي:(data: ArrayBuffer) => void
-
البيانات
ArrayBuffer
-
onPlatformMessage
browser.vpnProvider.onPlatformMessage.addListener(
callback: function,
)
يتم تشغيل هذا الحدث عند تلقّي رسالة من المنصة لإعدادات شبكة VPN تابعة للإضافة.
المعلمات
-
callback
دالة
تظهر المَعلمة
callbackعلى النحو التالي:(id: string, message: PlatformMessage, error: string) => void
-
id
سلسلة
-
رسالة
-
خطأ
سلسلة
-
onUIEvent
browser.vpnProvider.onUIEvent.addListener(
callback: function,
)
يتم تشغيل هذا الحدث عندما يكون هناك حدث في واجهة المستخدم للإضافة. أحداث واجهة المستخدم هي إشارات من المنصة تشير إلى التطبيق بأنّه يجب عرض مربّع حوار واجهة المستخدم للمستخدم.