chrome.vpnProvider

refresh date: 2026-09-25 robots: noindex

شرح

از chrome.vpnProvider API برای پیاده‌سازی کلاینت VPN استفاده کنید.

اجازه‌ها

vpnProvider

دردسترس بودن

Chrome نسخه ۴۳ به بالا فقط ChromeOS

کاربرد

استفاده معمول از vpnProvider به‌صورت زیر است:

  • بااستفاده از روش createConfig، پیکربندی‌های وی‌پی‌ان ایجاد کنید. پیکربندی VPN ورودی پایداری است که در میانای کاربری ChromeOS بومی به کاربر نشان داده می‌شود. کاربر می‌تواند پیکربندی VPN را از فهرست انتخاب کند و به آن متصل شود یا اتصالش را قطع کند.

  • شنوندگان را به رویدادهای onPlatformMessage، onPacketReceived، و onConfigRemoved اضافه کنید.

  • وقتی کاربر به پیکربندی VPN متصل می‌شود، onPlatformMessage با پیام "connected" دریافت خواهد شد. به دوره بین پیام‌های "connected" و "disconnected" جلسه VPN می‌گوییم. در این دوره زمانی، گفته می‌شود افزونه‌ای که پیام را دریافت می‌کند مالک جلسه VPN است.

  • اتصال به سرور وی‌پی‌ان را آغاز کنید و کارخواه وی‌پی‌ان را راه‌اندازی کنید.

  • پارامترهای اتصال را بااستفاده از setParameters تنظیم کنید.

  • وضعیت اتصال را بااستفاده از notifyConnectionStateChanged به‌عنوان "connected" اعلام کنید.

  • وقتی مراحل بالا بدون خطا تکمیل شود، تونلی مجازی به پشته شبکه ChromeOS ایجاد می‌شود. بسته‌های IP را می‌توان بااستفاده از sendPacket ازطریق تونل ارسال کرد و هر بسته‌ای که از دستگاه ChromeOS منشأ می‌گیرد بااستفاده از رویداد onPacketReceived دریافت خواهد شد.

  • وقتی کاربر از پیکربندی VPN قطع می‌شود، onPlatformMessage با پیام "disconnected" فعال می‌شود.

  • اگر پیکربندی VPN دیگر لازم نباشد، می‌توان آن را بااستفاده از destroyConfig ازبین برد.

انواع

Parameters

مشخصات

  • نشانی

    رشته

    نشانی IP برای میانای VPN در نماد CIDR. درحال‌حاضر IPv4 تنها حالت پشتیبانی‌شده است.

  • broadcastAddress

    رشته اختیاری

    آدرس شبکه همه‌فرستی برای میانای VPN. (پیش‌فرض: از نشانی IP و ماسک استنتاج شده است)

  • dnsServers

    string[]

    فهرستی از نشانی‌های IP برای سرورهای ساناد.

  • domainSearch

    رشته[] اختیاری

    فهرستی از دامنه‌های جستجو. (پیش‌فرض: بدون دامنه جستجو)

  • exclusionList

    string[]

    ترافیک شبکه به فهرست بلوک‌های IP در نماد CIDR را از تونل مستثنی کنید. از این گزینه می‌توان برای دور زدن ترافیک به و از سرور VPN استفاده کرد. وقتی قوانین زیادی با مقصد مطابقت داشته باشد، قانونی که طولانی‌ترین پیشوند منطبق را داشته باشد برنده می‌شود. ورودی‌هایی که با بلوک CIDR یکسانی مطابقت دارند به‌عنوان تکراری درنظر گرفته می‌شوند. این موارد تکراری در فهرست مرتب‌شده (exclusionList + inclusionList) حذف می‌شوند و ورودی تکراری دقیقی که حذف خواهد شد تعریف نشده است.

  • inclusionList

    string[]

    ترافیک شبکه را به فهرست بلوک‌های IP در نماد CIDR به تونل اضافه کنید. از این پارامتر می‌توان برای راه‌اندازی تونل تقسیم‌شده استفاده کرد. به‌طور پیش‌فرض، هیچ ترافیکی به تونل هدایت نمی‌شود. با افزودن ورودی «0.0.0.0/0» به این فهرست، همه ترافیک کاربر به تونل هدایت می‌شود. وقتی قوانین زیادی با مقصد مطابقت داشته باشد، قانونی که طولانی‌ترین پیشوند منطبق را داشته باشد برنده می‌شود. ورودی‌هایی که با بلوک CIDR یکسانی مطابقت دارند به‌عنوان تکراری درنظر گرفته می‌شوند. این موارد تکراری در فهرست مرتب‌شده (exclusionList + inclusionList) حذف می‌شوند و ورودی تکراری دقیقی که حذف خواهد شد تعریف نشده است.

  • mtu

    رشته اختیاری

    تنظیم MTU برای میانای VPN. (پیش‌فرض: ۱۵۰۰ بایت)

  • اتصال مجدد

    رشته اختیاری

    Chrome نسخه ۵۱ به بالا

    اینکه افزونه VPN اتصال مجدد خودکار را اجرا می‌کند یا نه.

    اگر درست باشد، از پیام‌های پلاتفرم linkDown، linkUp، linkChanged، suspend، و resume برای علامت دادن به رویدادهای مربوطه استفاده خواهد شد. اگر نادرست باشد، درصورت تغییر توپولوژی شبکه، سیستم VPN را به‌اجبار قطع می‌کند و کاربر باید به‌صورت دستی دوباره متصل شود. (پیش‌فرض: نادرست)

    این ویژگی در Chrome 51 جدید است؛ در نسخه‌های قبلی استثنا ایجاد می‌کند. try/catch می‌تواند برای فعال کردن مشروط ویژگی براساس پشتیبانی مرورگر استفاده شود.

PlatformMessage

پلاتفرم از enum برای مطلع کردن کارخواه از وضعیت جلسه VPN استفاده می‌کند.

شمارشی

«متصل»
نشان می‌دهد که پیکربندی VPN متصل شده است.

«قطع‌شده»
نشان می‌دهد که پیکربندی VPN قطع شده است.

«خطا»
نشان می‌دهد که خطایی در اتصال VPN رخ داده است، برای مثال وقفه زمانی. شرح خطا به‌عنوان آرگومان خطا به onPlatformMessage داده می‌شود.

«linkDown»
نشان می‌دهد که اتصال شبکه فیزیکی پیش‌فرض قطع است.

«linkUp»
نشان می‌دهد که اتصال شبکه فیزیکی پیش‌فرض دوباره برقرار شده است.

"linkChanged"
نشان می‌دهد که اتصال شبکه فیزیکی پیش‌فرض تغییر کرده است، مثلاً wifi->mobile.

«تعلیق»
نشان می‌دهد که سیستم‌عامل درحال آماده شدن برای تعلیق است، بنابراین VPN باید اتصالش را قطع کند. تضمینی وجود ندارد که افزونه این رویداد را قبل‌از تعلیق دریافت کند.

«resume»
نشان می‌دهد که سیستم‌عامل ازسر گرفته شده است و کاربر دوباره به سیستم وارد شده است، بنابراین VPN باید دوباره متصل شود.

UIEvent

پلاتفرم از enum برای نشان دادن رویدادی که onUIEvent را راه‌اندازی کرده است استفاده می‌کند.

شمارشی

«showAddDialog»
درخواست می‌کند که کارخواه VPN چارگوش گفتگوی افزودن پیکربندی را به کاربر نشان دهد.

«showConfigureDialog»
درخواست می‌کند که کارخواه VPN چارگوش گفتگوی تنظیمات پیکربندی را به کاربر نشان دهد.

VpnConnectionState

کارخواه VPN از این شمارش برای اطلاع دادن وضعیت فعلی خود به پلاتفرم استفاده می‌کند. این کار به ارائه پیام‌های معنی‌دار به کاربر کمک می‌کند.

شمارشی

«متصل»
مشخص می‌کند که اتصال VPN موفقیت‌آمیز بوده است.

«failure»
مشخص می‌کند که اتصال وی‌پی‌ان ناموفق بوده است.

روش‌ها

createConfig()

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

پیکربندی VPN جدیدی ایجاد می‌کند که در چندین جلسه ورود به سیستم کاربر باقی می‌ماند.

پارامترها

  • نام

    رشته

    نام پیکربندی VPN.

  • تماس برگشتی

    تابع اختیاری

    پارامتر callback به‌صورت زیر است:

    (id: string) => void

    • id

      رشته

      شناسه یکتا برای پیکربندی ایجادشده، یا undefined درصورت ناموفق بودن.

بازگشتی‌ها

  • Promise<string>

    Chrome نسخه ۹۶ به بالا

    یک Promise برمی‌گرداند که وقتی پیکربندی ایجاد می‌شود حل می‌شود یا اگر خطایی وجود داشته باشد رد می‌شود.

    ‫Promises فقط برای «مانیفست نسخه ۳» و نسخه‌های جدیدتر پشتیبانی می‌شود، پلاتفرم‌های دیگر باید از callbacks استفاده کنند.

destroyConfig()

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

پیکربندی VPN ایجادشده توسط افزونه را ازبین می‌برد.

پارامترها

  • id

    رشته

    شناسه پیکربندی VPN برای ازبین بردن.

  • تماس برگشتی

    تابع اختیاری

    پارامتر callback به‌صورت زیر است:

    () => void

بازگشتی‌ها

  • Promise<void>

    Chrome نسخه ۹۶ به بالا

    یک Promise برمی‌گرداند که وقتی پیکربندی ازبین می‌رود حل می‌شود یا اگر خطایی وجود داشته باشد رد می‌شود.

    ‫Promises فقط برای «مانیفست نسخه ۳» و نسخه‌های جدیدتر پشتیبانی می‌شود، پلاتفرم‌های دیگر باید از callbacks استفاده کنند.

notifyConnectionStateChanged()

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

وضعیت جلسه VPN را به پلاتفرم اطلاع می‌دهد. این کار فقط زمانی موفقیت‌آمیز خواهد بود که جلسه VPN متعلق به افزونه باشد.

پارامترها

  • ایالت

    وضعیت جلسه VPN کارخواه VPN.

  • تماس برگشتی

    تابع اختیاری

    پارامتر callback به‌صورت زیر است:

    () => void

بازگشتی‌ها

  • Promise<void>

    Chrome نسخه ۹۶ به بالا

    یک Promise برمی‌گرداند که وقتی اعلان کامل می‌شود حل می‌شود یا اگر خطایی وجود داشته باشد رد می‌شود.

    ‫Promises فقط برای «مانیفست نسخه ۳» و نسخه‌های جدیدتر پشتیبانی می‌شود، پلاتفرم‌های دیگر باید از callbacks استفاده کنند.

sendPacket()

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

بسته IP را ازطریق تونل ایجادشده برای جلسه VPN ارسال می‌کند. این کار فقط زمانی موفقیت‌آمیز خواهد بود که جلسه VPN متعلق به افزونه باشد.

پارامترها

  • داده

    ArrayBuffer

    بسته IP که باید به پلاتفرم ارسال شود.

  • تماس برگشتی

    تابع اختیاری

    پارامتر callback به‌صورت زیر است:

    () => void

بازگشتی‌ها

  • Promise<void>

    Chrome نسخه ۹۶ به بالا

    یک Promise برمی‌گرداند که وقتی بسته ارسال می‌شود حل می‌شود یا اگر خطایی وجود داشته باشد رد می‌شود.

    ‫Promises فقط برای «مانیفست نسخه ۳» و نسخه‌های جدیدتر پشتیبانی می‌شود، پلاتفرم‌های دیگر باید از callbacks استفاده کنند.

setParameters()

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

پارامترهای جلسه VPN را تنظیم می‌کند. این باید بلافاصله پس‌از دریافت "connected" از پلاتفرم فراخوانی شود. این کار فقط زمانی موفقیت‌آمیز خواهد بود که جلسه VPN متعلق به افزونه باشد.

پارامترها

  • پارامترها

    پارامترهای جلسه VPN.

  • تماس برگشتی

    تابع اختیاری

    پارامتر callback به‌صورت زیر است:

    () => void

بازگشتی‌ها

  • Promise<void>

    Chrome نسخه ۹۶ به بالا

    یک Promise برمی‌گرداند که وقتی پارامترها تنظیم می‌شوند حل می‌شود یا اگر خطایی وجود داشته باشد رد می‌شود.

    ‫Promises فقط برای «مانیفست نسخه ۳» و نسخه‌های جدیدتر پشتیبانی می‌شود، پلاتفرم‌های دیگر باید از callbacks استفاده کنند.

رویدادها

onConfigCreated

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

وقتی فعال می‌شود که پیکربندی‌ای توسط پلاتفرم برای افزونه ایجاد شود.

پارامترها

  • تماس برگشتی

    عملکرد

    پارامتر callback به‌صورت زیر است:

    (id: string, name: string, data: object) => void

    • id

      رشته

    • نام

      رشته

    • داده

      شیء

onConfigRemoved

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

زمانی فعال می‌شود که پیکربندی ایجادشده توسط افزونه از پلاتفرم برداشته شود.

پارامترها

  • تماس برگشتی

    عملکرد

    پارامتر callback به‌صورت زیر است:

    (id: string) => void

    • id

      رشته

onPacketReceived

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

وقتی راه‌اندازی می‌شود که بسته IP ازطریق تونل برای جلسه VPN متعلق به افزونه دریافت شود.

پارامترها

  • تماس برگشتی

    عملکرد

    پارامتر callback به‌صورت زیر است:

    (data: ArrayBuffer) => void

    • داده

      ArrayBuffer

onPlatformMessage

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

وقتی پیامی از پلاتفرم برای پیکربندی VPN متعلق به افزونه دریافت می‌شود، راه‌اندازی می‌شود.

پارامترها

  • تماس برگشتی

    عملکرد

    پارامتر callback به‌صورت زیر است:

    (id: string, message: PlatformMessage, error: string) => void

onUIEvent

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

Triggered when there is a UI event for the extension. رویدادهای واسط کاربر سیگنال‌هایی از پلاتفرم هستند که به برنامه نشان می‌دهند که باید کادر گفتگوی واسط کاربر به کاربر نشان داده شود.

پارامترها

  • تماس برگشتی

    عملکرد

    پارامتر callback به‌صورت زیر است:

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

    • رویداد
    • id

      رشته اختیاری