Masalah umum saat bermigrasi ke Manifes V3

Baru-baru ini, kami mengumumkan perubahan pada jadwal penghentian penggunaan Manifes V2. Meskipun kami tetap berkomitmen kuat pada Manifes V3, kami mengakui masih ada banyak pekerjaan yang perlu kami lakukan.

  • Sebelum mengumumkan jadwal baru penghentian, kami telah selesai mengatasi kesenjangan platform yang diprioritaskan dan menutup bug kritis yang didokumentasikan di halaman ini.
  • Kami memberi developer waktu untuk membuat build, dengan menjamin setidaknya enam bulan antara pengumuman linimasa dan eksperimen yang tertunda untuk menghapus dukungan Manifes V2.

Menutup kesenjangan platform

Kami berkomitmen untuk menutup kesenjangan berikut sebelum mengumumkan linimasa penghentian penggunaan Manifes V2 yang baru:

Masalah dikumpulkan berdasarkan masukan dari partner, laporan bug, dan developer. Kami akan melanjutkan upaya berkelanjutan kami untuk meningkatkan stabilitas dan performa platform ekstensi secara keseluruhan.

Saat ini tidak ada masalah terbuka yang dianggap sebagai celah platform yang kritis.

Masalah berikut telah ditangani baru-baru ini:

  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. Keepalive pekerja layanan 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 aktif untuk Declarative Net Request (DNR). Kumpulan aturan statis yang diaktifkan meningkat dari 10 menjadi 50 dan total kumpulan aturan statis dari 50 menjadi 100 [Chrome 120].
  5. Perluas fungsi Dokumen di luar layar untuk mendukung lebih banyak alasan terkait penggunaan dokumen di balik layar. Menambahkan GEOLOCATION di Chrome 116.
  6. Meningkatkan dukungan untuk chrome.tabCapture API [Chrome 116]:
    • Mendukung pemanggilan getMediaStreamId() dari pekerja layanan.
    • Mendukung untuk mendapatkan MediaStream dari ID aliran data dalam dokumen di luar layar.
  7. Memperpanjang masa aktif pekerja layanan saat ada koneksi WebSocket yang aktif [Chrome 116].

Pertanyaan umum (FAQ) terkait Manifes V3

T: Apakah kami berencana untuk 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 hemat memori yang berasal dari sifat efemeral pekerja layanan. Akibatnya, kami tidak berencana untuk mendukung pekerja layanan yang persisten. Namun, untuk memenuhi kebutuhan khusus developer ekstensi, kami akan 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 diambil oleh Platform Web untuk tidak menyertakan akses DOM dalam 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 pekerjaan latar belakang ke Dokumen offscreen berumur pendek yang menyediakan akses DOM penuh.

T: Apakah ada cara untuk mendukung kode jarak jauh di Manifes V3?
J: Untuk membuat Ekstensi Chrome lebih aman, kami akan terus melarang eksekusi kode arbitrer yang dihosting dari jarak jauh di ekstensi Chrome. Namun, ini bukan berarti kami melarang semua jenis eksekusi kode dinamis. Kami masih mendukung berbagai opsi untuk mengeksekusi kode secara dinamis di ekstensi Chrome:

T: Ekstensi Manifes V2 Saya mengandalkan webRequestBlocking yang tidak didukung di Manifes V3. Bagaimana cara agar saya dapat terus memberikan fungsi yang sama di Manifes V3?
J: Kami yakin bahwa sebagian besar kasus penggunaan pemblokiran permintaan dapat diselesaikan dengan declarativeNetRequest API baru, yang memiliki manfaat tambahan untuk menghindari overhead performa komunikasi antar-proses, mengeksekusi kode pada setiap permintaan, atau memerlukan proses ekstensi aktif pada saat permintaan. Namun, untuk kasus penggunaan perusahaan (atau pendidikan) yang kompleks, pemblokiran permintaan dinamis masih didukung.

Apakah kami melewatkan sesuatu? Harap beri tahu kami.