Rozszerzenia, motywy i aplikacje to po prostu pakiety zasobów zawarte w pliku manifest.json
, który opisuje zawartość pakietu. Format tego pliku jest zwykle stabilny, jednak czasami trzeba wprowadzić zmiany powodujące niezgodność, aby rozwiązać ważne problemy.
Deweloperzy powinni określić wersję specyfikacji pliku manifestu, dla których są przeznaczone dla nich pakiety, ustawiając klucz manifest_version
w plikach manifestu.
Bieżąca wersja
Obecnie deweloperzy powinni określać 'manifest_version': 2
:
{
...,
"manifest_version": 2,
...
}
Wersja 1 pliku manifestu została wycofana w Chrome 18. Jej obsługa będzie wycofywana zgodnie z podanym niżej harmonogramem.
Harmonogram obsługi wersji 1 pliku manifestu
Sierpień 2012
- Web Store zablokuje tworzenie nowych rozszerzeń pliku manifestu w wersji 1.
- Web Store zezwoli na aktualizacje istniejących rozszerzeń pliku manifestu w wersji 1.
Marzec 2013
- Od 4 marca 2013 sklep Chrome Web Store zablokuje aktualizacje rozszerzeń pliku manifestu w wersji 1.
Kwiecień 2013 r.
- Chrome 27 Beta przestanie umieszczać w pakiecie rozszerzenia manifestu w wersji 1 (lub je wczytywać na potrzeby programowania).
Czerwiec 2013
- Web Store usunie rozszerzenia pliku manifestu w wersji 1 ze strony ekranu, wyników wyszukiwania i stron kategorii.
- Wszyscy deweloperzy, którzy mają w sklepie rozszerzenie pliku manifestu w wersji 1, otrzymają e-maile z powiadomieniem o cofnięciu publikacji tych rozszerzeń i instrukcjami ich aktualizacji.
Wrzesień 2013
- Sklep Web Store cofnie publikację wszystkich rozszerzeń w wersji 1 manifestu.
- Deweloperzy, którzy mają w Chrome Web Store rozszerzenie pliku manifestu w wersji 1, otrzymają e-maile z ostatnim powiadomieniem.
- Chrome będzie nadal wczytywać i uruchamiać zainstalowane rozszerzenia manifestu w wersji 1.
Styczeń 2014
- Chrome przestanie ładować lub uruchomić rozszerzenia manifestu w wersji 1.
Zmiany między wersją 1 a 2
- Zasada bezpieczeństwa treści ma wartość
`script-src 'self'; object-src 'self';
. Ma to różny wpływ na deweloperów, co zostało szczegółowo opisane w dokumentacjicontent_security_policy
. - Zasoby pakietu nie są już domyślnie dostępne dla witryn zewnętrznych (jako
src
obrazu lub w taguscript
). Jeśli chcesz, aby witryna mogła wczytywać zasób znajdujący się w pakiecie, musisz dodać go do listy dozwolonych za pomocą atrybutu pliku manifestuweb_accessible_resources
. Jest to szczególnie istotne w przypadku rozszerzeń, które tworzą interfejs w witrynie za pomocą wstrzykiwanych skryptów treści. - Właściwość
background_page
została zastąpiona właściwościąbackground
, która zawiera albo właściwośćscripts
, albopage
. Szczegółowe informacje znajdziesz w dokumentacji stron zdarzeń. Zmiany w działaniach przeglądarki:
- Brak klucza
browser_actions
w pliku manifestu i interfejsu APIchrome.browserActions
. Zamiast nich użyj liczby pojedynczejbrowser_action
ichrome.browserAction
. - Właściwość
icons
elementubrowser_action
została usunięta. Zamiast niej użyj właściwościdefault_icon
lub browserAction.setIcon. - Właściwość
name
elementubrowser_action
została usunięta. Zamiast niej użyj właściwościdefault_title
lub browserAction.setTitle. - Właściwość
popup
elementubrowser_action
została usunięta. Zamiast niej użyj właściwościdefault_popup
lub browserAction.setPopup. - Właściwość
default_popup
obiektubrowser_action
nie może być już określona jako obiekt. Musi to być ciąg znaków.
- Brak klucza
Zmiany czynności na stronie:
- Brak klucza
page_actions
w pliku manifestu i interfejsu APIchrome.pageActions
. Zamiast nich użyj liczby pojedynczejpage_action
ichrome.pageAction
. - Właściwość
icons
elementupage_action
została usunięta. Zamiast tego użyj właściwościdefault_icon
lub pageAction.setIcon. - Właściwość
name
elementupage_action
została usunięta. Zamiast tego użyj właściwościdefault_title
lub pageAction.setTitle. - Właściwość
popup
elementupage_action
została usunięta. Zamiast niej użyj właściwościdefault_popup
lub pageAction.setPopup. - Właściwość
default_popup
obiektupage_action
nie może być już określona jako obiekt. Musi to być ciąg znaków.
- Brak klucza
Interfejs API
chrome.self
został usunięty. Użyj w zamianchrome.extension
.Nie ma już nazw
chrome.extension.getTabContentses
(!!!) ichrome.extension.getExtensionTabs
. Użyj w zamian parametru extension.getViews.Użytkownika
Port.tab
już nie ma. Użyj w zamian runtime.Port.