Sejauh ini, tahun 2023 adalah tahun yang sibuk di 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 Grup Komunitas WebExtensions agar 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 nanti pada 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 mendatang.
Sorotan
Dokumen di balik layar
Offscreen API diperkenalkan di Chrome 109. Hal ini memungkinkan ekstensi Manifes V3 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 offscreen tambahan: 'WORKERS'
untuk instance saat dokumen Anda perlu membuat 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 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 untuk pengguna dengan cara yang jauh lebih mudah. Baca selengkapnya tentang cara Side Panel API memungkinkan Anda mendesain pengalaman pengguna yang unggul.
Service Worker yang lebih andal
Semua peristiwa ekstensi kini memulai ulang timer tidak ada aktivitas pekerja layanan ekstensi. Di Chrome 110, masa aktif maksimum lima menit dihapus untuk pekerja layanan ekstensi. Selain itu, pesan ke aplikasi native dan pesan dalam ekstensi akan memulai ulang timer tidak ada aktivitas. Baca selengkapnya di 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 diaktifkan untuk tab saat ini. - Commands API: Bug saat pintasan ekstensi, yang dideklarasikan dalam manifes di bagian
"commands._execute_action"
, tidak akan dipertahankan selama konversi ke MV3, telah diperbaiki di Chrome 111. - Downloads API: UI download default di Chrome telah dipindahkan dari galeri 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. Hal ini dapat menghasilkan lebih banyak entri histori dan jumlah kunjungan yang lebih tinggi.isLocal
ditambahkan keVisitItem
di Chrome 115 (diperkirakan akan stabil akhir bulan ini) agar dapat memfilter berdasarkan kunjungan lokal saja. - Identity API: Jendela autentikasi kini muncul sebagai pop-up, bukan menempati jendela aplikasi penuh. Untuk memberikan lebih banyak kontrol 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 cocok di Chrome 114.
Segera hadir...
Versi Chrome mendatang akan memperkenalkan banyak fitur untuk memudahkan ekstensi bermigrasi ke Manifes V3. Untuk mengetahui 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 rangkaian pesan WECG. - File Handling API akan memungkinkan ekstensi ChromeOS membuka file dengan jenis MIME dan ekstensi file yang ditentukan. Fitur ini saat ini ditandai.
- Runtime API: Kami merilis
runtime.getContexts()
untuk menggantikanextension.getViews()
, yang tidak digunakan lagi. Hal ini akan memungkinkan ekstensi menentukan apakah halaman ekstensi seperti panel samping atau dokumen di luar layar terbuka. Lihat proposal WECG. - Worker layanan: 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 luar layar. Lihat Perekaman audio dan screenshot untuk mengetahui contohnya.
Nantikan halaman Yang baru di ekstensi untuk mengetahui pengumuman ini segera setelah tersedia di Chrome Beta.
Upgrade dokumentasi dan panduan Manifes V3 lainnya
Kami juga telah berupaya keras untuk meningkatkan pengalaman belajar developer. Terima kasih banyak kepada semua Anda yang meluangkan waktu untuk mengajukan pertanyaan di 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 Extension service workers memberikan informasi mendetail tentang topik extension service workers. Hal ini mencakup cara pendaftaran dan pembaruan, tampilan siklus proses, cara kerja impor, dan lainnya.
- Tutorial Menangani peristiwa dengan pekerja layanan mengajarkan dasar-dasar pekerja layanan ekstensi. Ekstensi 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 popup ekstensi dan pekerja layanan.
- Menggunakan geolokasi menunjukkan cara mendapatkan lokasi geografis ekstensi menggunakan Offscreen API.
- Perekaman audio dan pengambilan screenshot mengajarkan cara merekam audio dan video dari tab, jendela, atau layar menggunakan API
chrome.tabCapture
dannavigator.mediaDevices.getDisplayMedia()
. - Kami telah menambahkan tips proses debug baru ke panduan Men-debug ekstensi.
- Kami telah memperbarui Panduan peringatan izin untuk memudahkan Anda 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, cookbook Side Panel API, dan contoh DeclarativeNetRequest API. Anda dapat menjelajahi contoh ekstensi lainnya di repo contoh GitHub kami.
Segera hadir...
- Cara memigrasikan kode yang dihosting dari jarak jauh ke Manifes V3.
- Cara menjalankan pengujian otomatis untuk ekstensi Chrome.
- Panduan Permintaan Jaringan Deklaratif yang ditingkatkan.
- Peningkatan pada penjelasan skrip konten.
💡 Tahukah Anda?
Sebelum mengakhiri, kami ingin membagikan beberapa alat dan insight yang berguna:
- Chrome mulai mendukung WebHID; Anda dapat mencoba 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 Update Ekstensi, Anda dapat memeriksa peringatan yang dipicu saat izin berubah dalam manifes. Dengan cara ini, Anda dapat merasakan proses update seperti yang dilakukan pengguna. Hal ini penting karena beberapa izin dapat menonaktifkan ekstensi hingga pengguna memberikan akses lagi.
Mari kita berbincang dan mendiskusikan hal ini. 🙌
Tahun ini, tim ekstensi dengan senang hati bertemu dengan developer ekstensi secara langsung selama acara Google I/O Connect. Kami sedang berupaya menciptakan ruang baru untuk terhubung dengan Anda, seperti meluncurkan grup fokus dan acara temu.
Sementara itu, terus ajukan pertanyaan di chromium-groups, pertimbangkan untuk berpartisipasi dalam WECG, dan laporkan masalah dokumentasi apa pun di repositori GitHub developer.chrome.com.
Sekali lagi, terima kasih telah menjadi bagian dari komunitas developer ekstensi.