Chrome 116 kini tersedia dalam versi beta dan menyertakan banyak update menarik bagi developer Ekstensi Chrome. Mari kita lihat sekilas apa saja yang baru.
Membuka Panel samping secara terprogram
Sidepanel telah menjadi salah satu fitur yang paling banyak diminta di ekstensi Chrome dan telah tersedia di Chrome sejak versi 114. Setelah meluncurkan Side Panel API, salah satu masukan pertama yang kami terima adalah bahwa developer menginginkan cara untuk membuka panel samping secara terprogram. Dan ini dia: chrome.sidePanel.open
kini dalam versi beta. Anda dapat menggunakannya untuk membuka panel samping ekstensi secara terprogram sebagai respons terhadap interaksi pengguna, seperti klik menu konteks:
chrome.contextMenus.onClicked.addListener((info, tab) => {
if (info.menuItemId === 'openSidePanel') {
// This will open the panel in all the pages on the current window.
chrome.sidePanel.open({ windowId: tab.windowId });
}
});
Dukungan WebSocket di Service Worker
Dukungan WebSocket sangat penting bagi banyak ekstensi yang berencana untuk berpindah ke Manifes V3. Chrome 116 semakin meningkatkan dukungan WebSocket pada pekerja layanan karena semua aktivitas WebSocket akan mereset timer tidak ada aktivitas pekerja layanan 30 detik. Artinya, selama WebSocket aktif, pekerja layanan akan tetap aktif.
Anda dapat menggunakan ini untuk menerapkan mekanisme keepalive yang memastikan pekerja layanan tetap aktif saat menunggu pesan dari server - bahkan jika dibutuhkan lebih dari 30 detik sampai pesan berikutnya tiba:
function keepAlive() {
const keepAliveIntervalId = setInterval(
() => {
if (webSocket) {
webSocket.send('keepalive');
} else {
clearInterval(keepAliveIntervalId);
}
},
// It's important to pick an interval that's shorter than 30s, to
// avoid that the service worker becomes inactive.
20 * 1000
);
}
Lihat panduan dan contoh WebSocket baru kami untuk detail selengkapnya.
Keepalive yang kuat untuk Service Worker
Berbicara tentang siklus proses pekerja layanan, update penting lainnya telah hadir: keepalive yang kuat untuk API yang memerlukan interaksi pengguna. API yang memerlukan interaksi pengguna akan memiliki keepalive yang "kuat" untuk pekerja layanan ekstensi (yaitu, memungkinkan pekerja memerlukan waktu lebih dari 5 menit pada tugas ini):
permissions.request()
desktopCapture.chooseDesktopMedia()
identity.launchWebAuthFlow()
management.uninstall()
Merekam audio dan video di latar belakang
Kesenjangan lain antara Manifest V2 dan Manifest V3 telah ditutup: Anda dapat merekam audio dan video di latar belakang menggunakan dokumen tabCapture
dan offscreen. Gunakan chrome.tabCapture
API di pekerja layanan
untuk mendapatkan ID aliran data dengan mengikuti gestur pengguna. Tindakan ini kemudian dapat diteruskan ke dokumen di luar layar untuk mulai merekam.
Lihat panduan tabCapture
kami yang telah diperbarui untuk mempelajari cara kerjanya atau, untuk contoh yang efektif, lihat contoh Tab Capture - Perekam Suara.
API baru: runtime.getContexts()
runtime.getContexts()
API baru memungkinkan Anda mengambil informasi tentang konteks aktif yang dikaitkan dengan ekstensi Anda. Misalnya, Anda dapat menggunakannya untuk memeriksa apakah ada dokumen di luar layar yang aktif:
const existingContexts = await chrome.runtime.getContexts({});
const offscreenDocument = existingContexts.find(
(c) => c.contextType === 'OFFSCREEN_DOCUMENT'
);
Alasan baru di luar layar: GEOLOCATION
geolocation
telah ditambahkan sebagai alasan valid lainnya untuk menggunakan dokumen di luar layar. Lihat panduan kami menggunakan geolokasi untuk mempelajari lebih lanjut cara mendapatkan lokasi geografis ekstensi menggunakan Offscreen API.
chrome.action.setBadgeText()
action.setBadgeText
telah diupdate untuk mengatasi inkonsistensi antara Manifes V2 dan Manifes V3. Meneruskan string kosong atau null
ke action.setBadgeText
akan menghapus teks badge untuk tab yang ditentukan dan secara default menjadi teks badge global.
action.setBadgeText({tabId: tabId, text: ''});
Ringkasan: langkah lain menuju Manifes V3
Dengan dukungan masa aktif Service Worker yang ditingkatkan dan TabCapture API yang diupdate, kami terus membuat progres pada sasaran kami untuk menutup kesenjangan fitur antara Manifes V2 dan V3. Lihat halaman masalah umum kami untuk mengetahui status saat ini.