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.

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

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.