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
Panel samping adalah 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 developer menginginkan cara untuk membuka panel samping secara terprogram. Dan inilah 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 beralih ke Manifes V3. Chrome 116 lebih meningkatkan dukungan WebSocket di pekerja layanan karena semua aktivitas WebSocket akan mereset timer tidak ada aktivitas pekerja layanan 30 detik. Artinya, selama WebSocket Anda aktif, pekerja layanan akan tetap aktif.
Anda dapat menggunakannya untuk menerapkan mekanisme keepalive yang memastikan pekerja layanan tetap aktif saat Anda menunggu pesan dari server - meskipun perlu waktu lebih dari 30 detik hingga 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 mengetahui detail selengkapnya.
Keepalive yang kuat untuk Pekerja Layanan
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 "kuat" untuk pekerja layanan ekstensi (yaitu, mengizinkan pekerja memerlukan waktu lebih dari 5 menit untuk tugas ini):
permissions.request()
desktopCapture.chooseDesktopMedia()
identity.launchWebAuthFlow()
management.uninstall()
Merekam audio dan video di latar belakang
Kesenjangan lain antara Manifes V2 dan Manifes V3 telah ditutup: Anda dapat merekam audio dan video di latar belakang menggunakan tabCapture
dan dokumen di balik layar. Gunakan API chrome.tabCapture
di pekerja layanan
untuk mendapatkan ID streaming setelah gestur pengguna. Kemudian, ini dapat diteruskan ke dokumen di luar layar untuk memulai perekaman.
Lihat panduan tabCapture
yang telah diperbarui untuk mempelajari cara kerjanya atau, untuk contoh yang berfungsi, lihat contoh Tab Capture - Recorder.
API baru: runtime.getContexts()
runtime.getContexts()
API baru memungkinkan Anda mengambil informasi tentang konteks aktif yang terkait dengan ekstensi Anda. Misalnya, Anda dapat menggunakannya untuk memeriksa apakah ada dokumen offscreen 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 tentang 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 akan ditetapkan secara default ke 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 diperbarui, kami terus membuat progres pada sasaran kami untuk menutup kesenjangan fitur antara Manifes V2 dan V3. Lihat halaman masalah umum untuk mengetahui status saat ini.