chrome.vpnProvider

refresh date: 2026-09-25 robots: noindex

الوصف

استخدِم واجهة برمجة التطبيقات chrome.vpnProvider لتنفيذ برنامج شبكة VPN.

الأذونات

vpnProvider

مدى التوفّر

الإصدار 43 من Chrome والإصدارات الأحدث نظام التشغيل Chrome فقط

الاستخدام

في ما يلي الاستخدام المعتاد لـ 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 أو الإصدارات الأحدث

    ما إذا كانت إضافة شبكة 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()

Promise
chrome.vpnProvider.createConfig(
  name: string,
  callback?: function,
)
: Promise<string>

تنشئ هذه الطريقة إعدادات جديدة لشبكة VPN تظل محفوظة في جلسات تسجيل دخول متعددة للمستخدم.

المعلمات

  • الاسم

    سلسلة

    اسم إعدادات شبكة VPN

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    (id: string) => void

    • id

      سلسلة

      معرّف فريد للإعداد الذي تم إنشاؤه، أو undefined في حال تعذّر الإنشاء

المرتجعات

  • وعد<سلسلة>

    الإصدار 96 من Chrome أو الإصدارات الأحدث

    تعرض هذه الطريقة Promise يتم حلّه عند إنشاء الإعدادات أو رفضه في حال حدوث خطأ.

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

destroyConfig()

Promise
chrome.vpnProvider.destroyConfig(
  id: string,
  callback?: function,
)
: Promise<void>

يؤدي هذا الإذن إلى إتلاف إعدادات شبكة VPN التي أنشأتها الإضافة.

المعلمات

  • id

    سلسلة

    رقم تعريف إعدادات شبكة VPN المطلوب إزالتها

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    () => void

المرتجعات

  • وعد<فراغ>

    الإصدار 96 من Chrome أو الإصدارات الأحدث

    تعرض هذه الطريقة كائن Promise يتم حله عند إتلاف الإعدادات أو رفضه في حال حدوث خطأ.

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

notifyConnectionStateChanged()

Promise
chrome.vpnProvider.notifyConnectionStateChanged(
  state: VpnConnectionState,
  callback?: function,
)
: Promise<void>

يُعلم المنصة بحالة جلسة شبكة VPN. ولن تنجح هذه العملية إلا عندما تكون جلسة شبكة VPN مملوكة للإضافة.

المعلمات

  • الولاية

    حالة جلسة شبكة VPN لبرنامج VPN

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    () => void

المرتجعات

  • وعد<فراغ>

    الإصدار 96 من Chrome أو الإصدارات الأحدث

    تعرض هذه الطريقة كائن Promise يتم حله عند اكتمال الإشعار أو رفضه في حال حدوث خطأ.

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

sendPacket()

Promise
chrome.vpnProvider.sendPacket(
  data: ArrayBuffer,
  callback?: function,
)
: Promise<void>

يتم إرسال حزمة IP عبر النفق الذي تم إنشاؤه لجلسة شبكة VPN. ولن تنجح هذه العملية إلا عندما تكون جلسة شبكة VPN مملوكة للإضافة.

المعلمات

  • البيانات

    ArrayBuffer

    حزمة IP التي سيتم إرسالها إلى المنصة

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    () => void

المرتجعات

  • وعد<فراغ>

    الإصدار 96 من Chrome أو الإصدارات الأحدث

    تعرض هذه الطريقة كائن Promise يتم حله عند إرسال الحزمة أو رفضه في حال حدوث خطأ.

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

setParameters()

Promise
chrome.vpnProvider.setParameters(
  parameters: Parameters,
  callback?: function,
)
: Promise<void>

يضبط مَعلمات جلسة شبكة VPN. يجب استدعاء هذه الدالة فور تلقّي "connected" من المنصة. ولن تنجح هذه العملية إلا عندما تكون جلسة شبكة VPN مملوكة للإضافة.

المعلمات

  • المعلمات

    مَعلمات جلسة شبكة VPN

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    () => void

المرتجعات

  • وعد<فراغ>

    الإصدار 96 من Chrome أو الإصدارات الأحدث

    تعرض هذه الطريقة كائن 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

onUIEvent

chrome.vpnProvider.onUIEvent.addListener(
  callback: function,
)

يتم تشغيل هذا الحدث عندما يكون هناك حدث في واجهة المستخدم للإضافة. أحداث واجهة المستخدم هي إشارات من المنصة تشير إلى التطبيق بأنّه يجب عرض مربّع حوار واجهة المستخدم للمستخدم.

المعلمات

  • callback

    دالة

    تظهر المَعلمة callback على النحو التالي:

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

    • حدث
    • id

      string اختياري