Yang baru di Chrome 116 untuk Ekstensi

Chrome 116 kini tersedia dalam versi beta dan menyertakan banyak update menarik bagi developer Ekstensi Chrome. Mari kita lihat sekilas apa saja yang baru.

Sebastian Benz
Sebastian Benz

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):

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.