Manifes - Resource yang Dapat Diakses Web

Array string yang menentukan jalur resource terpaket yang diharapkan dapat digunakan di konteks halaman web. Jalur ini relatif terhadap root paket dan dapat berisi karakter pengganti. Sebagai sebagai contoh, ekstensi yang memasukkan skrip konten dengan tujuan membuat beberapa untuk example.com akan memungkinkan semua resource yang diperlukan antarmuka (gambar, ikon, stylesheet, skrip, dll.) sebagai berikut:

{
  ...
  "web_accessible_resources": [
    "images/*.png",
    "style/double-rainbow.css",
    "script/double-rainbow.js",
    "script/main.js",
    "templates/*"
  ],
  ...
}

Sumber daya ini kemudian akan tersedia di halaman web melalui URL chrome-extension://[PACKAGE ID]/[PATH], yang dapat dibuat dengan extension.getURL . Resource yang diizinkan ditayangkan dengan header CORS yang sesuai, sehingga resource tersebut tersedia melalui mekanisme seperti XHR.

Navigasi dari origin web ke resource ekstensi akan diblokir kecuali jika resource tersebut terdaftar sebagai dapat diakses di web. Perhatikan sudut pandang berikut:

  • Saat ekstensi menggunakan API webRequest atau declarativeWebRequest untuk mengalihkan permintaan resource ke resource yang tidak dapat diakses melalui web, permintaan tersebut juga diblokir.
  • Hal di atas tetap berlaku meskipun sumber daya yang tidak dapat diakses melalui web dimiliki oleh pengalihan .

Skrip konten itu sendiri tidak perlu diizinkan.

Sebelum manifes versi 2, semua resource dalam ekstensi dapat diakses dari halaman mana pun di web. Tindakan ini memungkinkan situs berbahaya mencetak sidik jari ekstensi yang telah diinstal pengguna atau mengeksploitasi kerentanan (misalnya bug XSS) dalam ekstensi yang diinstal. Membatasi ketersediaan hanya untuk resource yang secara eksplisit dimaksudkan agar dapat diakses dari web meminimalkan permukaan serangan yang tersedia dan melindungi privasi pengguna.

Ketersediaan Default

Resource di dalam paket yang menggunakan manifest_version 2 atau yang lebih baru diblokir secara default, dan harus diizinkan untuk digunakan melalui properti ini.

Resource di dalam paket yang menggunakan manifest_version 1 tersedia secara default, tetapi jika Anda melakukannya tetapkan properti ini, lalu properti tersebut akan diperlakukan sebagai daftar lengkap semua resource yang diizinkan. Referensi yang tidak tercantum akan diblokir.