Sejauh ini, 2023 merupakan tahun yang sibuk dalam dunia ekstensi Chrome. Masukan Anda yang berharga telah memungkinkan kami meningkatkan platform ekstensi dan dokumentasi kami. Kami juga terus berkolaborasi dengan vendor browser lain di WebExtensions Community Group sehingga API ekstensi berfungsi secara lebih konsisten di seluruh browser.
Dalam postingan ini, kami akan membagikan beberapa perubahan yang telah dikerjakan tim ekstensi Chrome selama paruh pertama tahun ini dan fitur mendatang yang akan dirilis 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. Ini memungkinkan ekstensi Manifes V3 untuk menangani kasus penggunaan yang memerlukan interaksi dengan DOM atau jendela, yang tidak dapat dilakukan di pekerja layanan ekstensi. Selain itu, Chrome 114 memperkenalkan dua alasan tambahan di balik layar: '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 balik layar. Hal ini memungkinkan Anda melakukan dua tugas terkait dalam 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 diluncurkan. Sekarang Anda dapat mengembangkan pengalaman sidebar pendamping bagi pengguna dengan cara yang jauh lebih mudah. Baca selengkapnya tentang cara Side Panel API memungkinkan Anda mendesain pengalaman pengguna yang luar biasa.
Service Worker yang lebih tangguh
Semua peristiwa ekstensi kini memulai ulang timer tidak ada aktivitas pekerja layanan ekstensi. Di Chrome 110, masa aktif maksimum lima menit, yang merupakan masa aktif, dihapus untuk pekerja layanan ekstensi. Selain itu, pesan ke aplikasi native dan pesan dalam ekstensi akan memulai ulang timer tidak ada aktivitas. Baca selengkapnya tentang hal ini dalam artikel Siklus proses pekerja layanan ekstensi.
Peluncuran API lainnya
- Action API: Mulai Chrome 110, Anda dapat menyesuaikan teks badge dengan
setBadgeTextColor
() dangetBadgeTextColor()
. Selain itu,isEnabled()
memungkinkan Anda memeriksa apakah tindakan tersebut diaktifkan untuk tab saat ini. - Commands API: Bug saat pintasan ekstensi, yang dideklarasikan dalam manifes di bagian
"commands._execute_action"
, tidak dipertahankan 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 menggantikansetShelfEnabled()
. - History API:
chrome.history.getVisits()
danchrome.history.search()
juga menampilkan data dari perangkat lain yang telah disinkronkan ke database histori lokal. Tindakan ini dapat menghasilkan lebih banyak entri histori dan jumlah kunjungan yang lebih tinggi.isLocal
ditambahkan keVisitItem
di Chrome 115 (diperkirakan akan stabil pada akhir bulan ini) agar dapat memfilter berdasarkan kunjungan lokal saja. - Identity API: Jendela autentikasi sekarang muncul sebagai pop-up, bukan menempati jendela aplikasi penuh. Untuk memberikan kontrol lebih selama proses pengalihan JavaScript, kami telah menambahkan dua opsi baru:
abortOnLoadForNonInteractive
dantimeoutMsForNonInteractive
. - Storage API: Di Chrome 112, ukuran penyimpanan
chrome.session
ditingkatkan menjadi 10 MB. Kemudian, ukuran penyimpananchrome.local
diubah agar sesuai dengan Chrome 114.
Segera hadir...
Versi Chrome mendatang akan memperkenalkan banyak fitur untuk memudahkan ekstensi bermigrasi ke Manifes V3. Untuk mengetahui daftar perubahan mendatang terkait migrasi MV3, lihat halaman masalah umum kami. Selain itu, kami berencana untuk menambahkan fitur berikut:
- DeclarativeNetRequest API: Nilai default untuk properti isUrlFilterCaseSensitive akan berubah menjadi
false
. Lihat rangkaian pesan WECG. - File Handling API akan mengizinkan ekstensi ChromeOS untuk membuka file dengan jenis MIME dan ekstensi file yang ditentukan. Fitur ini saat ini di belakang tanda.
- Runtime API: Kami merilis
runtime.getContexts()
untuk menggantikanextension.getViews()
, yang sudah tidak digunakan lagi. Tindakan ini akan memungkinkan ekstensi menentukan apakah halaman ekstensi seperti panel samping atau dokumen di balik layar terbuka. Lihat proposal WECG. - Service worker: Kami menambahkan keep-alive yang kuat ke Chrome API yang menampilkan perintah pengguna:
permissions.request()
,desktopCapture.chooseDesktopMedia()
,identity.launchWebAuthFlow()
, danmanagement.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 balik layar. Baca artikel Perekaman audio dan screenshot untuk mengetahui contohnya.
Ikuti terus halaman Yang baru di ekstensi untuk pengumuman ini 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 menyediakan cara praktis untuk mengonversi ekstensi Manifes V2 ke Manifes V3.
- Panduan Pekerja layanan ekstensi memberikan informasi mendetail tentang topik pekerja layanan ekstensi. Informasi ini mencakup bagaimana mereka didaftarkan dan diperbarui, seperti apa siklus hidupnya, bagaimana impor bekerja, dan banyak lagi.
- Tutorial Menangani peristiwa dengan pekerja layanan mengajarkan dasar-dasar pekerja layanan ekstensi. Fitur ini membuat ekstensi omnibox yang memberi Anda akses cepat ke halaman referensi API ekstensi.
Informasi terbaru selengkapnya
- Menggunakan Google Analytics 4 menunjukkan cara melacak penggunaan peristiwa pop-up ekstensi dan pekerja layanan.
- Menggunakan geolokasi menunjukkan cara mendapatkan lokasi geografis ekstensi menggunakan Offscreen API.
- Perekaman audio dan screenshot mengajarkan cara merekam audio dan video dari tab, jendela, atau layar menggunakan
chrome.tabCapture
API dannavigator.mediaDevices.getDisplayMedia()
. - Kami telah menambahkan tips proses debug baru ke panduan Ekstensi proses debug.
- Kami telah memperbarui Panduan peringatan izin untuk mempermudah memahami cara kerja peringatan izin dan cara memberikan pengalaman pengguna yang lebih baik. Selain itu, ada cara praktis untuk memeriksa peringatan yang akan dilihat pengguna.
- Tim dan kontributor kami juga telah menambahkan contoh ekstensi Manifes V3 baru: WASM dalam ekstensi, demo Scripting API, Buku resep API Panel Samping, dan Contoh DeclarativeNetRequest API. Anda dapat mempelajari contoh ekstensi lainnya di repo contoh GitHub.
Segera hadir...
- Cara memigrasikan kode yang dihosting jarak jauh ke Manifes V3.
- Cara menjalankan pengujian otomatis untuk ekstensi Chrome.
- Peningkatan panduan Declarative Net Request.
- Peningkatan pada penjelasan skrip konten.
💡 Tahukah Anda?
Sebelum menutup presentasi ini, kami ingin membagikan beberapa alat dan insight yang berguna:
- Chrome mulai berupaya mendukung WebHID; Anda dapat mencoba-coba API ini mulai Chrome 115 (tetapi perlu diketahui bahwa API ini masih dalam proses).
- Puppeteer kini mendukung pengujian dalam mode headless menggunakan
--headless=new
. Baca selengkapnya di postingan blog Upgrade mode headless Chrome. - Dengan Alat Pengujian Ekstensi Update, Anda dapat memeriksa peringatan yang dipicu saat izin berubah dalam manifes. Dengan cara ini, Anda dapat mengalami proses pembaruan seperti yang dilakukan pengguna. Hal ini penting karena beberapa izin mungkin menonaktifkan ekstensi hingga pengguna memberikan akses kembali.
Mari terhubung. 🙌
Tahun ini, tim ekstensi senang bertemu langsung dengan developer ekstensi selama acara Google I/O Connect. Kami sedang berupaya menciptakan ruang baru untuk terhubung dengan Anda, seperti meluncurkan grup fokus dan acara pertemuan.
Sementara itu, Anda dapat terus mengajukan pertanyaan di 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.