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.
{
...
"manifest_version": 2
...
}
{
...
"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.
{
...
"permissions": [
"tabs",
"bookmarks",
"https://www.blogger.com/",
],
"optional_permissions": [
"unlimitedStorage",
"*://*/*",
]
...
}
{
...
"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 internecie i Wzorce dopasowania.
{
...
"web_accessible_resources": [
"images/*",
"style/extension.css",
"script/extension.js"
],
...
}
{
...
"web_accessible_resources": [
{
"resources": [
"images/*"
],
"matches": [
"*://*/*"
]
},
{
"resources": [
"style/extension.css",
"script/extension.js"
],
"matches": [
"https://example.com/*"
]
}
],
...
}