chrome.vpnProvider

تاریخ بازآوری: ۲۰۲۶-۰۹-۲۵ روبات‌ها: noindex

شرح

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

اجازه‌ها

vpnProvider

دردسترس بودن

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

کاربرد

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

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

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

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

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

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

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

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

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

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

انواع

Parameters

مشخصات

  • نشانی

    رشته

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

  • broadcastAddress

    رشته اختیاری

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

  • dnsServers

    رشته[]

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

  • domainSearch

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

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

  • exclusionList

    رشته[]

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

  • inclusionList

    رشته[]

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

  • mtu

    رشته اختیاری

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

  • اتصال مجدد

    رشته اختیاری

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

    اینکه افزونه وی‌پی‌ان بازاتصال خودکار را پیاده‌سازی می‌کند یا نه.

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

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

PlatformMessage

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

شمارشی

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

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

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

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

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

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

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

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

UIEvent

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

شمارشی

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

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

VpnConnectionState

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

شمارشی

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

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

روش‌ها

createConfig()

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

پیکربندی 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 برمی‌گرداند که وقتی پیکربندی ازبین می‌رود حل می‌شود یا اگر خطایی وجود داشته باشد رد می‌شود.

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

notifyConnectionStateChanged()

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

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

پارامترها

  • ایالت

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

  • تماس برگشتی

    تابع اختیاری

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

    () => void

بازگشتی‌ها

  • Promise<void>

    Chrome نسخه ۹۶ و بالاتر

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

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

sendPacket()

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

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

پارامترها

  • داده

    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 برمی‌گرداند که وقتی پارامترها تنظیم می‌شوند حل می‌شود یا اگر خطایی وجود داشته باشد رد می‌شود.

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

رویدادها

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 ازطریق تونل برای جلسه وی‌پی‌ان متعلق به افزونه دریافت می‌شود، راه‌اندازی می‌شود.

پارامترها

  • تماس برگشتی

    عملکرد

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

    (data: ArrayBuffer) => void

    • داده

      ArrayBuffer

onPlatformMessage

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

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

پارامترها

  • تماس برگشتی

    عملکرد

    پارامتر 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

      رشته اختیاری