Halaman ini mendokumentasikan kesenjangan platform yang diselesaikan selama transisi ke Manifest V3 dan menjawab pertanyaan umum tentang migrasi.
Perbedaan platform yang diselesaikan
Kemampuan berikut ditambahkan untuk mengatasi masalah umum yang menghalangi migrasi:
- Dukungan untuk Penanganan file di ChromeOS sebagai pengganti
chrome.fileBrowserHandler(Chrome 120). - Dukungan Skrip Pengguna: Mengizinkan pendaftaran skrip konten dengan kode arbitrer menggunakan userScripts API baru (Chrome 120).
- Sinyal tetap aktif service worker yang kuat tambahan untuk operasi tertentu yang memerlukan waktu lebih dari lima menit.
- Ditambahkan di Chrome 116 untuk
permissions.request(),desktopCapture.chooseDesktopMedia(),identity.launchWebAuthFlow(), danmanagement.uninstall(). - Ditambahkan di Chrome 118 untuk
chrome.debugger.
- Ditambahkan di Chrome 116 untuk
- Meningkatkan jumlah kumpulan aturan statis dan yang diaktifkan untuk Declarative Net Request (DNR). Set aturan statis yang diaktifkan meningkat dari 10 menjadi 50 dan total set aturan statis dari 50 menjadi 100 (Chrome 120).
- Memperluas Fungsi dokumen di luar layar untuk mendukung lebih banyak alasan penggunaan dokumen di luar layar. Menambahkan
GEOLOCATIONdi Chrome 116. - Meningkatkan dukungan untuk
chrome.tabCaptureAPI (Chrome 116):- Mendukung panggilan
getMediaStreamId()dari service worker. - Mendukung perolehan
MediaStreamdari ID aliran dalam dokumen di luar layar.
- Mendukung panggilan
- Memperpanjang masa aktif service worker saat ada koneksi
WebSocketyang aktif (Chrome 116).
Pertanyaan umum (FAQ) tentang Manifest V3
T: Apakah kita berencana mendukung Service Worker persisten?
J: Salah satu alasan utama untuk bermigrasi dari skrip latar belakang ke pekerja layanan adalah model pemrograman berbasis peristiwa yang lebih efisien memori yang berasal dari sifat sementara pekerja layanan. Oleh karena itu, kami tidak berencana mendukung pekerja layanan persisten. Namun, untuk memenuhi kebutuhan spesifik developer ekstensi, kami terus melakukan banyak peningkatan pada pekerja layanan. Khususnya:
- Semua peristiwa ekstensi dan panggilan API akan memperpanjang masa aktif pekerja layanan.
- Kasus penggunaan tertentu seperti pesan native akan membuat pekerja layanan ekstensi tetap aktif selama lebih dari 5 menit.
T: Apakah ada cara untuk mengakses DOM di pekerja layanan?
J: Kami mengikuti pendekatan yang dilakukan oleh Platform Web untuk tidak menyertakan akses DOM di pekerja web (yang mencakup pekerja layanan). Untuk mendukung kasus penggunaan yang memerlukan akses DOM latar belakang dari pekerja layanan, kami telah memperkenalkan kemungkinan untuk mendelegasikan tugas latar belakang ke Dokumen di luar layar yang berumur pendek dan memberikan akses DOM penuh.
T: Apakah akan ada cara untuk mendukung kode jarak jauh di Manifes V3?
J: Untuk membuat Ekstensi Chrome lebih aman, kami akan terus melarang eksekusi kode yang dihosting dari jarak jauh secara arbitrer di ekstensi Chrome. Namun, hal ini tidak berarti kami melarang semua jenis eksekusi kode dinamis. Kami tetap mendukung berbagai opsi untuk menjalankan kode secara dinamis di ekstensi Chrome:
- Dukungan untuk
eval()di ekstensi DevTools - Dukungan untuk skrip pengguna.
- Mengeksekusi kode yang dihosting dari jarak jauh di iframe sandbox
- File konfigurasi yang dihosting dari jarak jauh yang dapat ditafsirkan saat runtime dalam paket ekstensi. Namun, kemungkinan jalur eksekusi harus ditentukan terlebih dahulu.
T: Ekstensi Manifest V2 saya mengandalkan webRequestBlocking yang tidak didukung di Manifest V3. Bagaimana cara agar saya dapat terus menyediakan fungsi yang sama di Manifest V3?
J: Kami yakin bahwa sebagian besar kasus penggunaan pemblokiran permintaan dapat diselesaikan dengan API declarativeNetRequest baru, yang memiliki manfaat tambahan berupa penghindaran overhead performa komunikasi antarproses, eksekusi kode pada setiap permintaan, atau persyaratan proses ekstensi aktif pada saat permintaan. Namun, untuk kasus penggunaan perusahaan (atau pendidikan) yang kompleks, pemblokiran permintaan dinamis masih didukung.
Ada yang terlewat? Beri tahu kami.