Mengonversi manifes V2 menjadi manifes V3
File manifest.json
memerlukan format yang sedikit berbeda untuk Manifes V3 dan Manifes V2. Halaman ini menjelaskan perubahan yang hanya memengaruhi file manifest.json
. Namun, banyak perubahan pada skrip dan halaman juga memerlukan perubahan pada manifes. Perubahan tersebut tercakup dalam tugas migrasi yang memerlukannya.
Mengubah nomor versi manifes
Ubah nilai kolom "manifest_version"
dari 2 menjadi 3.
{ ... "manifest_version": 2 ... }
{ ... "manifest_version": 3 ... }
Memperbarui izin host
Izin host di Manifes V3 adalah kolom terpisah; Anda tidak menentukannya di "permissions"
atau di "optional_permissions"
.
Skrip konten tetap berada di bawah "content_scripts.matches"
. Lihat Memasukkan dengan deklarasi statis untuk informasi tentang "content_scripts.matches"
.
{ ... "permissions": [ "tabs", "bookmarks", "https://www.blogger.com/", ], "optional_permissions": [ "unlimitedStorage", "*://*/*", ] ... }
{ ... "permissions": [ "tabs", "bookmarks" ], "optional_permissions": [ "unlimitedStorage" ], "host_permissions": [ "https://www.blogger.com/", ], "optional_host_permissions": [ "*://*/*", ] ... }
Memperbarui referensi yang dapat diakses dari web
Resource yang dapat diakses dari web adalah file di dalam ekstensi yang dapat diakses oleh halaman web atau ekstensi lainnya. Seperti yang diterapkan di Manifes V2, kolom "web_accessible_resources"
membuat ekstensi dapat dideteksi oleh situs dan penyerang jika ekstensi memilih untuk mengekspos resource. Hal ini menciptakan peluang untuk pembuatan sidik jari atau akses resource yang tidak disengaja.
Manifes V3 membatasi eksposur dengan membatasi situs dan ekstensi mana yang dapat mengakses resource di ekstensi Anda. Daripada menyediakan daftar file seperti sebelumnya, Anda kini menyediakan array objek, yang masing-masing memetakan kumpulan resource ke kumpulan URL atau ID ekstensi.
Contoh di bawah membandingkan resource yang dapat diakses web antara Manifes V2 dan Manifes V3. Di Manifes V2, resource yang ditentukan dapat diakses oleh semua situs web secara default. Dalam kode Manifest V3 yang ditampilkan di bawah, resource ini hanya tersedia untuk https://example.com
, sedangkan hanya gambar tertentu yang tersedia untuk semua situs web.
Untuk informasi selengkapnya, lihat Resource yang dapat diakses web dan Pola pencocokan.
{ ... "web_accessible_resources": [ "images/*", "style/extension.css", "script/extension.js" ], ... }
{ ... "web_accessible_resources": [ { "resources": [ "images/*" ], "matches": [ "*://*/*" ] }, { "resources": [ "style/extension.css", "script/extension.js" ], "matches": [ "https://example.com/*" ] } ], ... }