Deskripsi
Gunakan chrome.runtime API untuk mengambil pekerja layanan, menampilkan detail tentang manifes, serta memproses dan merespons peristiwa dalam siklus proses ekstensi. Anda juga dapat menggunakan API ini untuk mengonversi jalur relatif URL menjadi URL yang sepenuhnya memenuhi syarat.
Ringkasan
Runtime API menyediakan metode untuk mendukung sejumlah area fungsi yang dapat digunakan ekstensi Anda:
- Penerusan pesan
- Ekstensi Anda dapat berkomunikasi dengan konteks yang berbeda dalam ekstensi Anda dan juga dengan ekstensi lain menggunakan metode dan peristiwa berikut: connect(), onConnect, onConnectExternal, sendMessage(), onMessage, dan onMessageExternal. Selain itu, ekstensi Anda dapat meneruskan pesan ke aplikasi native di perangkat pengguna menggunakan connectNative() dan sendNativeMessage().
- Mengakses metadata ekstensi dan platform
- Metode ini memungkinkan Anda mengambil beberapa bagian metadata spesifik tentang ekstensi dan platform. Metode dalam kategori ini mencakup getManifest(), dan getPlatformInfo().
- Mengelola siklus proses dan opsi ekstensi
- Properti ini memungkinkan Anda melakukan beberapa operasi meta pada ekstensi, dan menampilkan halaman opsi. Metode dan peristiwa dalam kategori ini mencakup onInstalled, onStartup, openOptionsPage(), reload(), requestUpdateCheck(), dan setUninstallURL().
- Utilitas pembantu
- Metode ini memberikan utilitas seperti konversi representasi resource internal ke format eksternal. Metode dalam kategori ini mencakup getURL().
- Utilitas mode kios
- Metode ini hanya tersedia di ChromeOS, dan terutama ada untuk mendukung penerapan kios. Metode dalam kategori ini mencakup restart dan restartAfterDelay.
Izin
Sebagian besar metode di Runtime API tidak memerlukan izin apa pun, kecuali
sendNativeMessage dan connectNative, yang
memerlukan izin nativeMessaging.
Manifes
Contoh berikut menunjukkan cara mendeklarasikan izin nativeMessaging dalam manifes:
manifest.json:
{
  "name": "My extension",
  ...
  "permissions": [
    "nativeMessaging"
  ],
  ...
}
Kasus penggunaan
Menambahkan gambar ke halaman web
Agar halaman web dapat mengakses aset yang dihosting di domain lain, halaman tersebut harus menentukan URL lengkap resource
(misalnya, <img src="https://example.com/logo.png">). Hal yang sama berlaku untuk menyertakan aset ekstensi di
halaman web. Dua perbedaannya adalah aset ekstensi harus diekspos sebagai resource yang dapat diakses web dan biasanya skrip konten bertanggung jawab untuk menyuntikkan aset ekstensi.
Dalam contoh ini, ekstensi akan menambahkan logo.png ke halaman yang skrip konten sedang disisipkan dengan menggunakan runtime.getURL() untuk membuat URL yang sepenuhnya memenuhi syarat. Namun, aset harus dideklarasikan sebagai resource yang dapat diakses web dalam manifes terlebih dahulu.
manifest.json:
{
  ...
  "web_accessible_resources": [
    {
      "resources": [ "logo.png" ],
      "matches": [ "https://*/*" ]
    }
  ],
  ...
}
content.js:
{ // Block used to avoid setting global variables
  const img = document.createElement('img');
  img.src = chrome.runtime.getURL('logo.png');
  document.body.append(img);
}
Mengirim data dari pekerja layanan ke skrip konten
Skrip konten ekstensi biasanya memerlukan data yang dikelola oleh bagian lain ekstensi, seperti service worker. Seperti dua jendela browser yang dibuka ke halaman web yang sama, dua konteks ini tidak dapat mengakses nilai satu sama lain secara langsung. Sebagai gantinya, ekstensi dapat menggunakan transfer pesan untuk berkoordinasi di berbagai konteks ini.
Dalam contoh ini, skrip konten memerlukan beberapa data dari service worker ekstensi untuk
menginisialisasi UI-nya. Untuk mendapatkan data ini, aplikasi meneruskan pesan get-user-data ke pekerja layanan, dan
pekerja layanan merespons dengan salinan informasi pengguna.
content.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);
});
background.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);
  }
});
Mengumpulkan masukan tentang uninstal
Banyak ekstensi menggunakan survei pasca-uninstall untuk memahami cara ekstensi dapat melayani penggunanya dengan lebih baik dan meningkatkan retensi. Contoh berikut menunjukkan cara menambahkan fungsi ini.
background.js:
chrome.runtime.onInstalled.addListener(details => {
  if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
    chrome.runtime.setUninstallURL('https://example.com/extension-survey');
  }
});
Contoh ekstensi
Lihat demo Resource yang Dapat Diakses Web - Manifest V3 untuk mengetahui contoh API Runtime lainnya.
Jenis
ContextFilter
Filter untuk mencocokkan konteks ekstensi tertentu. Konteks yang cocok harus cocok dengan semua filter yang ditentukan; filter yang tidak ditentukan cocok dengan semua konteks yang tersedia. Dengan demikian, filter `{}` akan cocok dengan semua konteks yang tersedia.
Properti
- 
    contextIdsstring[] opsional 
- 
    contextTypesContextType[] opsional 
- 
    documentIdsstring[] opsional 
- 
    documentOriginsstring[] opsional 
- 
    documentUrlsstring[] opsional 
- 
    frameIdsnumber[] opsional 
- 
    samaranboolean opsional 
- 
    tabIdsnumber[] opsional 
- 
    windowIdsnumber[] opsional 
ContextType
Enum
"TAB" 
 Menentukan jenis konteks sebagai tab
"POPUP" 
 Menentukan jenis konteks sebagai jendela pop-up ekstensi
"BACKGROUND" 
 Menentukan jenis konteks sebagai pekerja layanan.
"OFFSCREEN_DOCUMENT" 
 Menentukan jenis konteks sebagai dokumen di luar layar.
"SIDE_PANEL" 
 Menentukan jenis konteks sebagai panel samping.
"DEVELOPER_TOOLS" 
 Menentukan jenis konteks sebagai alat developer.
ExtensionContext
Konteks yang menghosting konten ekstensi.
Properti
- 
    contextIdstring ID unik untuk konteks ini 
- 
    contextTypeJenis konteks yang sesuai dengan ini. 
- 
    documentIdstring opsional UUID untuk dokumen yang terkait dengan konteks ini, atau tidak ditentukan jika konteks ini tidak dihosting dalam dokumen. 
- 
    documentOriginstring opsional Asal dokumen yang terkait dengan konteks ini, atau tidak ditentukan jika konteks tidak dihosting dalam dokumen. 
- 
    documentUrlstring opsional URL dokumen yang terkait dengan konteks ini, atau tidak ditentukan jika konteks tidak dihosting dalam dokumen. 
- 
    frameIdangka ID frame untuk konteks ini, atau -1 jika konteks ini tidak dihosting dalam frame. 
- 
    samaranboolean Apakah konteks terkait dengan profil samaran. 
- 
    tabIdangka ID tab untuk konteks ini, atau -1 jika konteks ini tidak dihosting di tab. 
- 
    windowIdangka ID jendela untuk konteks ini, atau -1 jika konteks ini tidak dihosting di jendela. 
MessageSender
Objek yang berisi informasi tentang konteks skrip yang mengirim pesan atau permintaan.
Properti
- 
    documentIdstring opsional Chrome 106+UUID dokumen yang membuka koneksi. 
- 
    documentLifecyclestring opsional Chrome 106+Siklus proses dokumen yang membuka koneksi pada saat port dibuat. Perhatikan bahwa status siklus proses dokumen mungkin telah berubah sejak pembuatan port. 
- 
    frameIdnomor opsional Frame yang membuka koneksi. 0 untuk frame tingkat teratas, positif untuk frame turunan. Kolom ini hanya akan ditetapkan jika tabditetapkan.
- 
    idstring opsional ID ekstensi yang membuka koneksi, jika ada. 
- 
    nativeApplicationstring opsional Chrome 74+Nama aplikasi native yang membuka koneksi, jika ada. 
- 
    asalstring opsional Chrome 80+Origin halaman atau frame yang membuka koneksi. Dapat bervariasi dari properti URL (misalnya, about:blank) atau dapat bersifat buram (misalnya, iframe yang diamankan dalam sandbox). Hal ini berguna untuk mengidentifikasi apakah asal dapat dipercaya jika kita tidak dapat langsung mengetahuinya dari URL. 
- 
    tabTab opsional tabs.Tabyang membuka koneksi, jika ada. Properti ini hanya ada saat koneksi dibuka dari tab (termasuk skrip konten), dan hanya jika penerima adalah ekstensi, bukan aplikasi.
- 
    tlsChannelIdstring opsional ID saluran TLS halaman atau frame yang membuka koneksi, jika diminta oleh ekstensi, dan jika tersedia. 
- 
    urlstring opsional URL halaman atau frame yang membuka koneksi. Jika pengirim berada dalam iframe, URL yang akan ditampilkan adalah URL iframe, bukan URL halaman yang menghostingnya. 
OnInstalledReason
Alasan mengapa acara ini dikirim.
Enum
"install" 
 Menentukan alasan peristiwa sebagai penginstalan.
"update" 
 Menentukan alasan peristiwa sebagai update ekstensi.
"chrome_update" 
 Menentukan alasan peristiwa sebagai update Chrome.
"shared_module_update" 
 Menentukan alasan peristiwa sebagai pembaruan pada modul bersama.
OnRestartRequiredReason
Alasan peristiwa dikirim. 'app_update' digunakan saat perlu memulai ulang karena aplikasi diupdate ke versi yang lebih baru. 'os_update' digunakan saat perangkat perlu dimulai ulang karena browser/OS diupdate ke versi yang lebih baru. 'periodic' digunakan saat sistem berjalan lebih lama dari waktu aktif yang diizinkan yang ditetapkan dalam kebijakan perusahaan.
Enum
"app_update" 
 Menentukan alasan peristiwa sebagai update pada aplikasi.
"os_update" 
 Menentukan alasan peristiwa sebagai update pada sistem operasi.
"periodic" 
 Menentukan alasan peristiwa sebagai mulai ulang aplikasi secara berkala.
PlatformArch
Arsitektur prosesor mesin.
Enum
"arm" 
 Menentukan arsitektur prosesor sebagai arm.
"arm64" 
 Menentukan arsitektur prosesor sebagai arm64.
"x86-32" 
 Menentukan arsitektur prosesor sebagai x86-32.
"x86-64" 
 Menentukan arsitektur prosesor sebagai x86-64.
"mips" 
 Menentukan arsitektur prosesor sebagai mips.
"mips64" 
 Menentukan arsitektur prosesor sebagai mips64.
"riscv64" 
 Menentukan arsitektur prosesor sebagai riscv64.
PlatformInfo
Objek yang berisi informasi tentang platform saat ini.
Properti
- 
    archArsitektur prosesor mesin. 
- 
    nacl_archPlatformNaclArch opsional Arsitektur klien native. Hal ini mungkin berbeda dari arch di beberapa platform. 
- 
    osSistem operasi yang menjalankan Chrome. 
PlatformNaclArch
Arsitektur klien native. Hal ini mungkin berbeda dari arch di beberapa platform.
Enum
"arm" 
 Menentukan arsitektur klien native sebagai arm.
"x86-32" 
 Menentukan arsitektur klien native sebagai x86-32.
"x86-64" 
 Menentukan arsitektur klien native sebagai x86-64.
"mips" 
 Menentukan arsitektur klien native sebagai mips.
"mips64" 
 Menentukan arsitektur klien native sebagai mips64.
PlatformOs
Sistem operasi yang menjalankan Chrome.
Enum
"mac" 
 Menentukan sistem operasi MacOS.
"win" 
 Menentukan sistem operasi Windows.
"android" 
 Menentukan sistem operasi Android.
"cros" 
 Menentukan sistem operasi Chrome.
"linux" 
 Menentukan sistem operasi Linux.
"openbsd" 
 Menentukan sistem operasi OpenBSD.
Port
Objek yang memungkinkan komunikasi dua arah dengan halaman lain. Lihat Koneksi yang berjalan lama untuk mengetahui informasi selengkapnya.
Properti
- 
    namastring Nama port, seperti yang ditentukan dalam panggilan ke runtime.connect.
- 
    onDisconnectEvent<functionvoidvoid> Diaktifkan saat port terputus dari ujung lainnya. runtime.lastErrordapat disetel jika port terputus karena error. Jika port ditutup melalui disconnect, maka peristiwa ini hanya diaktifkan di ujung lainnya. Peristiwa ini dipicu paling banyak satu kali (lihat juga Masa aktif port).Fungsi onDisconnect.addListenerakan terlihat seperti:(callback: function) => {...} 
- 
    onMessageEvent<functionvoidvoid> Peristiwa ini dipicu saat postMessage dipanggil oleh ujung port lainnya. Fungsi onMessage.addListenerakan terlihat seperti:(callback: function) => {...} 
- 
    pengirimMessageSender opsional Properti ini hanya ada di port yang diteruskan ke pemroses onConnect / onConnectExternal / onConnectNative. 
- 
    berhenti hubungkanvoid Segera putuskan sambungan port. Memanggil disconnect()pada port yang sudah terputus tidak akan berpengaruh. Saat port terputus, tidak ada peristiwa baru yang akan dikirim ke port ini.Fungsi disconnectakan terlihat seperti:() => {...}
- 
    postMessagevoid Kirim pesan ke ujung port lainnya. Jika port terputus, error akan ditampilkan. Fungsi postMessageakan terlihat seperti:(message: any) => {...} - 
    pesanapa pun Chrome 52+Pesan yang akan dikirim. Objek ini harus dapat di-JSON-kan. 
 
- 
    
RequestUpdateCheckStatus
Hasil pemeriksaan update.
Enum
"dibatasi" 
 Menentukan bahwa pemeriksaan status telah dibatasi. Hal ini dapat terjadi setelah pemeriksaan berulang dalam waktu singkat.
"no_update" 
 Menentukan bahwa tidak ada update yang tersedia untuk diinstal.
"update_available" 
 Menentukan bahwa ada update yang tersedia untuk diinstal.
Properti
id
ID ekstensi/aplikasi.
Jenis
string
lastError
Diisi dengan pesan error jika panggilan fungsi API gagal; jika tidak, tidak ditentukan. Hal ini hanya ditentukan dalam cakupan callback fungsi tersebut. Jika error terjadi, tetapi runtime.lastError tidak diakses dalam callback, pesan akan dicatat ke konsol yang mencantumkan fungsi API yang menyebabkan error. Fungsi API yang menampilkan promise tidak menetapkan properti ini.
Jenis
objek
Properti
- 
    pesanstring opsional Detail tentang error yang terjadi. 
Metode
connect()
chrome.runtime.connect(
extensionId?: string,
connectInfo?: object,
): Port
Mencoba menghubungkan pemroses dalam ekstensi (seperti halaman latar belakang), atau ekstensi/aplikasi lain. Hal ini berguna untuk skrip konten yang terhubung ke proses ekstensi, komunikasi antar-aplikasi/ekstensi, dan web messaging. Perhatikan bahwa hal ini tidak terhubung ke pemroses di skrip konten. Ekstensi dapat terhubung ke skrip konten yang disematkan di tab melalui tabs.connect.
Parameter
- 
    extensionIdstring opsional ID ekstensi yang akan dihubungkan. Jika tidak ada, koneksi akan dicoba dengan ekstensi Anda sendiri. Wajib diisi jika mengirim pesan dari halaman web untuk pesan web. 
- 
    connectInfoobjek opsional - 
    includeTlsChannelIdboolean opsional Apakah ID saluran TLS akan diteruskan ke onConnectExternal untuk proses yang memproses peristiwa koneksi. 
- 
    namastring opsional Akan diteruskan ke onConnect untuk proses yang memantau peristiwa koneksi. 
 
- 
    
Hasil
- 
            Port yang digunakan untuk mengirim dan menerima pesan. Peristiwa onDisconnect port diaktifkan jika ekstensi tidak ada. 
connectNative()
chrome.runtime.connectNative(
application: string,
): Port
Menghubungkan ke aplikasi native di mesin host. Metode ini memerlukan izin "nativeMessaging". Lihat Native Messaging untuk mengetahui informasi selengkapnya.
Parameter
- 
    aplikasistring Nama aplikasi terdaftar yang akan dihubungkan. 
Hasil
- 
            Port yang digunakan untuk mengirim dan menerima pesan dengan aplikasi 
getBackgroundPage()
chrome.runtime.getBackgroundPage(
callback?: function,
): Promise<Window | undefined>
Halaman latar belakang tidak ada di ekstensi MV3.
Mengambil objek 'window' JavaScript untuk halaman latar belakang yang berjalan di dalam ekstensi/aplikasi saat ini. Jika halaman latar belakang adalah halaman peristiwa, sistem akan memastikan halaman tersebut dimuat sebelum memanggil callback. Jika tidak ada halaman latar belakang, error akan ditetapkan.
Parameter
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(backgroundPage?: Window) => void - 
    backgroundPageJendela opsional Objek 'window' JavaScript untuk halaman latar belakang. 
 
- 
    
Hasil
- 
            Promise<Window | undefined> Chrome 99+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
getManifest()
chrome.runtime.getManifest(): object
Menampilkan detail tentang aplikasi atau ekstensi dari manifes. Objek yang ditampilkan adalah serialisasi file manifes lengkap.
Hasil
- 
            objek Detail manifes. 
getPackageDirectoryEntry()
chrome.runtime.getPackageDirectoryEntry(
callback?: function,
): Promise<DirectoryEntry>
Menampilkan DirectoryEntry untuk direktori paket.
Parameter
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(directoryEntry: DirectoryEntry) => void - 
    directoryEntryDirectoryEntry 
 
- 
    
Hasil
- 
            Promise<DirectoryEntry> Chrome 122+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
getPlatformInfo()
chrome.runtime.getPlatformInfo(
callback?: function,
): Promise<PlatformInfo>
Menampilkan informasi tentang platform saat ini.
Parameter
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(platformInfo: PlatformInfo) => void - 
    platformInfo
 
- 
    
Hasil
- 
            Promise<PlatformInfo> Chrome 99+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
getURL()
chrome.runtime.getURL(
path: string,
): string
Mengonversi jalur relatif dalam direktori penginstalan aplikasi/ekstensi menjadi URL yang sepenuhnya memenuhi syarat.
Parameter
- 
    jalurstring Jalur ke resource dalam aplikasi/ekstensi yang dinyatakan relatif terhadap direktori penginstalannya. 
Hasil
- 
            string URL yang sepenuhnya memenuhi syarat ke resource. 
getVersion()
chrome.runtime.getVersion(): string
Menampilkan versi ekstensi seperti yang dideklarasikan dalam manifes.
Hasil
- 
            string Versi ekstensi. 
openOptionsPage()
chrome.runtime.openOptionsPage(
callback?: function,
): Promise<void>
Buka halaman opsi Ekstensi Anda, jika memungkinkan.
Perilaku yang tepat dapat bergantung pada kunci options_ui atau options_page manifes Anda, atau apa yang didukung Chrome pada saat itu. Misalnya, halaman dapat dibuka di tab baru, dalam chrome://extensions, dalam Aplikasi, atau hanya dapat memfokuskan halaman opsi yang terbuka. Tidak akan pernah menyebabkan halaman pemanggil dimuat ulang.
Jika Ekstensi Anda tidak mendeklarasikan halaman opsi, atau Chrome gagal membuatnya karena alasan lain, callback akan menyetel lastError.
Parameter
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Chrome 99+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
reload()
chrome.runtime.reload(): void
Memuat ulang aplikasi atau ekstensi. Metode ini tidak didukung dalam mode kios. Untuk mode kios, gunakan metode chrome.runtime.restart().
requestUpdateCheck()
chrome.runtime.requestUpdateCheck(
callback?: function,
): Promise<object>
Meminta agar pemeriksaan update segera dilakukan untuk aplikasi/ekstensi ini.
Penting: Sebagian besar ekstensi/aplikasi tidak boleh menggunakan metode ini, karena Chrome sudah melakukan pemeriksaan otomatis setiap beberapa jam, dan Anda dapat memproses peristiwa runtime.onUpdateAvailable tanpa perlu memanggil requestUpdateCheck.
Metode ini hanya cocok untuk dipanggil dalam keadaan yang sangat terbatas, seperti jika ekstensi Anda berkomunikasi dengan layanan backend, dan layanan backend telah menentukan bahwa versi ekstensi klien sudah sangat usang dan Anda ingin meminta pengguna untuk mengupdate. Sebagian besar penggunaan requestUpdateCheck lainnya, seperti memanggilnya tanpa syarat berdasarkan timer berulang, mungkin hanya membuang-buang resource klien, jaringan, dan server.
Catatan: Saat dipanggil dengan callback, alih-alih menampilkan objek, fungsi ini akan menampilkan dua properti sebagai argumen terpisah yang diteruskan ke callback.
Parameter
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(result: object) => void - 
    hasilobjek Chrome 109+Objek RequestUpdateCheckResult yang menyimpan status pemeriksaan update dan detail hasil jika ada update yang tersedia - 
    statusHasil pemeriksaan update. 
- 
    versistring opsional Jika update tersedia, kolom ini berisi versi update yang tersedia. 
 
- 
    
 
- 
    
Hasil
- 
            Promise<object> Chrome 109+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
restart()
chrome.runtime.restart(): void
Mulai ulang perangkat ChromeOS saat aplikasi berjalan dalam mode kios. Jika tidak, tidak ada operasi.
restartAfterDelay()
chrome.runtime.restartAfterDelay(
seconds: number,
callback?: function,
): Promise<void>
Mulai ulang perangkat ChromeOS saat aplikasi berjalan dalam mode kios setelah detik yang ditentukan. Jika dipanggil lagi sebelum waktu berakhir, mulai ulang akan ditunda. Jika dipanggil dengan nilai -1, mulai ulang akan dibatalkan. Tidak ada operasi dalam mode non-kios. API ini hanya boleh dipanggil berulang kali oleh ekstensi pertama yang memanggil API ini.
Parameter
- 
    detikangka Waktu tunggu dalam detik sebelum memulai ulang perangkat, atau -1 untuk membatalkan mulai ulang terjadwal. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Chrome 99+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
sendMessage()
chrome.runtime.sendMessage(
extensionId?: string,
message: any,
options?: object,
callback?: function,
): Promise<any>
Mengirim satu pesan ke pemroses peristiwa dalam ekstensi Anda atau ekstensi/aplikasi lain. Mirip dengan runtime.connect, tetapi hanya mengirim satu pesan, dengan respons opsional. Jika mengirim ke ekstensi Anda, peristiwa runtime.onMessage akan diaktifkan di setiap frame ekstensi Anda (kecuali frame pengirim), atau runtime.onMessageExternal, jika ekstensi berbeda. Perhatikan bahwa ekstensi tidak dapat mengirim pesan ke skrip konten menggunakan metode ini. Untuk mengirim pesan ke skrip konten, gunakan tabs.sendMessage.
Parameter
- 
    extensionIdstring opsional ID ekstensi yang akan dikirimi pesan. Jika tidak disertakan, pesan akan dikirim ke ekstensi/aplikasi Anda sendiri. Wajib diisi jika mengirim pesan dari halaman web untuk pesan web. 
- 
    pesanapa pun Pesan yang akan dikirim. Pesan ini harus berupa objek yang dapat di-JSON-kan. 
- 
    opsiobjek opsional - 
    includeTlsChannelIdboolean opsional Apakah ID saluran TLS akan diteruskan ke onMessageExternal untuk proses yang memproses peristiwa koneksi. 
 
- 
    
- 
    callbackfungsi opsional Chrome 99+Parameter callbackterlihat seperti:(response: any) => void - 
    responsapa pun Objek respons JSON yang dikirim oleh handler pesan. Jika terjadi error saat menghubungkan ke ekstensi, callback akan dipanggil tanpa argumen dan runtime.lastErrorakan disetel ke pesan error.
 
- 
    
Hasil
- 
            Promise<any> Chrome 99+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
sendNativeMessage()
chrome.runtime.sendNativeMessage(
application: string,
message: object,
callback?: function,
): Promise<any>
Mengirim satu pesan ke aplikasi native. Metode ini memerlukan izin "nativeMessaging".
Parameter
- 
    aplikasistring Nama host pesan native. 
- 
    pesanobjek Pesan yang akan diteruskan ke host pesan native. 
- 
    callbackfungsi opsional Chrome 99+Parameter callbackterlihat seperti:(response: any) => void - 
    responsapa pun Pesan respons yang dikirim oleh host fitur pesan native. Jika terjadi error saat menghubungkan ke host pesan native, callback akan dipanggil tanpa argumen dan runtime.lastErrorakan disetel ke pesan error.
 
- 
    
Hasil
- 
            Promise<any> Chrome 99+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
setUninstallURL()
chrome.runtime.setUninstallURL(
url: string,
callback?: function,
): Promise<void>
Menetapkan URL yang akan dikunjungi saat aplikasi di-uninstal. Hal ini dapat digunakan untuk membersihkan data sisi server, melakukan analisis, dan menerapkan survei. Maksimum 1.023 karakter.
Parameter
- 
    urlstring URL yang akan dibuka setelah ekstensi di-uninstal. URL ini harus memiliki skema http: atau https:. Tetapkan string kosong agar tidak membuka tab baru saat aplikasi diuninstal. 
- 
    callbackfungsi opsional Chrome 45+Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Chrome 99+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
Acara
onBrowserUpdateAvailable
chrome.runtime.onBrowserUpdateAvailable.addListener(
callback: function,
)
Gunakan runtime.onRestartRequired.
Diaktifkan saat update Chrome tersedia, tetapi tidak segera diinstal karena browser perlu dimulai ulang.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:() => void 
onConnect
chrome.runtime.onConnect.addListener(
callback: function,
)
Diaktifkan saat koneksi dibuat dari proses ekstensi atau skrip konten (oleh runtime.connect).
onConnectExternal
chrome.runtime.onConnectExternal.addListener(
callback: function,
)
Diaktifkan saat koneksi dibuat dari ekstensi lain (oleh runtime.connect), atau dari situs web yang dapat terhubung secara eksternal.
onConnectNative
chrome.runtime.onConnectNative.addListener(
callback: function,
)
Diaktifkan saat koneksi dibuat dari aplikasi native. Acara ini memerlukan izin "nativeMessaging". Fitur ini hanya didukung di ChromeOS.
onInstalled
chrome.runtime.onInstalled.addListener(
callback: function,
)
Diaktifkan saat ekstensi pertama kali diinstal, saat ekstensi diupdate ke versi baru, dan saat Chrome diupdate ke versi baru.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(details: object) => void - 
    detailobjek - 
    idstring opsional Menunjukkan ID ekstensi modul bersama yang diimpor dan diperbarui. Ini hanya ada jika 'reason' adalah 'shared_module_update'. 
- 
    previousVersionstring opsional Menunjukkan versi ekstensi sebelumnya, yang baru saja diupdate. Ini hanya ada jika 'reason' adalah 'update'. 
- 
    alasanAlasan mengapa acara ini dikirim. 
 
- 
    
 
- 
    
onMessage
chrome.runtime.onMessage.addListener(
callback: function,
)
Diaktifkan saat pesan dikirim dari proses ekstensi (oleh runtime.sendMessage) atau skrip konten (oleh tabs.sendMessage).
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined - 
    pesanapa pun 
- 
    pengirim
- 
    sendResponsefungsi Parameter sendResponseterlihat seperti:() => void 
 - 
            returnboolean | undefined 
 
- 
    
onMessageExternal
chrome.runtime.onMessageExternal.addListener(
callback: function,
)
Diaktifkan saat pesan dikirim dari ekstensi lain (oleh runtime.sendMessage). Tidak dapat digunakan dalam skrip konten.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined - 
    pesanapa pun 
- 
    pengirim
- 
    sendResponsefungsi Parameter sendResponseterlihat seperti:() => void 
 - 
            returnboolean | undefined 
 
- 
    
onRestartRequired
chrome.runtime.onRestartRequired.addListener(
callback: function,
)
Diaktifkan saat aplikasi atau perangkat yang menjalankan aplikasi tersebut perlu dimulai ulang. Aplikasi harus menutup semua jendelanya pada waktu yang paling tepat untuk memungkinkan restart terjadi. Jika aplikasi tidak melakukan apa pun, mulai ulang akan diterapkan setelah masa tenggang 24 jam berakhir. Saat ini, peristiwa ini hanya diaktifkan untuk aplikasi kios ChromeOS.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(reason: OnRestartRequiredReason) => void - 
    alasan
 
- 
    
onStartup
chrome.runtime.onStartup.addListener(
callback: function,
)
Diaktifkan saat profil yang menginstal ekstensi ini pertama kali dimulai. Peristiwa ini tidak diaktifkan saat profil samaran dimulai, meskipun ekstensi ini beroperasi dalam mode samaran 'split'.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:() => void 
onSuspend
chrome.runtime.onSuspend.addListener(
callback: function,
)
Dikirim ke halaman acara tepat sebelum halaman tersebut dibatalkan pemuatannya. Hal ini memberi ekstensi peluang untuk melakukan beberapa pembersihan. Perhatikan bahwa karena halaman sedang dibongkar, setiap operasi asinkron yang dimulai saat menangani peristiwa ini tidak dijamin akan selesai. Jika ada lebih banyak aktivitas untuk halaman acara sebelum dibatalkan muatannya, peristiwa onSuspendCanceled akan dikirim dan halaman tidak akan dibatalkan muatannya.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:() => void 
onSuspendCanceled
chrome.runtime.onSuspendCanceled.addListener(
callback: function,
)
Dikirim setelah onSuspend untuk menunjukkan bahwa aplikasi tidak akan dibongkar setelah semuanya.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:() => void 
onUpdateAvailable
chrome.runtime.onUpdateAvailable.addListener(
callback: function,
)
Diaktifkan saat update tersedia, tetapi tidak segera diinstal karena aplikasi sedang berjalan. Jika Anda tidak melakukan apa pun, update akan diinstal saat halaman latar belakang berikutnya dibongkar. Jika Anda ingin update diinstal lebih cepat, Anda dapat memanggil chrome.runtime.reload() secara eksplisit. Jika ekstensi Anda menggunakan halaman latar belakang persisten, halaman latar belakang tentu saja tidak akan pernah dibongkar, jadi kecuali Anda memanggil chrome.runtime.reload() secara manual sebagai respons terhadap peristiwa ini, update tidak akan diinstal hingga Chrome itu sendiri dimulai ulang pada waktu berikutnya. Jika tidak ada handler yang memproses peristiwa ini, dan ekstensi Anda memiliki halaman latar belakang persisten, ekstensi akan berperilaku seolah-olah chrome.runtime.reload() dipanggil sebagai respons terhadap peristiwa ini.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(details: object) => void - 
    detailobjek - 
    versistring Nomor versi update yang tersedia. 
 
- 
    
 
-