Duidelijk bestandsformaat

Elke extensie moet een manifest.json bestand in de hoofdmap hebben dat belangrijke informatie bevat over de structuur en het gedrag van die extensie. Deze pagina legt de structuur van extensiemanifesten uit en de functies die ze kunnen bevatten.

Voorbeelden

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

Minimale 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 invoegen

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

Manifest-sleutels

Hieronder vindt u een lijst met alle ondersteunde manifest-sleutels.

Sleutels die vereist zijn door het Extensions-platform

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

Sleutels vereist door de Chrome Web Store

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

Optionele sleutels

"action"
Definieert het uiterlijk en het gedrag van het extensie-pictogram in de Google Toolbar. Zie chrome.action voor meer informatie.
"background"
Hiermee wordt het JavaScript-bestand gespecificeerd dat de service worker van de extensie bevat, die fungeert als gebeurtenisafhandelaar. Zie 'Over service workers van extensies' voor meer informatie.
"chrome_settings_overrides"
Hiermee definieert u overschrijvingen voor geselecteerde Chrome-instellingen. Zie 'Chrome-instellingen overschrijven' voor meer informatie.
"chrome_url_overrides"
Definieert overschrijvingen voor standaard Chrome-pagina's. Zie Overrides voor Chrome-pagina's voor meer informatie.
"commands"
Definieert toetsenbord sneltoetsen binnen de extensie. Zie chrome.commands voor meer informatie.
"content_scripts"
Hiermee kunt u JavaScript- of CSS-bestanden specificeren 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 het beveiligingsbeleid voor inhoud voor meer informatie.
"cross_origin_embedder_policy"
Hiermee wordt een waarde opgegeven voor de HTTP-header Cross-Origin-Embedder-Policy, die het insluiten van bronnen van een andere oorsprong in een extensiepagina configureert.
"cross_origin_opener_policy"
Hiermee kunt u een waarde opgeven voor de HTTP-header Cross-Origin-Opener-Policy. Deze header zorgt ervoor dat een extensiepagina op het hoogste niveau geen gedeelde browsecontextgroep heeft met documenten van een andere oorsprong.
"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 zijn "en" en "pt_BR". Deze sleutel is vereist in gelokaliseerde extensies en mag niet worden gebruikt in extensies die niet gelokaliseerd zijn. Zie Internationalisering voor meer informatie.
"devtools_page"
Definieert pagina's die gebruikmaken van de DevTools API's.
"export"
Hiermee kunnen resources vanuit de extensie worden geëxporteerd. Zie Exporteren voor meer informatie.
"externally_connectable"
Hiermee wordt gespecificeerd welke andere pagina's en extensies verbinding kunnen maken met uw extensies. Zie "externally_connectable" voor meer informatie.
"homepage_url"
Een tekenreeks die de URL van de startpagina van de extensie specificeert. Als deze niet is gedefinieerd, wordt standaard de pagina van de extensie in de Chrome Web Store gebruikt. Dit veld is met name handig als u de extensie op uw eigen website host .
"host_permissions"
Hier worden de webpagina's weergegeven waarmee uw extensie mag communiceren, gedefinieerd aan de hand van URL-matchpatronen. Gebruikerstoestemming voor deze sites wordt tijdens de installatie aangevraagd. 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"
Hiermee wordt de ID van uw extensie opgegeven voor diverse ontwikkelingsdoeleinden. Zie Sleutel voor meer informatie.
"minimum_chrome_version"
Definieert de oudste Chrome-versie die uw extensie kan installeren. De waarde moet een substring zijn van een bestaande Chrome-browserversie, zoals "107" of "107.0.5304.87" . Gebruikers met een Chrome-versie ouder dan de minimale versie zien een waarschuwing 'Niet compatibel' in de Chrome Web Store en kunnen uw extensie niet installeren. Als u dit toevoegt aan een bestaande extensie, ontvangen gebruikers met een oudere Chrome-versie geen automatische updates voor uw extensie. Dit geldt ook voor zakelijke gebruikers in de tijdelijke modus.
"oauth2"
Hiermee kan een OAuth 2.0-beveiligings-ID worden gebruikt. De waarde van deze sleutel moet een object zijn met de eigenschappen "client_id" en "scopes" . Zie de OAuth 2.0-handleiding voor meer informatie.
"omnibox"
Hiermee kan de extensie een trefwoord registreren in de adresbalk van Chrome. Zie Omnibox voor meer informatie.
"optional_host_permissions"
Hiermee kunt u optionele hostmachtigingen voor uw extensie opgeven.
"optional_permissions"
Hiermee kunt u optionele machtigingen voor uw extensie opgeven.
"options_page"
Hiermee wordt een pad naar een options.html-bestand opgegeven dat de extensie als optiepagina kan gebruiken. Zie Gebruikers opties geven voor meer informatie.
"options_ui"
Hiermee kunt u een pad opgeven naar een HTML-bestand waarmee een gebruiker extensie-opties kan wijzigen via de Chrome-extensiepagina. Zie Ingesloten opties voor meer informatie.
"permissions"
Hiermee kunt u specifieke extensie-API's gebruiken. Zie Machtigingen voor een algemene uitleg. Op de referentiepagina's van de afzonderlijke API's vindt u een overzicht van de vereiste machtigingen.
"requirements"
Hier vindt u een lijst met de technologieën die nodig zijn om de extensie te gebruiken. Zie Vereisten voor een lijst met ondersteunde vereisten.
"sandbox"
Definieert een set extensiepagina's die geen toegang hebben tot extensie-API's of directe toegang tot pagina's die niet in een sandbox zijn ondergebracht. Zie Sandbox voor meer informatie.
"short_name"
Een tekenreeks met een verkorte versie van de extensienaam, te gebruiken wanneer de beschikbare tekenruimte beperkt is. De maximale lengte is 12 tekens. Indien deze waarde niet is gedefinieerd, wordt in plaats daarvan een afgekorte versie van de sleutel "naam" weergegeven.
"side_panel"
Hiermee wordt een HTML-bestand geselecteerd dat in een zijpaneel moet worden weergegeven.
"storage"
Hiermee wordt een JSON-schema gedefinieerd voor het beheerde opslaggebied . Zie Manifest voor opslaggebieden voor meer informatie.
"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 je je extensie buiten de Chrome Web Store host .
"version_name"
Een tekenreeks die de versie van de extensie beschrijft. Voorbeelden zijn "1.0 beta" en "build rc2" . Als dit niet is opgegeven, wordt de waarde "version" weergegeven op de pagina voor extensiebeheer.
"web_accessible_resources"
Definieert bestanden binnen de extensie die toegankelijk zijn voor webpagina's of andere extensies. Zie Webtoegankelijke bronnen voor meer informatie.

Optionele ChromeOS-sleutels

"file_browser_handlers"
Biedt toegang tot de fileBrowserHandler API, waarmee extensies toegang krijgen tot de bestandsbrowser van ChromeOS.
"file_handlers"
Hiermee worden de bestandstypen gespecificeerd die ChromeOS-extensies moeten verwerken. Zie file_handlers voor meer informatie.
"file_system_provider_capabilities"
Geeft toegang tot de fileSystemProvider API, waarmee extensies bestandssystemen kunnen creëren die ChromeOS kan gebruiken.
"input_components"
Hiermee kan de Input Method Editor API worden gebruikt. Zie input_components voor meer informatie.