Zaktualizuj plik manifestu

Przekształcanie pliku manifestu V2 w pliku manifestu V3

Plik manifest.json wymaga nieco innego formatu na platformie Manifest V3 niż w przypadku platformy Manifest V2. Na tej stronie opisujemy zmiany, które mają wpływ tylko na plik manifest.json. Jednak wiele zmian w skryptach i stronach wymaga również zmian w pliku manifestu. Te zmiany zostaną uwzględnione w zadaniach migracji, które ich wymagają.

Zmień numer wersji pliku manifestu

Zmień wartość pola "manifest_version" z 2 na 3.

(platforma) Manifest V2
{
  ...
  "manifest_version": 2
  ...
}
(platforma) Manifest V3
{
  ...
  "manifest_version": 3
  ...
}

Aktualizowanie uprawnień hosta

Uprawnienia hosta w pliku manifestu V3 to osobne pole. Nie określasz ich w polu "permissions" ani "optional_permissions".

Skrypty dotyczące zawartości pozostają w sekcji "content_scripts.matches". Informacje o "content_scripts.matches" znajdziesz w artykule Wstrzykiwanie za pomocą deklaracji statycznych.

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

Aktualizowanie zasobów dostępnych w internecie

Zasoby dostępne w internecie to pliki w rozszerzeniu, do których dostęp mają strony internetowe lub inne rozszerzenia. W pliku manifestu w wersji 2 pole "web_accessible_resources" umożliwiało wykrywanie rozszerzeń przez witryny i atakujących, jeśli rozszerzenie miało udostępnione zasoby. Stwarzało to możliwość pobrania odcisków cyfrowych lub niezamierzonego dostępu do zasobów.

Platforma Manifest V3 ogranicza ekspozycję, ponieważ określa, które witryny i rozszerzenia mają dostęp do zasobów rozszerzenia. Zamiast podawać listę plików w sposób opisany wcześniej, możesz utworzyć tablicę obiektów, z których każdy mapuje zbiór zasobów na zestaw adresów URL lub identyfikatorów rozszerzeń.

W przykładzie poniżej porównano zasoby dostępne w internecie na platformie Manifest V2 i platformy Manifest V3. W pliku manifestu V2 określone zasoby były domyślnie dostępne dla wszystkich witryn internetowych. W pokazanym poniżej kodzie pliku manifestu w wersji 3 te zasoby są dostępne tylko dla https://example.com, a tylko niektóre obrazy są dostępne dla wszystkich witryn internetowych.

Więcej informacji znajdziesz w artykułach Zasoby dostępne w internecieWzorce dopasowania.

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