chrome.runtime (original) (raw)

توضیحات

از API chrome.runtime برای بازیابی سرویس ورکر، بازگرداندن جزئیات مربوط به مانیفست و گوش دادن به رویدادها و پاسخ دادن به آنها در چرخه حیات افزونه استفاده کنید. همچنین می‌توانید از این API برای تبدیل مسیر نسبی URLها به URLهای کاملاً واجد شرایط استفاده کنید.

اکثر اعضای این API به هیچ مجوزی نیاز ندارند . این مجوز برای connectNative() ، sendNativeMessage() و onNativeConnect مورد نیاز است.

مثال زیر نحوه‌ی اعلان مجوز "nativeMessaging" در مانیفست را نشان می‌دهد:

مانیفست.json:

{
  "name": "My extension",
  ...
  "permissions": [
    "nativeMessaging"
  ],
  ...
}

مفاهیم و کاربردها

API زمان اجرا، متدهایی را برای پشتیبانی از تعدادی از حوزه‌هایی که افزونه‌های شما می‌توانند از آنها استفاده کنند، ارائه می‌دهد:

انتقال پیام

افزونه شما می‌تواند با استفاده از این متدها و رویدادها با زمینه‌های مختلف درون افزونه و همچنین با سایر افزونه‌ها ارتباط برقرار کند: connect() ، onConnect ، onConnectExternal ، sendMessage() ، onMessage و onMessageExternal . علاوه بر این، افزونه شما می‌تواند با استفاده از connectNative() و sendNativeMessage() پیام‌ها را به برنامه‌های بومی روی دستگاه کاربر ارسال کند.

دسترسی به متادیتای افزونه و پلتفرم

این متدها به شما امکان می‌دهند چندین قطعه خاص از فراداده‌ها (metadata) در مورد افزونه و پلتفرم را بازیابی کنید. متدهای این دسته شامل getManifest() و getPlatformInfo() می‌شوند.

مدیریت چرخه عمر افزونه‌ها و گزینه‌ها

این ویژگی‌ها به شما امکان می‌دهند برخی عملیات متا را روی افزونه انجام دهید و صفحه گزینه‌ها را نمایش دهید. متدها و رویدادهای این دسته شامل onInstalled ، onStartup ، openOptionsPage() ، reload() ، requestUpdateCheck() و setUninstallURL() هستند.

ابزارهای کمکی

این متدها کاربردهایی مانند تبدیل نمایش منابع داخلی به فرمت‌های خارجی را ارائه می‌دهند. متدهای این دسته شامل getURL() می‌شوند.

ابزارهای حالت کیوسک

این متدها فقط در ChromeOS در دسترس هستند و عمدتاً برای پشتیبانی از پیاده‌سازی‌های کیوسک وجود دارند. متدهای این دسته شامل restart() و restartAfterDelay() ` هستند.

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

وقتی یک افزونه‌ی از حالت فشرده خارج شده دوباره بارگذاری می‌شود، این به عنوان یک به‌روزرسانی در نظر گرفته می‌شود. این بدان معناست که رویداد chrome.runtime.onInstalled با دلیل "update" اجرا می‌شود. این شامل زمانی نیز می‌شود که افزونه با chrome.runtime.reload() دوباره بارگذاری می‌شود.

موارد استفاده

اضافه کردن تصویر به صفحه وب

برای اینکه یک صفحه وب بتواند به یک فایل میزبانی شده در دامنه دیگری دسترسی پیدا کند، باید آدرس اینترنتی (URL) کامل منبع را مشخص کند (مثلاً <img src="https://example.com/logo.png"> ). همین امر در مورد افزودن یک فایل افزونه به یک صفحه وب نیز صادق است. دو تفاوت این است که فایل‌های افزونه باید به عنوان منابع قابل دسترسی از طریق وب نمایش داده شوند و اینکه معمولاً اسکریپت‌های محتوا مسئول تزریق فایل‌های افزونه هستند.

در این مثال، افزونه با استفاده از runtime.getURL() فایل logo.png را به صفحه‌ای که اسکریپت محتوا در آن تزریق می‌شود اضافه می‌کند تا یک URL کاملاً واجد شرایط ایجاد کند. اما ابتدا، این دارایی باید به عنوان یک منبع قابل دسترسی از طریق وب در مانیفست اعلام شود.

مانیفست.json:

{
  ...
  "web_accessible_resources": [
    {
      "resources": [ "logo.png" ],
      "matches": [ "https://*/*" ]
    }
  ],
  ...
}

محتوای.js:

{ // Block used to avoid setting global variables
  const img = document.createElement('img');
  img.src = chrome.runtime.getURL('logo.png');
  document.body.append(img);
}

ارسال داده از یک اسکریپت محتوا به سرویس ورکر

معمولاً اسکریپت‌های محتوای یک افزونه به داده‌هایی نیاز دارند که توسط بخش دیگری از افزونه، مانند سرویس ورکر، مدیریت می‌شوند. دقیقاً مانند دو پنجره مرورگر که به یک صفحه وب باز می‌شوند، این دو context نمی‌توانند مستقیماً به مقادیر یکدیگر دسترسی داشته باشند. در عوض، افزونه می‌تواند از ارسال پیام برای هماهنگی در این contextهای مختلف استفاده کند.

در این مثال، اسکریپت محتوا برای مقداردهی اولیه رابط کاربری خود به برخی داده‌ها از سرویس ورکر افزونه نیاز دارد. برای دریافت این داده‌ها، پیام get-user-data تعریف شده توسط توسعه‌دهنده را به سرویس ورکر ارسال می‌کند و سرویس ورکر با یک کپی از اطلاعات کاربر پاسخ می‌دهد.

محتوای.js:

// 1. Send a message to the service worker requesting the user's data
chrome.runtime.sendMessage('get-user-data', (response) => {
  // 3. Got an asynchronous response with the data from the service worker
  console.log('received user data', response);
  initializeUI(response);
});

سرویس-ورکر.js:

// Example of a simple user data object
const user = {
  username: 'demo-user'
};

chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
  // 2. A page requested user data, respond with a copy of `user`
  if (message === 'get-user-data') {
    sendResponse(user);
  }
});

جمع‌آوری بازخورد در مورد حذف نصب

بسیاری از افزونه‌ها از نظرسنجی‌های پس از حذف استفاده می‌کنند تا بفهمند که چگونه افزونه می‌تواند به کاربران خود خدمات بهتری ارائه دهد و ماندگاری آنها را بهبود بخشد. مثال زیر نحوه اضافه کردن این قابلیت را نشان می‌دهد.

پس‌زمینه.js:

chrome.runtime.onInstalled.addListener(details => {
  if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
    chrome.runtime.setUninstallURL('https://example.com/extension-survey');
  }
});

مثال‌ها

برای مثال‌های بیشتر از Runtime API، به نسخه آزمایشی Manifest V3 - Web Accessible Resources مراجعه کنید.

انواع

ContextFilter

فیلتری برای تطبیق با برخی از زمینه‌های افزونه. زمینه‌های تطبیق باید با تمام فیلترهای مشخص شده مطابقت داشته باشند؛ هر فیلتری که مشخص نشده باشد با تمام زمینه‌های موجود مطابقت دارد. بنابراین، فیلتری با `{}` با تمام زمینه‌های موجود مطابقت خواهد داشت.

خواص

ContextType

شمارشی

"تب"
نوع زمینه را به عنوان یک تب مشخص می‌کند

"پاپ‌آپ"
نوع زمینه را به عنوان یک پنجره بازشو افزونه مشخص می‌کند

«پیشینه»
نوع زمینه را به عنوان یک سرویس ورکر مشخص می‌کند.

«سند خارج از صفحه»
نوع زمینه را به عنوان یک سند خارج از صفحه مشخص می‌کند.

"پنل کناری"
نوع زمینه را به عنوان یک پنل کناری مشخص می‌کند.

«ابزارهای توسعه‌دهنده»
نوع زمینه را به عنوان ابزارهای توسعه‌دهنده مشخص می‌کند.

ExtensionContext

یک زمینه که محتوای افزونه را میزبانی می‌کند.

خواص

MessageSender

یک شیء حاوی اطلاعاتی درباره متن اسکریپتی که پیام یا درخواستی را ارسال کرده است.

خواص

OnInstalledReason

دلیل اینکه این رویداد در حال ارسال است.

شمارشی

"نصب"
دلیل رویداد را به عنوان نصب مشخص می‌کند.

"به‌روزرسانی"
دلیل رویداد را به عنوان به‌روزرسانی افزونه مشخص می‌کند.

"به‌روزرسانی کروم"
دلیل رویداد را به عنوان به‌روزرسانی کروم مشخص می‌کند.

"به‌روزرسانی ماژول مشترک"
دلیل رویداد را به عنوان به‌روزرسانی یک ماژول مشترک مشخص می‌کند.

OnRestartRequiredReason

دلیل ارسال رویداد. 'app_update' زمانی استفاده می‌شود که راه‌اندازی مجدد به دلیل به‌روزرسانی برنامه به نسخه جدیدتر مورد نیاز باشد. 'os_update' زمانی استفاده می‌شود که راه‌اندازی مجدد به دلیل به‌روزرسانی مرورگر/سیستم‌عامل به نسخه جدیدتر مورد نیاز باشد. 'periodic' زمانی استفاده می‌شود که سیستم بیش از زمان روشن بودن مجاز تعیین‌شده در سیاست سازمانی اجرا شود.

شمارشی

"به‌روزرسانی_برنامه"
دلیل رویداد را به عنوان یک به‌روزرسانی برای برنامه مشخص می‌کند.

"به‌روزرسانی سیستم عامل"
دلیل رویداد را به عنوان به‌روزرسانی سیستم عامل مشخص می‌کند.

"دوره‌ای"
دلیل رویداد را به عنوان یک راه اندازی مجدد دوره ای برنامه مشخص می کند.

PlatformArch

معماری پردازنده دستگاه.

شمارشی

"بازو"
معماری پردازنده را به عنوان arm مشخص می‌کند.

"بازوی ۶۴"
معماری پردازنده را به عنوان arm64 مشخص می‌کند.

"ایکس۸۶-۳۲"
معماری پردازنده را x86-32 مشخص می‌کند.

"ایکس۸۶-۶۴"
معماری پردازنده را x86-64 مشخص می‌کند.

"میپ"
معماری پردازنده را به عنوان mips مشخص می‌کند.

"میپس۶۴"
معماری پردازنده را mips64 مشخص می‌کند.

«ریسک‌وی۶۴»
معماری پردازنده را riscv64 مشخص می‌کند.

PlatformInfo

یک شیء حاوی اطلاعاتی در مورد پلتفرم فعلی.

خواص

PlatformNaclArch

معماری کلاینت بومی. این معماری ممکن است در برخی پلتفرم‌ها با معماری آرچ متفاوت باشد.

شمارشی

"بازو"
معماری کلاینت بومی را به عنوان arm مشخص می‌کند.

"ایکس۸۶-۳۲"
معماری کلاینت بومی را x86-32 مشخص می‌کند.

"ایکس۸۶-۶۴"
معماری کلاینت بومی را x86-64 مشخص می‌کند.

"میپ"
معماری کلاینت بومی را به عنوان mips مشخص می‌کند.

"میپس۶۴"
معماری کلاینت بومی را mips64 مشخص می‌کند.

PlatformOs

سیستم عامل کروم روی آن اجرا می‌شود.

شمارشی

«مک»
سیستم عامل مک او اس را مشخص می‌کند.

"برد"
سیستم عامل ویندوز را مشخص می‌کند.

«اندروید»
سیستم عامل اندروید را مشخص می‌کند.

"کراس"
سیستم عامل کروم را مشخص می‌کند.

«لینوکس»
سیستم عامل لینوکس را مشخص می‌کند.

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

Port

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

خواص

RequestUpdateCheckStatus

نتیجه بررسی به‌روزرسانی.

شمارشی

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

"بدون_به‌روزرسانی"
مشخص می‌کند که هیچ به‌روزرسانی برای نصب موجود نیست.

"به‌روزرسانی_موجود"
مشخص می‌کند که یک به‌روزرسانی برای نصب موجود است.

خواص

lastError

در صورت عدم موفقیت فراخوانی یک تابع API، با یک پیام خطا پر می‌شود؛ در غیر این صورت تعریف نشده است. این فقط در محدوده فراخوانی آن تابع تعریف می‌شود. اگر خطایی ایجاد شود، اما runtime.lastError در فراخوانی قابل دسترسی نباشد، پیامی در کنسول ثبت می‌شود که فهرستی از تابع API که خطا را ایجاد کرده است، ارائه می‌دهد. توابع API که promiseها را برمی‌گردانند، این ویژگی را تنظیم نمی‌کنند.

خواص

روش‌ها

connect()

chrome.runtime.connect(
  extensionId?: string,
  connectInfo?: object,
): Port

تلاش برای اتصال شنونده‌ها (listeners) درون یک افزونه (مانند صفحه پس‌زمینه) یا سایر افزونه‌ها/برنامه‌ها. این برای اسکریپت‌های محتوایی که به فرآیندهای افزونه خود، ارتباطات بین برنامه/افزونه و پیام‌رسانی وب متصل می‌شوند، مفید است. توجه داشته باشید که این به هیچ شنونده‌ای در یک اسکریپت محتوایی متصل نمی‌شود. افزونه‌ها ممکن است از طریق tabs.connect به اسکریپت‌های محتوایی که در تب‌ها تعبیه شده‌اند متصل شوند.

پارامترها

بازگشت‌ها

connectNative()

chrome.runtime.connectNative(
  application: string,
): Port

به یک برنامه بومی در دستگاه میزبان متصل می‌شود. این روش به مجوز "nativeMessaging" نیاز دارد. برای اطلاعات بیشتر به Native Messaging مراجعه کنید.

پارامترها

بازگشت‌ها

getBackgroundPage()

فقط پیش‌زمینه از نسخه ۱۳۳ کروم منسوخ شده است

chrome.runtime.getBackgroundPage(): Promise<Window | undefined>

صفحات پس‌زمینه در افزونه‌های MV3 وجود ندارند.

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

بازگشت‌ها

getContexts()

chrome.runtime.getContexts(
  filter: ContextFilter,
): Promise<ExtensionContext[]>

اطلاعات مربوط به زمینه‌های فعال مرتبط با این افزونه را دریافت می‌کند

پارامترها

بازگشت‌ها

getManifest()

chrome.runtime.getManifest(): object

جزئیات مربوط به برنامه یا افزونه را از فایل مانیفست برمی‌گرداند. شیء برگردانده شده، سریال‌سازی فایل کامل مانیفست است.

getPackageDirectoryEntry()

chrome.runtime.getPackageDirectoryEntry(): Promise

یک DirectoryEntry برای دایرکتوری پکیج برمی‌گرداند.

بازگشت‌ها

getPlatformInfo()

chrome.runtime.getPlatformInfo(): Promise<PlatformInfo>

اطلاعات مربوط به پلتفرم فعلی را برمی‌گرداند.

بازگشت‌ها

getURL()

chrome.runtime.getURL(
  path: string,
): string

یک مسیر نسبی را در دایرکتوری نصب برنامه/افزونه به یک URL کاملاً معتبر تبدیل می‌کند.

پارامترها

بازگشت‌ها

getVersion()

chrome.runtime.getVersion(): string

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

openOptionsPage()

chrome.runtime.openOptionsPage(): Promise

در صورت امکان، صفحه گزینه‌های افزونه خود را باز کنید.

رفتار دقیق ممکن است به کلید options_ui یا options_page در مانیفست شما یا آنچه کروم در آن زمان پشتیبانی می‌کند، بستگی داشته باشد. برای مثال، صفحه ممکن است در یک تب جدید، در chrome://extensions، در یک برنامه باز شود، یا ممکن است فقط روی یک صفحه options باز تمرکز کند. این هرگز باعث بارگذاری مجدد صفحه فراخواننده نمی‌شود.

اگر افزونه‌ی شما صفحه‌ی گزینه‌ها را تعریف نکرده باشد، یا کروم به هر دلیل دیگری موفق به ایجاد آن نشده باشد، تابع فراخوانی، lastError تنظیم خواهد کرد.

بازگشت‌ها

reload()

chrome.runtime.reload(): void

برنامه یا افزونه را مجدداً بارگذاری می‌کند. این متد در حالت کیوسک پشتیبانی نمی‌شود. برای حالت کیوسک، از متد chrome.runtime.restart() استفاده کنید.

requestUpdateCheck()

chrome.runtime.requestUpdateCheck(): Promise

درخواست بررسی فوری به‌روزرسانی برای این برنامه/افزونه را دارد.

مهم : اکثر افزونه‌ها/اپلیکیشن‌ها نباید از این روش استفاده کنند، زیرا کروم از قبل هر چند ساعت یکبار بررسی‌های خودکار را انجام می‌دهد و می‌توانید بدون نیاز به فراخوانی requestUpdateCheck، به رویداد runtime.onUpdateAvailable گوش دهید.

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

نکته: وقتی این تابع با یک تابع فراخوانی می‌شود، به جای برگرداندن یک شیء، دو ویژگی را به عنوان آرگومان‌های جداگانه‌ای که به تابع فراخوانی ارسال می‌شوند، برمی‌گرداند.

بازگشت‌ها

restart()

chrome.runtime.restart(): void

وقتی برنامه در حالت کیوسک اجرا می‌شود، دستگاه ChromeOS را مجدداً راه‌اندازی کنید. در غیر این صورت، برنامه اجرا نمی‌شود.

restartAfterDelay()

chrome.runtime.restartAfterDelay(
  seconds: number,
): Promise

وقتی برنامه پس از ثانیه‌های داده شده در حالت کیوسک اجرا شد، دستگاه ChromeOS را مجدداً راه‌اندازی کنید. اگر قبل از پایان زمان دوباره فراخوانی شود، راه‌اندازی مجدد به تأخیر می‌افتد. اگر با مقدار -1 فراخوانی شود، راه‌اندازی مجدد لغو می‌شود. در حالت غیر کیوسک، این یک عملیات بدون نیاز به اجرا است. فقط توسط اولین افزونه‌ای که این API را فراخوانی می‌کند، مجاز به فراخوانی مکرر آن است.

پارامترها

بازگشت‌ها

sendMessage()

chrome.runtime.sendMessage(
  extensionId?: string,
  message: any,
  options?: object,
): Promise

یک پیام واحد را به شنوندگان رویداد در افزونه شما یا یک افزونه/برنامه دیگر ارسال می‌کند. مشابه runtime.connect است اما فقط یک پیام واحد را با یک پاسخ اختیاری ارسال می‌کند. در صورت ارسال به افزونه شما، رویداد runtime.onMessage در هر فریم از افزونه شما (به جز فریم فرستنده) یا در صورت افزونه متفاوت، runtime.onMessageExternal اجرا می‌شود. توجه داشته باشید که افزونه‌ها نمی‌توانند با استفاده از این روش به اسکریپت‌های محتوا پیام ارسال کنند. برای ارسال پیام به اسکریپت‌های محتوا، tabs.sendMessage استفاده کنید.

پارامترها

بازگشت‌ها

sendNativeMessage()

chrome.runtime.sendNativeMessage(
  application: string,
  message: object,
): Promise

ارسال یک پیام واحد به یک برنامه بومی. این روش به مجوز "nativeMessaging" نیاز دارد.

پارامترها

بازگشت‌ها

setUninstallURL()

chrome.runtime.setUninstallURL(
  url: string,
): Promise

آدرس اینترنتی (URL) مورد بازدید پس از حذف نصب را تنظیم می‌کند. این می‌تواند برای پاکسازی داده‌های سمت سرور، انجام تجزیه و تحلیل و پیاده‌سازی نظرسنجی‌ها استفاده شود. حداکثر ۱۰۲۳ کاراکتر.

پارامترها

بازگشت‌ها

رویدادها

onBrowserUpdateAvailable

chrome.runtime.onBrowserUpdateAvailable.addListener(
  callback: function,
)

لطفا از runtime.onRestartRequired استفاده کنید.

زمانی اجرا می‌شود که به‌روزرسانی کروم در دسترس باشد، اما بلافاصله نصب نمی‌شود زیرا نیاز به راه‌اندازی مجدد مرورگر است.

پارامترها

onConnect

chrome.runtime.onConnect.addListener(
  callback: function,
)

زمانی اجرا می‌شود که اتصالی از یک فرآیند افزونه یا یک اسکریپت محتوا (توسط runtime.connect ) برقرار شود.

پارامترها

onConnectExternal

chrome.runtime.onConnectExternal.addListener(
  callback: function,
)

زمانی اجرا می‌شود که اتصالی از یک افزونه‌ی دیگر (توسط runtime.connect ) یا از یک وب‌سایت خارجیِ قابل اتصال برقرار شود.

پارامترها

onConnectNative

chrome.runtime.onConnectNative.addListener(
  callback: function,
)

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

پارامترها

onInstalled

chrome.runtime.onInstalled.addListener(
  callback: function,
)

وقتی افزونه برای اولین بار نصب می‌شود، وقتی افزونه به نسخه جدید به‌روزرسانی می‌شود، و وقتی Chrome به نسخه جدید به‌روزرسانی می‌شود، اجرا می‌شود.

پارامترها

onMessage

chrome.runtime.onMessage.addListener(
  callback: function,
)

زمانی اجرا می‌شود که پیامی از یک فرآیند افزونه (توسط runtime.sendMessage ) یا یک اسکریپت محتوا (توسط tabs.sendMessage ) ارسال شود.

پارامترها

onMessageExternal

chrome.runtime.onMessageExternal.addListener(
  callback: function,
)

زمانی اجرا می‌شود که پیامی از یک افزونه‌ی دیگر (توسط runtime.sendMessage ) ارسال شود. نمی‌توان از آن در اسکریپت محتوا استفاده کرد.

پارامترها

onRestartRequired

chrome.runtime.onRestartRequired.addListener(
  callback: function,
)

زمانی اجرا می‌شود که یک برنامه یا دستگاهی که روی آن اجرا می‌شود نیاز به راه‌اندازی مجدد داشته باشد. برنامه باید تمام پنجره‌های خود را در اولین زمان مناسب ببندد تا راه‌اندازی مجدد انجام شود. اگر برنامه هیچ کاری انجام ندهد، پس از گذشت یک دوره ۲۴ ساعته، راه‌اندازی مجدد اعمال خواهد شد. در حال حاضر، این رویداد فقط برای برنامه‌های کیوسک سیستم عامل کروم اجرا می‌شود.

پارامترها

onStartup

chrome.runtime.onStartup.addListener(
  callback: function,
)

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

پارامترها

onSuspend

chrome.runtime.onSuspend.addListener(
  callback: function,
)

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

پارامترها

onSuspendCanceled

chrome.runtime.onSuspendCanceled.addListener(
  callback: function,
)

بعد از onSuspend ارسال می‌شود تا نشان دهد که برنامه در نهایت بارگیری نخواهد شد.

پارامترها

onUpdateAvailable

chrome.runtime.onUpdateAvailable.addListener(
  callback: function,
)

زمانی اجرا می‌شود که به‌روزرسانی موجود باشد، اما بلافاصله نصب نشود زیرا برنامه در حال اجرا است. اگر کاری نکنید، به‌روزرسانی دفعه‌ی بعدی که صفحه‌ی پس‌زمینه بارگذاری می‌شود، نصب خواهد شد. اگر می‌خواهید زودتر نصب شود، می‌توانید صریحاً chrome.runtime.reload() را فراخوانی کنید. اگر افزونه‌ی شما از یک صفحه‌ی پس‌زمینه‌ی پایدار استفاده می‌کند، صفحه‌ی پس‌زمینه هرگز بارگذاری نمی‌شود، بنابراین مگر اینکه chrome.runtime.reload() را به صورت دستی در پاسخ به این رویداد فراخوانی کنید، به‌روزرسانی تا دفعه‌ی بعدی که خود کروم راه‌اندازی مجدد می‌شود، نصب نخواهد شد. اگر هیچ کنترل‌کننده‌ای به این رویداد گوش نمی‌دهد و افزونه‌ی شما یک صفحه‌ی پس‌زمینه‌ی پایدار دارد، طوری رفتار می‌کند که انگار chrome.runtime.reload() در پاسخ به این رویداد فراخوانی شده است.

پارامترها

onUserScriptConnect

chrome.runtime.onUserScriptConnect.addListener(
  callback: function,
)

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

پارامترها

onUserScriptMessage

chrome.runtime.onUserScriptMessage.addListener(
  callback: function,
)

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

پارامترها