Format pliku manifestu

Każda rozszerzona wersja musi mieć w swoim katalogu głównym plik manifest.json, który zawiera ważne informacje o strukturze i zachowaniu rozszerzenia. Na tej stronie znajdziesz informacje o strukturze plików manifestu rozszerzeń i funkcjach, które mogą one zawierać.

Przykłady

Przykładowe pliki manifestu, które zawierają podstawową strukturę pliku manifestu i niektóre często używane funkcje, mogą posłużyć jako punkt wyjścia do utworzenia własnego pliku 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 treś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//"
      ]
    }
  ]
}

Wstrzyknięcie 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"]
}
{
  "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 znajduje się lista wszystkich obsługiwanych kluczy w pliku manifestu.

Klucze wymagane przez platformę rozszerzeń

"manifest_version"
Całka określająca wersję formatu pliku manifestu, którego używa rozszerzenie. Jedyną obsługiwaną wartością jest 3.
"name"
Ciąg znaków identyfikujący rozszerzenie w Chrome Web Store, oknie instalacji i na stronie użytkownika z rozszerzeniami do Chrome (chrome://extensions). Maksymalna długość to 75 znaków. Informacje o używaniu nazw w konkretnych lokalizacjach znajdziesz w artykule Tłumaczenie na inne języki.
"version"
Ciąg znaków identyfikujący numer wersji rozszerzenia. Informacje o formatowaniu numeru wersji znajdziesz w artykule 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 artykule Internacjonalizacja.
"icons"
Co najmniej 1 ikona reprezentująca rozszerzenie. Sprawdzone metody znajdziesz w artykule o ikonach.

Opcjonalne klucze

"action"
Określa wygląd i działanie ikony rozszerzenia na pasku narzędzi Google. Więcej informacji znajdziesz w artykule chrome.action.
"author"
Określa adres e-mail konta użytego do utworzenia rozszerzenia.
"background"
Określa plik JavaScriptu zawierający usługę instancji roboczej rozszerzenia, która działa jako moduł obsługi zdarzeń. Więcej informacji znajdziesz w artykule Skrypty service worker.
"chrome_settings_overrides"
Określa zastąpienia wybranych ustawień Chrome. Więcej informacji znajdziesz w artykule Nadrzędne ustawienia Chrome.
"chrome_url_overrides"
Określa zastąpienia dla domyślnych stron Chrome. Więcej informacji znajdziesz w artykule Zastępowanie stron Chrome.
"commands"
Określa skróty klawiszowe w rozszerzeniu. Więcej informacji znajdziesz w chrome.commands.
"content_scripts"
Określa pliki JavaScript lub CSS, które mają być używane, gdy użytkownik otworzy 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, których może używać 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óra umożliwia zadbanie o to, aby strona rozszerzenia najwyższego poziomu nie udostępniała kontekstu przeglądania grupie dokumentów z innych domen.
"declarative_net_request"
Definiuje reguły statyczne dla interfejsu declarativeNetRequest API, który umożliwia blokowanie i modyfikowanie żądań sieciowych.
"default_locale"
Ciąg znaków określający domyślny język rozszerzenia, które obsługuje wiele lokalizacji. Przykłady to „pl” i „pl_PL”. Ten klucz jest wymagany w przetłumaczonych rozszerzeniach i nie można go używać w rozszerzeniach, które nie są przetłumaczone. Więcej informacji znajdziesz w artykule Tłumaczenie na inne języki.
"devtools_page"
Określa strony, które korzystają z interfejsów API DevTools.
"export"
Zezwalanie na 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 artykule "externally_connectable".
"homepage_url"
Ciąg znaków określający adres URL strony głównej rozszerzenia. Jeśli nie jest zdefiniowana, domyślnie jest to strona rozszerzenia w Chrome Web Store. To pole jest szczególnie przydatne, jeśli rozszerzenie jest hostowane na Twojej stronie.
"host_permissions"
Wyświetla listę stron internetowych, z którymi rozszerzenie może wchodzić w interakcje, zdefiniowanych za pomocą wzorów dopasowywania adresów URL. Podczas instalacji użytkownik jest proszony o zezwolenie na dostęp do tych witryn. Więcej informacji znajdziesz w artykule Uprawnienia hosta.
"import"
Zezwalanie na importowanie zasobów do rozszerzenia. Więcej informacji znajdziesz w sekcji Importowanie.
"incognito"
Określa, jak rozszerzenie ma się zachowywać w trybie incognito. Obsługiwane wartości to "spanning", "split" i "not_allowed". Więcej informacji znajdziesz w artykule Tryb incognito.
"key"
Określa identyfikator rozszerzenia na potrzeby różnych zastosowań programistycznych. 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 znaków istniejącej wersji przeglądarki Chrome, np. "107" lub "107.0.5304.87". Użytkownicy korzystający z wersji Chrome starszych niż wersja minimalna widzą w Chrome Web Store ostrzeżenie „Niekompatybilne” i nie mogą zainstalować rozszerzenia. Jeśli dodasz tę funkcję do istniejącego rozszerzenia, użytkownicy korzystający ze starszej wersji Chrome nie będą otrzymywać automatycznych aktualizacji rozszerzenia. Dotyczy to użytkowników biznesowych w trybie tymczasowym.
"oauth2"
Zezwalanie na używanie identyfikatora zabezpieczeń OAuth 2.0. Wartość tego klucza musi być obiektem z właściwościami "client_id""scopes". Szczegółowe informacje znajdziesz w samouctce OAuth 2.0.
"omnibox"
Zezwalanie rozszerzeniu na rejestrowanie słowa kluczowego na pasku adresu w Chrome. Więcej informacji znajdziesz w sekcji Omniboks.
"optional_host_permissions"
Deklaruje opcjonalne uprawnienia hosta dla rozszerzenia.
"optional_permissions"
Deklaruje opcjonalne uprawnienia rozszerzenia.
"options_page"
Określa ścieżkę do pliku options.html, który ma być używany przez rozszerzenie jako strona opcji. Więcej informacji znajdziesz w artykule Daj użytkownikom opcje
.
"options_ui"
Określa ścieżkę do pliku HTML, który umożliwia użytkownikowi zmianę opcji rozszerzenia na stronie Rozszerzenia Chrome. Więcej informacji znajdziesz w sekcji Opcje osadzania.
"permissions"
Włącza używanie określonych interfejsów API rozszerzeń. Ogólne informacje znajdziesz w sekcji Uprawnienia. Na stronach referencyjnych poszczególnych interfejsów API znajdziesz listę wymaganych uprawnień.
"requirements"
Wykaz technologii wymaganych do korzystania z rozszerzenia. Listę obsługiwanych wymagań znajdziesz w sekcji Wymagania.
"sandbox"
Określa zestaw stron rozszerzeń, które nie mają dostępu do interfejsów API rozszerzeń ani bezpośredniego dostępu do stron poza piaskowni. Więcej informacji znajdziesz w sekcji piaskownicy.
"short_name"
Ciąg tekstowy zawierający skróconą wersję nazwy rozszerzenia, która ma być używana, gdy ilość znaków jest ograniczona. Maksymalna długość to 12 znaków. Jeśli nie jest zdefiniowany, zamiast niego wyświetlana jest skrócona wersja klucza „name”.
"side_panel"
Określa plik HTML, który ma być wyświetlany w sidePanel.
"storage"
Określa schemat JSON dla obszaru magazynu zarządzanego. Więcej informacji znajdziesz w pliku manifestu dla obszarów miejsca na dane.
"tts_engine"
Rejestruje rozszerzenie jako silnik do zamiany tekstu na mowę. Więcej informacji znajdziesz w interfejsie API ttsEngine.
"update_url"
Ciąg tekstowy zawierający adres URL strony aktualizacji rozszerzenia. Użyj tego klucza, jeśli rozszerzenie jest hostowane poza Chrome Web Store.
"version_name"
Ciąg tekstowy opisujący wersję rozszerzenia. Przykłady: "1.0 beta""build rc2". Jeśli nie podasz tej wartości, na stronie zarządzania rozszerzeniem będzie widoczna wartość „wersja”.
"web_accessible_resources"
Określa pliki w rozszerzeniu, do których mają dostęp strony internetowe lub inne rozszerzenia. Więcej informacji znajdziesz w dokumentacji dotyczącej dostępności stron internetowych.

Opcjonalne klawisze w ChromeOS

"file_browser_handlers"
Zapewnia dostęp do interfejsu API fileBrowserHandler, który umożliwia rozszerzeniom dostęp do przeglądarki plików w ChromeOS.
"file_handlers"
Określa typy plików, które mają obsługiwać rozszerzenia ChromeOS. Więcej informacji znajdziesz w file_handlers.
"file_system_provider_capabilities"
Umożliwia dostęp do interfejsu API fileSystemProvider, który umożliwia rozszerzeniom tworzenie systemów plików, których może używać ChromeOS.
"input_components"
Zezwala na używanie interfejsu API edytora metody wprowadzania. Więcej informacji znajdziesz w sekcji input_components.