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/*" ] } ], ... }