Każde rozszerzenie musi mieć w katalogu głównym plik manifest.json, który zawiera ważne informacje o strukturze i działaniu rozszerzenia.
Na tej stronie znajdziesz informacje o strukturze plików manifestu rozszerzeń i funkcjach, które mogą one zawierać.
Przykłady
Poniższe przykłady plików manifestu pokazują podstawową strukturę pliku manifestu i niektóre często używane funkcje, które mogą posłużyć jako punkt wyjścia do tworzenia własnych plików manifestu:
Minimalny plik manifestu
{
"manifest_version": 3,
"name": "Minimal Manifest",
"version": "1.0.0",
"description": "A basic example extension with only required keys",
"icons": {
"48": "images/icon-48.png",
"128": "images/icon-128.png"
}
}
Rejestrowanie skryptu dotyczącego zawartości
{
"manifest_version": 3,
"name": "Run script automatically",
"description": "Runs a script on www.example.com automatically when user installs the extension",
"version": "1.0",
"icons": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"content_scripts": [
{
"js": [
"content-script.js"
],
"matches": [
"http://*.example.com//"
]
}
]
}
Wstrzykiwanie skryptu dotyczącego zawartości
{
"manifest_version": 3,
"name": "Click to run",
"description": "Runs a script when the user clicks the action toolbar icon.",
"version": "1.0",
"icons": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"background": {
"service_worker": "service-worker.js"
},
"action": {
"default_icon": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
}
},
"permissions": ["scripting", "activeTab"]
}
Wyskakujące okienko z uprawnieniami
{
"manifest_version": 3,
"name": "Popup extension that requests permissions",
"description": "Extension that includes a popup and requests host permissions and storage permissions.",
"version": "1.0",
"icons": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"action": {
"default_popup": "popup.html"
},
"host_permissions": [
"https://*.example.com/"
],
"permissions": [
"storage"
]
}
Panel boczny
{
"manifest_version": 3,
"name": "Side panel extension",
"version": "1.0",
"description": "Extension with a default side panel.",
"icons": {
"16": "images/icon-16.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"side_panel": {
"default_path": "sidepanel.html"
},
"permissions": ["sidePanel"]
}
Klucze manifestu
Poniżej znajdziesz listę wszystkich obsługiwanych kluczy pliku manifestu.
Klucze wymagane przez platformę rozszerzeń
"manifest_version"- Liczba całkowita określająca wersję formatu pliku manifestu, którego używa rozszerzenie. Jedyną obsługiwaną wartością jest
3. "name"- Ciąg znaków, który identyfikuje rozszerzenie w Chrome Web Store, w oknie instalacji i na stronie rozszerzeń Chrome użytkownika (
chrome://extensions). Maksymalna długość to 75 znaków. Informacje o używaniu nazw w określonych językach znajdziesz w sekcji Tłumaczenie na inne języki. "version"- Ciąg znaków identyfikujący numer wersji rozszerzenia. Informacje o formatowaniu numeru wersji znajdziesz w sekcji Wersja.
Klucze wymagane przez Chrome Web Store
"description"- Ciąg znaków opisujący rozszerzenie w Chrome Web Store i na stronie zarządzania rozszerzeniami użytkownika. Maksymalna długość to 132 znaki. Informacje o lokalizowaniu opisów znajdziesz w sekcji Internacjonalizacja.
"icons"- Co najmniej 1 ikona reprezentująca rozszerzenie. Więcej informacji o sprawdzonych metodach znajdziesz w artykule Icons.
Opcjonalne klucze
"action"- Określa wygląd i działanie ikony rozszerzenia na pasku narzędzi Google. Więcej informacji znajdziesz w sekcji
chrome.action. "background"- Określa plik JavaScript zawierający skrypt service worker rozszerzenia, który działa jako moduł obsługi zdarzeń. Więcej informacji znajdziesz w artykule Skrypty service worker rozszerzeń.
"chrome_settings_overrides"- Określa zastąpienia wybranych ustawień Chrome. Więcej informacji znajdziesz w artykule Zastępowanie ustawień Chrome.
"chrome_url_overrides"- Określa zastąpienia domyślnych stron Chrome. Więcej informacji znajdziesz w artykule Zastępowanie stron Chrome.
"commands"- Określa skróty klawiszowe w ramach rozszerzenia. Więcej informacji znajdziesz w artykule chrome.commands.
"content_scripts"- Określa pliki JavaScript lub CSS, które mają być używane, gdy użytkownik otwiera określone strony internetowe. Więcej informacji znajdziesz w artykule Skrypty treści.
"content_security_policy"- Określa ograniczenia dotyczące skryptów, stylów i innych zasobów, z których może korzystać rozszerzenie. Więcej informacji znajdziesz w zasadach dotyczących bezpieczeństwa treści.
"cross_origin_embedder_policy"- Określa wartość nagłówka HTTP Cross-Origin-Embedder-Policy, który konfiguruje umieszczanie zasobów z innych domen na stronie rozszerzenia.
"cross_origin_opener_policy"- Określa wartość nagłówka HTTP Cross-Origin-Opener-Policy, który umożliwia zapewnienie, że strona rozszerzenia najwyższego poziomu nie udostępnia grupy kontekstu przeglądania dokumentom z innych domen.
"declarative_net_request"- Określa statyczne reguły interfejsu declarativeNetRequest, który umożliwia blokowanie i modyfikowanie żądań sieciowych.
"default_locale"- Ciąg znaków, który określa domyślny język rozszerzenia obsługującego wiele wersji językowych. Na przykład „en” i „pt_BR”. Ten klucz jest wymagany w rozszerzeniach zlokalizowanych i nie może być używany w rozszerzeniach, które nie są zlokalizowane. Więcej informacji znajdziesz w sekcji Tłumaczenie na inne języki.
"devtools_page"- Określa strony, które korzystają z interfejsów API DevTools.
"export"- Umożliwia eksportowanie zasobów z rozszerzenia. Więcej informacji znajdziesz w sekcji Eksportowanie.
"externally_connectable"- Określa, które inne strony i rozszerzenia mogą łączyć się z Twoimi rozszerzeniami. Więcej informacji znajdziesz w sekcji
"externally_connectable". "homepage_url"- Ciąg znaków określający adres URL strony głównej rozszerzenia. Jeśli ta wartość jest nieokreślona, domyślną stroną główną jest strona rozszerzenia w Chrome Web Store. To pole jest szczególnie przydatne, jeśli hostujesz rozszerzenie we własnej witrynie.
"host_permissions"- Zawiera listę stron internetowych, z którymi rozszerzenie może wchodzić w interakcje. Są one zdefiniowane za pomocą wzorców dopasowania adresów URL. Zgoda użytkownika na dostęp do tych witryn jest wymagana podczas instalacji. Więcej informacji znajdziesz w artykule Uprawnienia hosta.
"import"- Umożliwia importowanie zasobów do rozszerzenia. Więcej informacji znajdziesz w sekcji Import.
"incognito"- Określa, jak rozszerzenie działa w trybie incognito. Obsługiwane wartości to
"spanning","split"i"not_allowed". Więcej informacji znajdziesz w sekcji Tryb incognito. "key"- Określa identyfikator rozszerzenia w różnych przypadkach użycia związanych z programowaniem. Więcej informacji znajdziesz w sekcji Klucz.
"minimum_chrome_version"- Określa najstarszą wersję Chrome, w której można zainstalować rozszerzenie. Wartość musi być podciągiem istniejącego ciągu wersji przeglądarki Chrome, np.
"107"lub"107.0.5304.87". Użytkownicy starszych wersji Chrome niż minimalna wersja widzą w [sklepie] Chrome Web Store ostrzeżenie „Niekompatybilne” i nie mogą zainstalować rozszerzenia. Jeśli dodasz to do istniejącego rozszerzenia, użytkownicy, którzy mają starszą wersję Chrome, nie będą otrzymywać automatycznych aktualizacji rozszerzenia. Dotyczy to użytkowników biznesowych w trybie tymczasowym. "oauth2"- Umożliwia używanie identyfikatora zabezpieczeń OAuth 2.0. Wartość tego klucza musi być obiektem z właściwościami
"client_id"i"scopes". Szczegółowe informacje znajdziesz w samouczku dotyczącym OAuth 2.0. "omnibox"- Umożliwia rozszerzeniu zarejestrowanie słowa kluczowego na pasku adresu w Chrome. Więcej informacji znajdziesz w sekcji Omniboks.
"optional_host_permissions"- Deklaruje opcjonalne uprawnienia hosta rozszerzenia.
"optional_permissions"- Deklaruje opcjonalne uprawnienia rozszerzenia.
"options_page"- Określa ścieżkę do pliku options.html, który rozszerzenie ma używać jako strony opcji. Więcej informacji znajdziesz w artykule Udostępnianie użytkownikom opcji.
"options_ui"- Określa ścieżkę do pliku HTML, który umożliwia użytkownikowi zmianę opcji rozszerzenia na stronie Rozszerzenia w Chrome. Więcej informacji znajdziesz w sekcji Opcje osadzania.
"permissions"- Umożliwia korzystanie z określonych interfejsów API rozszerzeń. Ogólne wyjaśnienie znajdziesz w sekcji Uprawnienia. Na stronach referencyjnych poszczególnych interfejsów API znajdziesz listę wymaganych uprawnień.
"requirements"- Zawiera listę technologii wymaganych do korzystania z rozszerzenia. Listę obsługiwanych wymagań znajdziesz w sekcji Wymagania.
"sandbox"- Określa zestaw stron rozszerzenia, które nie mają dostępu do interfejsów API rozszerzenia ani bezpośredniego dostępu do stron nieobjętych piaskownicą. Więcej informacji znajdziesz w sekcji Piaskownica.
"short_name"- Ciąg tekstowy zawierający skróconą wersję nazwy rozszerzenia, która będzie używana, gdy liczba znaków jest ograniczona. Maksymalna długość to 12 znaków. Jeśli ta wartość jest nieokreślona, zamiast niej wyświetla się skrócona wersja klucza „name”.
"side_panel"- Określa plik HTML, który ma być wyświetlany w sidePanel.
"storage"- Deklaruje schemat JSON dla obszaru pamięci zarządzanej. Więcej informacji znajdziesz w artykule Manifest dla obszarów pamięci.
"tts_engine"- Rejestruje rozszerzenie jako mechanizm zamiany tekstu na mowę. Więcej informacji znajdziesz w artykule o interfejsie ttsEngine API.
"update_url"- Ciąg tekstowy zawierający adres URL strony aktualizacji rozszerzenia. Użyj tego klucza, jeśli hostujesz rozszerzenie poza Chrome Web Store.
"version_name"- Ciąg znaków opisujący wersję rozszerzenia. Przykłady:
"1.0 beta"i"build rc2". Jeśli nie podasz żadnej opcji, na stronie zarządzania rozszerzeniami wyświetli się wartość „version”. "web_accessible_resources"- Określa pliki w rozszerzeniu, do których mogą mieć dostęp strony internetowe lub inne rozszerzenia. Więcej informacji znajdziesz w artykule Zasoby dostępne w internecie.
Opcjonalne klawisze ChromeOS
"file_browser_handlers"- Umożliwia dostęp do interfejsu
fileBrowserHandler, który pozwala rozszerzeniom uzyskiwać dostęp do przeglądarki plików w ChromeOS. "file_handlers"- Określa typy plików, które mają być obsługiwane przez rozszerzenia ChromeOS. Więcej informacji znajdziesz w sekcji
file_handlers. "file_system_provider_capabilities"- Umożliwia dostęp do interfejsu
fileSystemProviderAPI, który pozwala rozszerzeniom tworzyć systemy plików, z których może korzystać ChromeOS. "input_components"- Zezwala na używanie interfejsu Input Method Editor API. Więcej informacji znajdziesz w sekcji
input_components.