Manifest'i güncelle

V2 manifestini V3 manifestine dönüştürme

manifest.json dosyası, Manifest V3 için Manifest V2'den biraz farklı bir biçim gerektirir. Bu sayfada yalnızca manifest.json dosyasını etkileyen değişiklikler açıklanmaktadır. Ancak komut dosyalarında ve sayfalarda yapılan değişikliklerin çoğu, manifest dosyasında da değişiklik yapılmasını gerektirir. Bu değişiklikler, bunları gerektiren taşıma görevleri kapsamındadır.

Manifest sürüm numarasını değiştirme

"manifest_version" alanının değerini 2'den 3'e değiştirin.

Manifest V2
{
  ...
  "manifest_version": 2
  ...
}
Manifest V3
{
  ...
  "manifest_version": 3
  ...
}

Ana makine izinlerini güncelleme

Manifest V3'teki ana makine izinleri ayrı bir alandır; bunları "permissions" veya "optional_permissions" içinde belirtmezsiniz.

İçerik komut dosyaları "content_scripts.matches" altında kalır. "content_scripts.matches" hakkında bilgi için Statik beyanlarla ekleme başlıklı makaleyi inceleyin.

Manifest V2
{
  ...
  "permissions": [
    "tabs",
    "bookmarks",
    "https://www.blogger.com/",
  ],
  "optional_permissions": [
    "unlimitedStorage",
    "*://*/*",
  ]
  ...
}
Manifest V3
{
  ...
  "permissions": [
    "tabs",
    "bookmarks"
  ],
  "optional_permissions": [
    "unlimitedStorage"
  ],
  "host_permissions": [
    "https://www.blogger.com/",
  ],
  "optional_host_permissions": [
    "*://*/*",
  ]
  ...
}

Web'den erişilebilen kaynakları güncelleme

Web'den erişilebilen kaynaklar, web sayfaları veya diğer uzantılar tarafından erişilebilen bir uzantının içinde bulunan dosyalardır. Manifest V2'de uygulandığı şekliyle "web_accessible_resources" alanı, uzantı kaynakları göstermeyi seçerse uzantıların web siteleri ve saldırganlar tarafından algılanabilir olmasını sağlar. Bu durum, parmak izi oluşturma veya istenmeyen kaynak erişimi fırsatları doğurdu.

Manifest V3, hangi web sitelerinin ve uzantıların uzantınızdaki kaynaklara erişebileceğini kısıtlayarak gösterimi sınırlar. Önceden olduğu gibi dosya listesi sağlamak yerine, artık her biri bir kaynak grubunu bir dizi URL veya uzantı kimliği ile eşleyen bir nesne dizisi sağlarsınız.

Aşağıdaki örnekte, Manifest V2 ve Manifest V3 arasındaki web'e erişilebilir kaynaklar karşılaştırılmaktadır. Manifest V2'de, belirtilen kaynaklara varsayılan olarak tüm web siteleri erişebiliyordu. Aşağıda gösterilen Manifest V3 kodunda bu kaynaklar yalnızca https://example.com tarafından kullanılabilirken yalnızca belirli resimler tüm web siteleri tarafından kullanılabilir.

Daha fazla bilgi için Web'den erişilebilen kaynaklar ve Eşleşme kalıpları başlıklı makaleleri inceleyin.

Manifest V2
{
  ...
  "web_accessible_resources": [
    "images/*",
    "style/extension.css",
    "script/extension.js"
  ],
  ...
}
Manifest V3
{
  ...
    "web_accessible_resources": [
    {
      "resources": [
        "images/*"
      ],
      "matches": [
        "*://*/*"
      ]
    },
    {
      "resources": [
        "style/extension.css",
        "script/extension.js"
      ],
      "matches": [
        "https://example.com/*"
      ]
    }
  ],
  ...
}