Masalah umum saat bermigrasi ke Manifes V3

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:

  1. Dukungan untuk Penanganan file di ChromeOS sebagai pengganti chrome.fileBrowserHandler (Chrome 120).
  2. Dukungan Skrip Pengguna: Mengizinkan pendaftaran skrip konten dengan kode arbitrer menggunakan userScripts API baru (Chrome 120).
  3. 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(), dan management.uninstall().
    • Ditambahkan di Chrome 118 untuk chrome.debugger.
  4. 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).
  5. Memperluas Fungsi dokumen di luar layar untuk mendukung lebih banyak alasan penggunaan dokumen di luar layar. Menambahkan GEOLOCATION di Chrome 116.
  6. Meningkatkan dukungan untuk chrome.tabCapture API (Chrome 116):
    • Mendukung panggilan getMediaStreamId() dari service worker.
    • Mendukung perolehan MediaStream dari ID aliran dalam dokumen di luar layar.
  7. Memperpanjang masa aktif service worker saat ada koneksi WebSocket yang 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:

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.