Rozszerzenia, motywy i aplikacje to po prostu pakiety zasobów powiązane
manifest.json
opisujące zawartość pakietu. Format tego pliku to
jest ogólnie stabilne, jednak w celu rozwiązania ważnych problemów czasami konieczne jest wprowadzenie zmian powodujących niezgodność.
Deweloperzy powinni określić, do której wersji specyfikacji pliku manifestu kierują swoje pakiety
i ustawianie klucza manifest_version
w plikach manifestu.
Obecna wersja
Deweloperzy powinni obecnie określać 'manifest_version': 2
:
{
...,
"manifest_version": 2,
...
}
Wersja 1 pliku manifestu została wycofana w Chrome 18. Obsługa zostanie wyłączona zgodnie z zgodnie z harmonogramem.
Harmonogram pomocy dla wersji 1 pliku manifestu
Sierpień 2012
- Web Store zablokuje tworzenie nowych rozszerzeń w wersji 1 manifestu.
- Chrome Web Store zezwoli na aktualizacje istniejących rozszerzeń w wersji 1 manifestu.
Marzec 2013
- 4 marca 2013 r. sklep Chrome Web Store zablokuje aktualizacje rozszerzeń w wersji 1 manifestu.
Kwiecień 2013 r.
- Chrome 27 w wersji beta przestanie pakować rozszerzenia z manifestu w wersji 1 (lub będzie je wczytywać w przypadku programowania).
Czerwiec 2013
- Chrome Web Store usunie rozszerzenia w wersji 1 z pliku manifestu z ekranu, wyników wyszukiwania i stron kategorii.
- Do wszystkich deweloperów, którzy mają w sklepie plik manifestu w wersji 1 z rozszerzeniami w wersji 1, zostaną wysłane e-maile z powiadomieniem przypominanie o tym, że zostaną one wycofane z publikacji, oraz instrukcje dotyczące aktualizacji.
Wrzesień 2013
- Sklep Chrome Web Store cofnie publikację wszystkich rozszerzeń w wersji 1 manifestu.
- Do deweloperów z rozszerzeniami w wersji 1 manifestu, które będą nadal dostępne w internecie, zostaną wysłane ostatnie e-maile z powiadomieniem Sklep.
- Chrome będzie nadal ładować i uruchamiać zainstalowane rozszerzenia w pliku manifestu w wersji 1.
Styczeń 2014
- Chrome przestanie ładować rozszerzenia w wersji 1 manifestu lub je uruchomić.
Zmiany między wersjami 1 i 2
- Domyślna zasada zabezpieczeń treści to
`script-src 'self'; object-src 'self';
. Ten może wpływać na deweloperów, co opisano szczegółowo w dokumenciecontent_security_policy
. dokumentacji. - Zasoby pakietu nie są już domyślnie dostępne na stronach zewnętrznych (jako
src
obraz lub tagscript
). Jeśli chcesz, by strona mogła wczytywać zasób zawarty w pakietu, musisz dodać go do listy dozwolonych za pomocą pliku manifestuweb_accessible_resources
. Jest to szczególnie istotne w przypadku rozszerzeń tworzących interfejs w witrynie za pomocą skryptów wstrzykiwanych treści. - Właściwość
background_page
została zastąpiona właściwościąbackground
, która zawiera do właściwościscripts
lubpage
. Szczegóły są dostępne na stronach wydarzeń. dokumentacji. Zmiany działań przeglądarki:
- Klucz
browser_actions
z pliku manifestu i interfejs APIchrome.browserActions
zostały usunięte. Użyj liczby pojedynczejbrowser_action
ichrome.browserAction
. - Właściwość
icons
elementubrowser_action
została usunięta. używać właściwościdefault_icon
, lub browserAction.setIcon. - Właściwość
name
elementubrowser_action
została usunięta. używać właściwościdefault_title
, lub browserAction.setTitle. - Właściwość
popup
elementubrowser_action
została usunięta. Użyjdefault_popup
właściwość [property] lub browserAction.setPopup. - Właściwość
default_popup
elementubrowser_action
nie może być już określona jako obiekt. it musi być ciągiem znaków.
- Klucz
Zmiany działań na stronie:
- Klucz
page_actions
z pliku manifestu i interfejs APIchrome.pageActions
zostały usunięte. Użyj liczby pojedynczejpage_action
ichrome.pageAction
. - Właściwość
icons
elementupage_action
została usunięta. użyj właściwościdefault_icon
lub pageAction.setIcon. - Właściwość
name
elementupage_action
została usunięta. użyj właściwościdefault_title
lub pageAction.setTitle. - Właściwość
popup
elementupage_action
została usunięta. używać właściwościdefault_popup
, lub pageAction.setPopup. - Właściwość
default_popup
elementupage_action
nie może być już określona jako obiekt. Musi być ciągiem.
- Klucz
Interfejs API
chrome.self
został usunięty. Zamiast niego użyjchrome.extension
.chrome.extension.getTabContentses
(!!!) ichrome.extension.getExtensionTabs
nie są już używane. Używaj extension.getViews.Port.tab
nie istnieje. Zamiast niego użyj runtime.Port.