Zaktualizuj plik manifestu

Przekształcanie pliku manifestu V2 w pliku manifestu V3

Plik manifest.json wymaga nieco innego formatu w przypadku manifestu w wersji 3 niż w przypadku manifestu w wersji 2. 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 są uwzględniane w ramach zadań migracji, które ich wymagają.

Zmiana numeru 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ści pobierania odcisków palców lub niezamierzonego dostępu do zasobów.

Manifest w wersji 3 ogranicza ekspozycję, ponieważ określa, które witryny i rozszerzenia mają dostęp do zasobów w Twoim rozszerzeniu. Zamiast podawać listę plików, jak wcześniej, teraz podajesz tablicę obiektów, z których każdy mapuje zbiór zasobów na zbiór adresów URL lub identyfikatorów rozszerzeń.

W tym przykładzie porównujemy zasoby dostępne w internecie w przypadku Manifestu V2 i Manifestu 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/*"
     
]
   
}
 
],
 
...
}