Apa yang terjadi di Ekstensi Chrome?

Amy Steam
Amy Steam

Sejauh ini, 2023 merupakan tahun yang sibuk bagi dunia ekstensi Chrome. Masukan Anda yang berharga telah memungkinkan kami untuk meningkatkan platform ekstensi dan dokumentasi kami. Kami juga terus berkolaborasi dengan vendor browser lainnya di Grup Komunitas WebExtensions agar API ekstensi berfungsi secara lebih konsisten di seluruh browser.

Dalam postingan ini, kami akan membagikan kepada Anda beberapa perubahan yang telah dikerjakan tim ekstensi Chrome selama paruh pertama tahun ini dan fitur mendatang yang akan dirilis pada akhir kuartal ini. Mari kita mulai.

API dan fitur ekstensi baru

Di bagian ini, saya ingin menyoroti beberapa peluncuran API yang signifikan, meninjau secara singkat peningkatan API lainnya, dan membagikan rilis API yang akan datang.

Sorotan

Dokumen di luar layar

Offscreen API diperkenalkan di Chrome 109. Ekstensi ini memungkinkan ekstensi Manifes V3 menangani kasus penggunaan yang memerlukan interaksi dengan DOM atau jendela, yang tidak dapat dijalankan di pekerja layanan ekstensi. Selain itu, Chrome 114 memperkenalkan dua alasan di balik layar tambahan: 'WORKERS' untuk instance saat dokumen Anda perlu memunculkan pekerja dan 'LOCAL_STORAGE' untuk membantu memigrasikan data dari window.localStorage ke chrome.storage API.

Mulai Chrome 115, Anda dapat memberikan beberapa alasan saat membuat dokumen di luar layar. Hal ini memungkinkan Anda melakukan dua tugas terkait di dokumen yang sama.

Side Panel API Baru 🎉

Sebelumnya, satu-satunya cara untuk membuat sidebar di ekstensi adalah dengan memasukkan elemen baru dengan skrip konten di setiap halaman. Di Chrome 114, Side Panel API telah diluncurkan. Sekarang Anda dapat mengembangkan pengalaman sidebar pendamping untuk pengguna dengan cara yang jauh lebih mudah. Baca selengkapnya tentang cara Side Panel API memungkinkan Anda mendesain pengalaman pengguna yang luar biasa.

Ekstensi kamus yang menunjukkan definisi kata yang dipilih
Ekstensi kamus panel samping. Lihat kode di repositori contoh chrome-extensions-samples.

Service Worker yang lebih andal

Semua peristiwa ekstensi sekarang memulai ulang timer tidak ada aktivitas pekerja layanan ekstensi. Di Chrome 110, masa pakai maksimum lima menit yang sulit dihapus untuk pekerja layanan ekstensi. Selain itu, pesan ke aplikasi native dan pesan dalam ekstensi akan memulai ulang timer yang tidak ada aktivitas. Baca selengkapnya tentang hal ini di artikel Siklus proses pekerja layanan ekstensi.

Peluncuran API lainnya

  • Action API: Mulai Chrome 110, Anda dapat menyesuaikan teks badge dengan setBadgeTextColor() dan getBadgeTextColor(). Selain itu, isEnabled() memungkinkan Anda memeriksa apakah tindakan diaktifkan untuk tab saat ini.
  • Commands API: Bug saat pintasan ekstensi, yang dideklarasikan dalam manifes di bagian "commands._execute_action", tidak berubah selama konversi ke MV3, telah diperbaiki di Chrome 111.
  • API Download: UI download default di Chrome telah dipindahkan dari rak di bagian bawah ke sisi kanan omnibox. Untuk menonaktifkan perilaku ini, Anda dapat menggunakan downloads.setUiOptions() yang menggantikan setShelfEnabled().
  • History API: chrome.history.getVisits() dan chrome.history.search() juga menampilkan data dari perangkat lain yang telah disinkronkan ke database histori lokal. Hal ini dapat menghasilkan lebih banyak entri histori dan jumlah kunjungan yang lebih tinggi. isLocal telah ditambahkan ke VisitItem di Chrome 115 (diharapkan stabil nanti bulan ini) agar hanya dapat memfilter menurut kunjungan lokal.
  • Identity API: Jendela autentikasi kini muncul sebagai pop-up, bukan menempati jendela aplikasi penuh. Untuk memberikan kontrol lebih selama proses pengalihan JavaScript, kami telah menambahkan dua opsi baru: abortOnLoadForNonInteractive dan timeoutMsForNonInteractive.
  • Storage API: Di Chrome 112, ukuran penyimpanan chrome.session ditingkatkan menjadi 10 MB. Kemudian, ukuran penyimpanan chrome.local diubah agar sesuai di Chrome 114.

Segera hadir...

Versi Chrome mendatang akan memperkenalkan banyak fitur untuk mempermudah migrasi ekstensi ke Manifes V3. Untuk daftar perubahan terkait migrasi MV3 mendatang, lihat halaman masalah umum kami. Selain itu, kami berencana menambahkan fitur berikut:

  • DeclarativeNetRequest API: Nilai default untuk properti isUrlFilterCaseSensitive akan berubah menjadi false. Lihat thread WECG.
  • File Handling API akan memungkinkan ekstensi ChromeOS membuka file dengan jenis MIME dan ekstensi file yang ditentukan. Fitur ini masih di balik tanda.
  • Runtime API: Kami merilis runtime.getContexts() untuk menggantikan extension.getViews(), yang sudah tidak digunakan lagi. Hal ini akan memungkinkan ekstensi menentukan apakah halaman ekstensi seperti panel samping atau dokumen di luar layar terbuka. Lihat proposal WECG.
  • Pekerja layanan: Kami menambahkan keep-alive yang kuat ke Chrome API yang menampilkan perintah pengguna: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow(), dan management.uninstall().
  • Side Panel API: Kami meluncurkan sidepanel.open(), yang akan membuka panel samping ekstensi secara terprogram sebagai respons terhadap gestur pengguna, seperti klik menu konteks.
  • TabCapture API: Kami menambahkan kemampuan untuk memanggil getMediaStreamId() dari pekerja layanan ekstensi dan mendapatkan MediaStream dari ID streaming dalam dokumen di luar layar. Lihat Perekaman audio dan screenshot untuk mengetahui contohnya.

Nantikan halaman Yang baru di ekstensi untuk mengetahui pengumuman tersebut segera setelah tersedia di Chrome Beta.

Upgrade dokumentasi dan panduan Manifes V3 lainnya

Kami juga telah bekerja keras untuk meningkatkan pengalaman belajar developer. Terima kasih banyak kepada Anda semua yang telah meluangkan waktu untuk mengajukan pertanyaan tentang chromium-group dan melaporkan masalah dokumentasi di developer.chrome.com.

Sorotan

  • Bagian Migrasi MV3 yang baru memberikan cara praktis untuk mengonversi ekstensi Manifes V2 ke Manifes V3.
  • Panduan Pekerja layanan ekstensi memberikan informasi mendetail tentang topik pekerja layanan ekstensi. Hal ini mencakup cara mendaftarkan dan diupdate, seperti apa siklus proses, cara kerja impor, dan lainnya.
  • Tutorial Menangani peristiwa dengan pekerja layanan mengajarkan dasar-dasar pekerja layanan ekstensi. Alat ini membuat ekstensi omnibox yang memberi Anda akses cepat ke halaman referensi API ekstensi.

Informasi terbaru selengkapnya

Segera hadir...

  • Cara memigrasikan kode yang dihosting jarak jauh ke Manifes V3.
  • Cara menjalankan pengujian otomatis untuk ekstensi Chrome.
  • Panduan Declarative Net Request yang lebih baik.
  • Penyempurnaan pada penjelasan skrip konten.

💡 Tahukah Anda?

Sebelum mengakhiri, kami ingin berbagi beberapa alat dan wawasan yang berguna:

  • Chrome mulai bekerja untuk mendukung WebHID; Anda dapat bermain-main dengan API mulai Chrome 115 (tetapi perhatikan bahwa API ini masih dalam proses).
  • Puppeteer kini mendukung pengujian dalam mode headless menggunakan --headless=new . Baca selengkapnya tentang hal ini di postingan blog upgrade mode headless Chrome.
  • Dengan Alat Pengujian Update Ekstensi, Anda dapat memeriksa peringatan yang dipicu saat izin berubah dalam manifes. Dengan cara ini, Anda dapat mengalami proses pembaruan seperti yang dialami pengguna. Hal ini penting karena beberapa izin mungkin menonaktifkan ekstensi hingga pengguna memberikan akses lagi.

Mari terhubung. 🙌

Tahun ini, tim ekstensi senang bisa bertemu dengan developer ekstensi secara langsung dalam acara Google I/O Connect. Kami sedang berupaya membuat ruang baru untuk terhubung dengan Anda, seperti meluncurkan grup fokus dan acara pertemuan.

Sementara itu, terus ajukan pertanyaan tentang chromium-groups, pertimbangkan untuk berpartisipasi dalam WECG, dan laporkan masalah dokumentasi apa pun di repo GitHub developer.chrome.com.

Sekali lagi, terima kasih telah menjadi bagian dari komunitas developer ekstensi.