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. Bu izinleri "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, bir uzantıdaki ve web sayfaları veya diğer uzantılar tarafından erişilebilen 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. Daha önce olduğu gibi bir dosya listesi sağlamak yerine, her biri bir grup kaynağı bir grup URL veya uzantı kimliğiyle 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/*"
      ]
    }
  ],
  ...
}