Duidelijk bestandsformaat

Elke extensie moet een manifest.json bestand in de hoofdmap hebben met belangrijke informatie over de structuur en het gedrag van die extensie. Op deze pagina wordt de structuur van extensiemanifesten uitgelegd en de functies die ze kunnen bevatten.

Voorbeelden

De volgende voorbeeldmanifesten tonen de basismanifeststructuur en enkele veelgebruikte functies als uitgangspunt voor het maken van uw eigen manifest:

Minimaal manifest

{
  "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"
  },
}

Registreer een inhoudsscript

{
  "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//"
      ]
    }
  ]
}

Een inhoudsscript injecteren

{
  "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"
  ]
}

Zijpaneel

{
  "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"]
}

Duidelijke sleutels

Hieronder volgt een lijst met alle ondersteunde manifestsleutels.

Sleutels vereist door het Extensions-platform

"manifest_version"
Een geheel getal dat de versie aangeeft van de manifestbestandsindeling die door uw extensie wordt gebruikt. De enige ondersteunde waarde is 3 .
"name"
Een tekenreeks die de extensie identificeert in de Chrome Web Store , het installatiedialoogvenster en de Chrome-extensiespagina van de gebruiker ( chrome://extensions ). De maximale lengte is 75 tekens. Zie Internationalisering voor informatie over het gebruik van landspecifieke namen.
"version"
Een tekenreeks die het versienummer van de extensie identificeert. Zie Versie voor informatie over de opmaak van versienummers.

Sleutels vereist door de Chrome Web Store

"description"
Een tekenreeks die de extensie beschrijft in zowel de Chrome Web Store als op de extensiebeheerpagina van de gebruiker. De maximale lengte is 132 tekens. Zie Internationalisering voor informatie over het lokaliseren van beschrijvingen.
"icons"
Een of meer pictogrammen die uw extensie vertegenwoordigen. Zie Pictogrammen voor informatie over best practices.

Optionele sleutels

"action"
Definieert het uiterlijk en het gedrag van het pictogram van de extensie in de Google Toolbar. Zie chrome.action voor meer informatie.
"author"
Specificeert het e-mailadres van het account dat is gebruikt om de extensie te maken.
"background"
Specificeert het JavaScript-bestand met de servicewerker van de extensie, die fungeert als gebeurtenishandler. Zie Over extensieservicemedewerkers voor meer informatie.
"chrome_settings_overrides"
Definieert overschrijvingen voor geselecteerde Chrome-instellingen. Zie Chrome-instellingen overschrijven voor meer informatie.
"chrome_url_overrides"
Definieert overschrijvingen voor standaard Chrome-pagina's. Zie Chrome-pagina's overschrijven voor meer informatie.
"commands"
Definieert sneltoetsen binnen de extensie. Zie chrome.commands voor meer informatie.
"content_scripts"
Specificeert JavaScript- of CSS-bestanden die moeten worden gebruikt wanneer de gebruiker bepaalde webpagina's opent. Zie Inhoudsscripts voor meer informatie.
"content_security_policy"
Definieert beperkingen voor de scripts, stijlen en andere bronnen die een extensie kan gebruiken. Zie Inhoudsbeveiligingsbeleid voor meer informatie.
"cross_origin_embedder_policy"
Specificeert een waarde voor de Cross-Origin-Embedder-Policy HTTP-header, die het insluiten van cross-origin-bronnen op een extensiepagina configureert.
"cross_origin_opener_policy"
Specificeert een waarde voor de Cross-Origin-Opener-Policy HTTP-header, waarmee u ervoor kunt zorgen dat een extensiepagina op het hoogste niveau geen browsecontextgroep deelt met cross-origin-documenten.
"declarative_net_request"
Definieert statische regels voor de declarativeNetRequest API, waarmee netwerkverzoeken kunnen worden geblokkeerd en gewijzigd.
"default_locale"
Een tekenreeks die de standaardtaal definieert van een extensie die meerdere landinstellingen ondersteunt. Voorbeelden hiervan zijn "en" en "pt_BR". Deze sleutel is vereist in gelokaliseerde extensies en mag niet worden gebruikt in extensies die niet gelokaliseerd zijn. Voor meer informatie, zie Internationalisering .
"devtools_page"
Definieert pagina's die de DevTools API's gebruiken.
"export"
Hiermee kunnen bronnen vanuit de extensie worden geëxporteerd. Zie Exporteren voor meer informatie.
"externally_connectable"
Specificeert welke andere pagina's en extensies verbinding kunnen maken met uw extensies. Zie "externally_connectable" voor meer informatie.
"homepage_url"
Een tekenreeks die een URL specificeert voor de startpagina van de extensie. Als dit niet is gedefinieerd, wordt de startpagina standaard ingesteld op de Chrome Web Store-pagina van de extensie. Dit veld is vooral handig als u de extensie op uw eigen site host .
"host_permissions"
Geeft een overzicht van de webpagina's waarmee uw extensie mag communiceren, gedefinieerd op basis van URL-overeenkomstpatronen. Gebruikerstoestemming voor deze sites wordt tijdens de installatie gevraagd. Zie Hostmachtigingen voor meer informatie.
"import"
Hiermee kunnen bronnen in de extensie worden geïmporteerd. Zie Importeren voor meer informatie.
"incognito"
Definieert hoe de extensie zich gedraagt ​​in de incognitomodus. Ondersteunde waarden zijn "spanning" , "split" en "not_allowed" . Zie Incognito voor meer informatie.
"key"
Specificeert de ID van uw extensie voor verschillende ontwikkelingsgebruiksscenario's. Zie Sleutel voor meer informatie.
"minimum_chrome_version"
Definieert de oudste Chrome-versie die uw extensie kan installeren. De waarde moet een subtekenreeks zijn van een bestaande versiereeks van de Chrome-browser, zoals "107" of "107.0.5304.87" . Gebruikers met versies van Chrome die ouder zijn dan de minimumversie, zien de waarschuwing 'Niet compatibel' in de Chrome Web Store en kunnen uw extensie niet installeren. Als u dit aan een bestaande extensie toevoegt, ontvangen gebruikers met een oudere Chrome-versie geen automatische updates voor uw extensie. Dit geldt ook voor zakelijke gebruikers in kortstondige modus.
"oauth2"
Staat het gebruik van een OAuth 2.0-beveiligings-ID toe. De waarde van deze sleutel moet een object zijn met de eigenschappen "client_id" en "scopes" . Zie de OAuth 2.0-tutorial voor meer informatie.
"omnibox"
Hiermee kan de extensie een trefwoord registreren in de adresbalk van Chrome. Zie Omnibox voor meer informatie.
"optional_host_permissions"
Declareert optionele hostmachtigingen voor uw extensie.
"optional_permissions"
Declareert optionele machtigingen voor uw extensie.
"options_page"
Specificeert een pad naar een options.html-bestand dat de extensie moet gebruiken als optiepagina. Zie Gebruikers opties geven voor meer informatie.
"options_ui"
Specificeert een pad naar een HTML-bestand waarmee een gebruiker extensie-opties kan wijzigen vanaf de pagina Chrome-extensies. Zie Ingebedde opties voor meer informatie.
"permissions"
Maakt het gebruik van bepaalde extensie-API's mogelijk. Zie Machtigingen voor een algemene uitleg. Referentiepagina's voor individuele API's vermelden de machtigingen die ze nodig hebben.
"requirements"
Geeft een overzicht van de technologieën die nodig zijn om de extensie te gebruiken. Zie Vereisten voor een lijst met ondersteunde vereisten.
"sandbox"
Definieert een reeks extensiepagina's die geen toegang hebben tot extensie-API's of directe toegang tot niet-sandboxpagina's. Zie Sandbox voor meer informatie.
"short_name"
Een tekenreeks met een verkorte versie van de naam van de extensie die moet worden gebruikt als de tekenruimte beperkt is. De maximale lengte is 12 tekens. Als dit niet is gedefinieerd, wordt in plaats daarvan een ingekorte versie van de toets "naam" weergegeven.
"side_panel"
Identificeert een HTML-bestand dat in een sidePanel moet worden weergegeven.
"storage"
Declareert een JSON-schema voor het beheerde opslaggebied . Voor meer informatie, zie Manifest voor opslagruimtes .
"tts_engine"
Registreert de extensie als een tekst-naar-spraak-engine. Zie de ttsEngine- API voor meer informatie.
"update_url"
Een tekenreeks met de URL van de updatepagina van de extensie. Gebruik deze sleutel als u uw extensie buiten de Chrome Web Store host .
"version_name"
Een tekenreeks die de versie van de extensie beschrijft. Voorbeelden hiervan zijn "1.0 beta" en "build rc2" . Als dit niet is opgegeven, wordt in plaats daarvan de waarde 'versie' weergegeven op de extensiebeheerpagina.
"web_accessible_resources"
Definieert bestanden binnen de extensie waartoe webpagina's of andere extensies toegang hebben. Zie Webtoegankelijke bronnen voor meer informatie.

Optionele ChromeOS-sleutels

"file_browser_handlers"
Biedt toegang tot de fileBrowserHandler API, waarmee extensies toegang krijgen tot de ChromeOS-bestandsbrowser.
"file_handlers"
Specificeert bestandstypen die door ChromeOS-extensies moeten worden verwerkt. Zie file_handlers voor meer informatie.
"file_system_provider_capabilities"
Geeft toegang tot de fileSystemProvider API, waarmee extensies bestandssystemen kunnen maken die ChromeOS kan gebruiken.
"input_components"
Staat het gebruik van de Input Method Editor API toe. Zie input_components voor meer informatie.