Chrome 116 kini tersedia dalam versi beta dan menyertakan banyak update menarik untuk developer Ekstensi Chrome. Mari kita lihat sekilas apa saja yang baru.
Membuka Panel samping secara terprogram
Panel samping 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 inilah dia: chrome.sidePanel.open
kini tersedia 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 beralih ke Manifest V3. Chrome 116 lebih meningkatkan dukungan WebSocket di service worker karena semua aktivitas WebSocket akan mereset timer tidak ada aktivitas service worker 30 detik. Artinya, selama WebSocket Anda aktif, pekerja layanan akan tetap aktif.
Anda dapat menggunakan ini untuk menerapkan mekanisme tetap aktif yang memastikan pekerja layanan Anda tetap aktif saat Anda menunggu pesan dari server - meskipun diperlukan 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.
2
0 * 1000
);
}
Lihat panduan dan contoh WebSocket baru kami untuk mengetahui detail selengkapnya.
Keep-alive yang kuat untuk Service Worker
Berbicara tentang siklus proses pekerja layanan, ada update penting lainnya: keep-alive yang kuat untuk API yang memerlukan interaksi pengguna. API yang memerlukan interaksi pengguna akan memiliki keepalive "kuat" untuk pekerja layanan ekstensi (yaitu, memungkinkan pekerja melakukan tugas ini lebih dari 5 menit):
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, objek ini dapat diteruskan ke dokumen di luar layar untuk memulai perekaman.
Lihat panduan tabCapture
kami yang telah diupdate 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 di luar layar yang aktif:
const existingContexts = await chrome.runtime.getContexts({});
const offscreenDocument = existingContexts.find(
(c) => c.contextType === 'OFFSCREEN_DOCUMENT
9;
);
Alasan di luar layar baru: GEOLOCATION
geolocation
telah ditambahkan sebagai alasan valid lain 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 Manifest V2 dan Manifest V3. Meneruskan string kosong atau null
ke action.setBadgeText
akan menghapus teks badge untuk tab yang ditentukan dan menggunakan teks badge global secara default.
action.setBadgeText({tabId: tabId, text: '
39;});
Ringkasan: langkah lain menuju Manifes V3
Dengan dukungan masa aktif Service Worker yang ditingkatkan dan TabCapture API yang diperbarui, kami terus membuat kemajuan dalam tujuan kami untuk menutup kesenjangan fitur antara Manifest V2 dan V3. Lihat halaman masalah umum kami untuk mengetahui status saat ini.