Manifes - Resource yang Dapat Diakses Web

Array string yang menentukan jalur resource terpaket yang diharapkan dapat digunakan dalam konteks halaman web. Jalur ini relatif terhadap root paket dan dapat berisi karakter pengganti. Misalnya, ekstensi yang memasukkan skrip konten dengan maksud untuk membuat beberapa antarmuka kustom untuk example.com akan memungkinkan resource apa pun yang memerlukan antarmuka (gambar, ikon, stylesheet, skrip, dll.) seperti berikut:

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

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

Navigasi dari origin web ke resource ekstensi akan diblokir kecuali jika resource tercantum sebagai resource yang dapat diakses web. Perhatikan kasus sudut berikut:

  • Jika ekstensi menggunakan API webRequest atau declarativeWebRequest untuk mengalihkan permintaan resource publik ke resource yang tidak dapat diakses oleh web, permintaan tersebut juga akan diblokir.
  • Hal di atas berlaku meskipun resource yang tidak dapat diakses oleh web dimiliki oleh ekstensi pengalihan.

Skrip konten itu sendiri tidak perlu ditambahkan ke daftar yang diizinkan.

Sebelum manifes versi 2, semua resource dalam ekstensi dapat diakses dari halaman mana pun di web. Hal 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 pada resource yang secara eksplisit dimaksudkan agar dapat diakses oleh web dapat meminimalkan area 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 if Anda menetapkan properti ini, properti tersebut akan diperlakukan sebagai daftar lengkap dari semua resource yang diizinkan. Resource yang tidak tercantum akan diblokir.