Aller au contenu principal

Support des extensions Chrome

Electron supports a subset of the Chrome Extensions API, primarily to support DevTools extensions and Chromium-internal extensions, but it also happens to support some other extension capabilities.

Note : Electron ne prend pas en charge n'importe quelle extension de Chrome depuis le store, ceci serait hors des objectifs du projet Electron qui ne vise pas a être parfaitement compatible avec l'implémentation des extensions de Chrome.

Chargement des extensions

Electron ne prend en charge que les extensions non empaquetées (i.e les fichiers .crx ne sont pas acceptés). Les extensions sont installées par-session. Pour charger une extension, vous devez utiliser ses.loadExtension:

const { session } = require('electron')

session.defaultSession.loadExtension('path/to/unpacked/extension').then(({ id }) => {
// ...
})

Les extensions chargées ne seront pas automatiquement mémorisées après une sorties ; si vous n'appelez pas loadExtension lorsque l'application s'exécute, l'extension ne sera pas chargée.

Notez que le chargement d'extensions n'est pris en charge que dans les sessions persistantes. Tenter de charger une extension dans une session en mémoire générera une erreur.

Voir la documentstion concernant session pour plus de détails à propos du chargement, déchargement et requêtes des extensions actives.

APIs d'extensions prises en charge

Nous prenons en charge les API d'extensions suivantes, avec cependant quelques mises en garde. D'autres APIs peuvent être également prises en charge mais sont provisoires et peuvent être supprimées si non listées ci-dessous.

Supported Manifest Keys

  • nom
  • version
  • author
  • permissions
  • content_scripts
  • default_locale
  • devtools_page
  • short_name
  • host_permissions (Manifest V3)
  • manifest_version
  • background (Manifest V2)
  • minimum_chrome_version

Voir le Format de fichier des manifests pour plus d'informations sur l'utilisation des clés.

chrome.devtools.inspectedWindow

Toutes les fonctionnalités de cette API sont prises en charge.

Pour plus d'informations voir la documentation officielle.

chrome.devtools.network

Toutes les fonctionnalités de cette API sont prises en charge.

Pour plus d'informations voir la documentation officielle.

chrome.devtools.panels

Toutes les fonctionnalités de cette API sont prises en charge.

Pour plus d'informations voir la documentation officielle.

chrome.extension

Les propriétés suivantes de chrome.extension sont prises en charge :

  • chrome.extension.lastError

Les méthodes suivantes de chrome.extension sont prises en charge :

  • chrome.extension.getURL
  • chrome.extension.getBackgroundPage

Pour plus d'informations voir la documentation officielle.

chrome.management

Les méthodes suivantes de chrome.management sont prises en charge :

  • chrome.management.getAll
  • chrome.management.get
  • chrome.management.getSelf
  • chrome.management.getPermissionWarningsById
  • chrome.management.getPermissionWarningsByManifest

Les événements suivants de chrome.management sont pris en charge :

  • chrome.management.onEnabled
  • chrome.management.onDisabled

Pour plus d'informations voir la documentation officielle.

chrome.runtime

Les propriétés suivantes de chrome.runtime sont prises en charge :

  • chrome.runtime.lastError
  • chrome.runtime.id

Les méthodes suivantes de chrome.runtime sont prises en charge :

  • chrome.runtime.getBackgroundPage
  • chrome.runtime.getManifest
  • chrome.runtime.getPlatformInfo
  • chrome.runtime.getURL
  • chrome.runtime.connect
  • chrome.runtime.sendMessage
  • chrome.runtime.reload

Les événements suivants de chrome.runtime sont pris en charge :

  • chrome.runtime.onStartup
  • chrome.runtime.onInstalled
  • chrome.runtime.onSuspend
  • chrome.runtime.onSuspendCanceled
  • chrome.runtime.onConnect
  • chrome.runtime.onMessage

Pour plus d'informations voir la documentation officielle.

chrome.scripting

Toutes les fonctionnalités de cette API sont prises en charge.

Pour plus d'informations voir la documentation officielle.

chrome.storage

Les méthodes suivantes de chrome.storage sont prises en charge :

  • chrome.storage.local

chrome.storage.sync et chrome.storage.managed ne **sont pas ** supportées.

Pour plus d'informations voir la documentation officielle.

chrome.tabs

Les méthodes suivantes de chrome.tabs sont prises en charge :

  • chrome.tabs.sendMessage
  • chrome.tabs.reload
  • chrome.tabs.executeScript
  • chrome.tabs.query (prise en charge partielle)
    • propriétés prises en charge : url, title, audible, active, muted.
  • chrome.tabs.update (prise en charge partielle)
    • propriétés prises en charge : url, muted.

remarque : avec Chrome, le passage de l'’ID d’onglet -1 signifie « onglet actuellement actif ». Comme ce concept n'existe pas avec Electron le passage d'un ID d'onglet -1 n’est pas pris en charge et entraînera une erreur.

Pour plus d'informations voir la documentation officielle.

chrome.webRequest

Toutes les fonctionnalités de cette API sont prises en charge.

**REMARQUE : ** En cas de conflit de gestionnaires, le module webRequest d’Electron est prioritaire sur chrome.webRequest .

Pour plus d'informations voir la documentation officielle.