recursal/MDN huggingface dataset:
management.getPermissionWarningsByManifest()
============================================

Lorsque l'utilisateur installe ou met à jour une extension, la navigateur peut avertir l'utilisateur des permissions obligatoires. Toutes les permissions ne donnent pas lieu à des avertissements, et cela n'est pas normalisé dans les navigateurs.
Compte tenu du texte du fichier manifest.json, cette fonction retourne les avertisseurs de permissions qui seraient donnés pour l'extension comme un ensemble de chaines.

Cette API *ne requière pas* l'API de permission "management".

Il s'agit d'une fonction asynchrone qui renvoie une `Promise`.

Syntaxe
-------


```js
var gettingWarnings = browser.management.getPermissionWarningsByManifest(
  manifestString, // string
);
```

### Paramètres

`manifestString`

`string`. Chaîne contenant le fichier manifest. Cela doit être un manifest valide : par exemple, il doit contenir toutes les clés obligatoires du manifest..

### Valeur retournée

Une `Promise` qui sera rempli avec un ensemble de chaînes, chacune contenant le texte un avertisseur de permission.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Exemples
--------

Enregistrez les avertissements de permissions dans le fichier manifest donné :


```js
var manifest = {
  manifest\_version: 2,
  name: "test",
  version: "1.0",
  permissions: ["management", "<all\_urls>"],
};

var manifestString = JSON.stringify(manifest);

function gotWarnings(warnings) {
  console.log(warnings);
}

function gotError(error) {
  console.log(`Error: ${error}`);
}

var gettingWarnings =
  browser.management.getPermissionWarningsByManifest(manifestString);
gettingWarnings.then(gotWarnings, gotError);
```


**Note :**

Cette API est basée sur l'API Chromium `chrome.management`. Cette documentation est dérivée de `management.json` dans le code de Chromium code.

Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.
management.getAll()
===================

Récupère un ensemble d'objets `ExtensionInfo`, un pour chaque extension installé.

Notez que Google Chrome récupère les applications ainsi que les modules complémentaires. Dans Chrome vous pouvez distinguer les applications des extensions en utilisant la propriété `type` de `ExtensionInfo`.

Cette API requiert la permission de l'API de "management"

Il s'agit d'une fonction asynchrone qui renvoie une `Promise`.

Syntaxe
-------


```js
var gettingAll = browser.management.getAll();
```

### Paramètres

None.

### Valeur retournée

Une `Promise` qui sera rempli avec un ensemble d'objets `ExtensionInfo`, un pour chaque extension installée.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Exemples
--------

Enregistrez le nom de toutes les extensions installées :


```js
function gotAll(infoArray) {
  for (info of infoArray) {
    if (info.type == "extension") {
      console.log(info.name);
    }
  }
}

var gettingAll = browser.management.getAll();
gettingAll.then(gotAll);
```

### Example extensions

* theme-switcher

**Note :**

Cette API est basée sur l'API Chromium `chrome.management`. Cette documentation est dérivée de `management.json` dans le code de Chromium code.

Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.
management.install()
====================

Installe et active une extension de thème à partir de l'URL donnée.
Cette API nécessite la permission de l'API "management" et ne fonctionnera qu'avec des thèmes signés.

C'est une fonction asynchrone qui renvoie une Promise.

Syntaxe
-------


```js
let { id } = await browser.management.install({ url });
```

### Paramètres

options

Un objet qui inclut l'URL du fichier XPI du thème à addons.mozilla.org et un hachage facultatif du fichier XPI, en utilisant sha256 ou plus.

### Valeur retournée

Une Promise qui sera remplie avec un objet, contenant l'`ExtensionID` défini pour le thème dans manifest.json.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Exemples
--------

Parcourez une liste de thèmes :


```js
"use strict";

let themes = [
  "https://addons.mozilla.org/firefox/downloads/file/1063216/insightscare-1.0-fx.xpi",
  "https://addons.mozilla.org/firefox/downloads/file/1063419/orange\_roses-1.0-fx.xpi",
  "https://addons.mozilla.org/firefox/downloads/file/1062647/sticktoyourguns-2.0-fx.xpi",
  "https://addons.mozilla.org/firefox/downloads/file/0/bad\_url.xpi",
];

let current;

async function install(url) {
  try {
    current = url;
    let { id } = await browser.management.install({ url });
    console.log("Theme installed: " + id);
  } catch (e) {
    console.error("Installation failed: " + e);
  }
}

browser.browserAction.onClicked.addListener(() => {
  let id = themes.indexOf(current);
  install(themes[(id + 1) % themes.length]);
});

for (let url of themes) {
  browser.menus.create({
    title: url,
    onclick: () => install(url),
    contexts: ["browser\_action"],
  });
}
```
management.getSelf()
====================

Récupère un objet `ExtensionInfo` contenant les informations de l'extension appelée.

Cette API *ne requière pas* l' API de permission "management".

Il s'agit d'une fonction asynchrone qui renvoie une `Promise`.

Syntaxe
-------


```js
var gettingSelf = browser.management.getSelf();
```

### Paramètres

Aucun.

### Valeur retournée

Une `Promise` qui sera remplie avec un objet `ExtensionInfo`, contenant les informations sur l'extension.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Exemples
--------

Enregistrez le nom de l'extension :


```js
function gotSelf(info) {
  console.log("Add-on name: " + info.name);
}

var gettingSelf = browser.management.getSelf();
gettingSelf.then(gotSelf);
```


**Note :**

Cette API est basée sur l'API Chromium `chrome.management`. Cette documentation est dérivée de `management.json` dans le code de Chromium code.

Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.
management.onEnabled()
======================

L'auditeur de l'événement appelé lorsque l'événement `enabled` est déclenché, indiquant qu'un add-on est maintenant activé.

L'API requière l'API de permission "management"

Syntaxe
-------


```js
browser.management.onEnabled.addListener(listener);
browser.management.onEnabled.removeListener(listener);
browser.management.onEnabled.hasListener(listener);
```


Les événements ont trois fonctions :

`addListener(callback)`

Ajoutez un auditeur à cet événement.

`removeListener(listener)`

L'argument de l'auditeur est l'auditeur à supprimer.

`hasListener(listener)`

Vérifie si l'auditeur est enregistré à l'événement. Renvoie `true` s'il est à l'écoute, sinon `false` .

Syntaxe addListener
-------------------

### Parameters

`function`

Fonction de rappel qui sera appelée lorsque cet événement se produira. La fonction passera par l'argument suivant :

`info`

`ExtensionInfo`: informations de l'extension qui a été désinstallé.


Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Exemples
--------

Enregistrez les noms des extensions lorsqu'ils sont activés :


```js
browser.management.onEnabled.addListener((info) => {
  console.log(info.name + " was enabled");
});
```


**Note :**

Cette API est basée sur l'API Chromium `chrome.management`. Cette documentation est dérivée de `management.json` dans le code de Chromium code.

Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.
management.uninstall()
======================

Désinstalle une extension, compte tenu de son ID.

Cette API requiert l'API de permission. "management"

Il s'agit d'une fonction asynchrone qui renvoie une `Promise`.

Syntaxe
-------


```js
var uninstalling = browser.management.uninstall(
  id, // string
  options, // object
);
```

### Paramètres

`id`

`string`. ID de l'extensions à désinstaller.

`optionsFacultatif`

`object`. l'objet qui peut contenir une propriété unique, `showConfirmDialog`. Si `showConfirmDialog` est `true`, le navigateur affiche une boie de dialogue demandant à l'utilisateur de confirmer que le complément doit être désinstallé.

* Si `id` est l'ID de l'extension appelant, `showConfirmDialog` est par défaut à `false`.
* Si `id` est l'ID d'une extension différente, cette option est ignorée et la boite de dialogue de confirmation s'affche toujours.

### Valeur retournée

Une `Promise` qui sera rejetée avec un message d'erreur si l'utilisateur a annulé la désintallatiion.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Exemples
--------

Désinstallez l'extension dont l'ID est "my-addon-id", en demandant à l'utilisateur de confirmer. Dans le rappel, vérifiez si l'utilisateur a annué la désinstallation.

Notez que nous n'avons réussi un gestionnaire d'exécution, car si la désinstallation réussit, l'extension n'est plus disponible pour le gérer.


```js
var id = "my-addon-id";

function onCanceled(error) {
  console.log(`Uninstall canceled: ${error}`);
}

var uninstalling = browser.management.uninstall(id);
uninstalling.then(null, onCanceled);
```


**Note :**

Cette API est basée sur l'API Chromium `chrome.management`. Cette documentation est dérivée de `management.json` dans le code de Chromium code.

Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.
management.onInstalled()
========================

Action quand une extension est installée.

Cette API requière l'API de permission "management".

Syntaxe
-------


```js
browser.management.onInstalled.addListener(listener);
browser.management.onInstalled.removeListener(listener);
browser.management.onInstalled.hasListener(listener);
```


Les événements ont trois fonctions :

`addListener(callback)`

Ajout un auditeur à l'événement.

`removeListener(listener)`

Arrêtez d'écouvter l'événement. L'argument de l'auditeur est un auditeur à supprimer.

`hasListener(listener)`

Vérifie si un auditeur est enregistré pour cet événement. Renvoie `vrai` si elle est à l'écoute, sinon `faux` .

Syntaxe addListener
-------------------

### Paramètres

`function`

fonction de rappel qui sera appelée quand l'événement se produira. La fonction passera l'argument suivant :

`info`

`ExtensionInfo`: informations sur l'extension qui a été installée.


Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Exemples
--------

Enregistrez les noms des extensions lorsqu'ils sont installés :


```js
browser.management.onInstalled.addListener((info) => {
  console.log(info.name + " was installed");
});
```


**Note :**

Cette API est basée sur l'API Chromium `chrome.management`. Cette documentation est dérivée de `management.json` dans le code de Chromium code.

Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.
management.uninstallSelf()
==========================

Désinstalle l'appel de l'extension.

Cette API *ne requiert pas* la permission API "management"

Il s'agit d'une fonction asynchrone qui renvoie une `Promise`.

Syntaxe
-------


```js
var uninstallingSelf = browser.management.uninstallSelf(
  options, // object
);
```

### Paramètres

`optionsFacultatif`

`object`. L'objet qui peut comporter deux propriétés, toutes deux facultatives :

`showConfirmDialogFacultatif`

Boolean. Si `showConfirmDialog` est `true`, le navigateur affiche la boite de dialogue demandant à l'utilisateur de confirmer que le complément doit être désinstallé. Par défaut à `false`.

`dialogMessageFacultatif`

String. Un message supplémentaire qui sera affiché dans la boite de dialogue de confirmation.


### Valeur retournée

Une `Promise` qui sera rejetée avec un message d'erreur si l'utilisateur a annulé la désinstallation.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Exemples
--------

Désinsallez l'extension, en demandant à l'utilisateur de confirmer. Dans le rappel, vérifiez si l'utilisateur a annulé la désinstallation.

Notez que n'avons pas passé un gestionnaire d'éxécution, car si la desinstallation réussit, l'extension n'est plus disponible pour le gérer.


```js
function onCanceled(error) {
  console.log(`Canceled: ${error}`);
}

var uninstalling = browser.management.uninstallSelf({
  showConfirmDialog: true,
});

uninstalling.then(null, onCanceled);
```


Le même, mais aussi l'ajout d'un message personnalisé à la boite de dialogue :


```js
function onCanceled(error) {
  console.log(`Canceled: ${error}`);
}

var uninstalling = browser.management.uninstallSelf({
  showConfirmDialog: true,
  dialogMessage: "Testing self-uninstall",
});

uninstalling.then(null, onCanceled);
```


**Note :**

Cette API est basée sur l'API Chromium `chrome.management`. Cette documentation est dérivée de `management.json` dans le code de Chromium code.

Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.
management.getPermissionWarningsById()
======================================

Lorsque l'utilisateur installe ou met à jour une extension, le navigateur peut avertir l'utilisateur des permissions particulièrement puissantes que l'extension a demandée. Toutes les permissions ne donnent pas lieu à des alertes et ce comportement n'est pas normalisé dans les navigateurs.
Compte tenu de l'ID d'une extension, cette fonction retourne les avertisseurs de permissions comme un tableau de chaînes.

Cette API requière l'API permission "management"

Il s'agit d'une fonction asynchrone qui renvoie une `Promise`.

Syntaxe
-------


```js
var gettingWarnings = browser.management.getPermissionWarningsById(
  id, // string
);
```

### Paramètres

`id`

`string`. ID de l'extension dont vous souhaitez récupérer les avertisseurs de permissions.

### Valeur retournée

Une `Promise` qui sera remplie avec un ensemble de chaînes, chacune contenant un texte d'un avertissement de permissions.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Exemples
--------

Enregistrez les avertissements de permissions pour l'extension dont l'ID est "my-add-on" :


```js
var id = "my-add-on";

function gotWarnings(warnings) {
  for (warning of warnings) {
    console.log(warning);
  }
}

var gettingWarnings = browser.management.getPermissionWarningsById(id);
gettingWarnings.then(gotWarnings);
```


**Note :**

Cette API est basée sur l'API Chromium `chrome.management`. Cette documentation est dérivée de `management.json` dans le code de Chromium code.

Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.
tabs.onActivated
================

Se déclenche lorsque l'onglet actif dans une fenêtre change. Notez que l'URL de l'onglet peut ne pas être définie au moment où cet événement s'est déclenché, mais vous pouvez écouter les événements `tabs.onUpdated` pour être averti lorsqu'une URL est définie.

Syntaxe
-------


```js
browser.tabs.onActivated.addListener(listener);
browser.tabs.onActivated.removeListener(listener);
browser.tabs.onActivated.hasListener(listener);
```


Les événements ont trois fonctions :

`addListener(callback)`

Ajoute un écouteur à cet événement

`removeListener(listener)`

Arrêtez d'écouter cet événement. L'argument `listener` est l'écouteur à supprimer.

`hasListener(listener)`

Vérifiez si `listener` est enregistré pour cet événement. Renvoie `true` s'il écoute, sinon `false`.

Syntaxe addListener
-------------------

### Paramètres

`callback`

Fonction qui sera appelée lorsque cet événement se produit. La fonction recevra les arguments suivants :

`activeInfo`

`object`. ID de l'onglet qui a été activé, et ID de sa fenêtre.


Objets supplémentaires
----------------------

### activeInfo

`previousTabId`

`integer`. L'ID de l'onglet activé précédent, si cet onglet est encore ouvert.

`tabId`

`integer`. L'ID de l'onglet qui est devenu actif.

`windowId`

`integer`. L'ID de la fenêtre de l'onglet.

Exemples
--------

Écouter et enregistrer les événements d'activation des onglets :


```js
function handleActivated(activeInfo) {
  console.log("Tab " + activeInfo.tabId + " was activated");
}

browser.tabs.onActivated.addListener(handleActivated);
```

### Example extensions

* annotate-page
* bookmark-it
* chill-out
* cookie-bg-picker
Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

**Note :**

Cette API est basée sur l'API Chromium `chrome.tabs`. Cette documentation est dérivée de `tabs.json` dans le code de Chromium code.
tabs.onActiveChanged
====================

**Attention :** Cet événement est obsolète. Utilisez `tabs.onActivated` à la place.

Se déclenche lorsque l'onglet sélectionné dans une fenêtre change. Notez que l'URL de l'onglet peut ne pas être définie au moment où cet événement a été déclenché, mais vous pouvez écouter les événements `tabs.onUpdated` pour être averti lorsqu'une URL est définie.

Syntaxe
-------


```js
browser.tabs.onActiveChanged.addListener(listener);
browser.tabs.onActiveChanged.removeListener(listener);
browser.tabs.onActiveChanged.hasListener(listener);
```


Les événements ont trois fonctions :

`addListener(callback)`

Ajoute un écouteur à cet événement..

`removeListener(listener)`

Arrêtez d'écouter cet événement. L'argument `listener` est l'écouteur à supprimer.

`hasListener(listener)`

Vérifiez si `listener` est enregistré pour cet événement. Renvoie `true` s'il écoute, sinon `false`.

Syntaxe addListener
-------------------

### Paramètres

`callback`

Fonction qui sera appelée lorsque cet événement se produit. La fonction recevra les arguments suivants :

`tabId`

`integer`. L'ID de l'onglet qui est devenu actif.


`selectInfo`

`object`.


Objets supplémentaires
----------------------

### selectInfo

`windowId`

`integer`. L'ID de la fenêtre contenant l'onglet sélectionné.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

**Note :**

Cette API est basée sur l'API Chromium `chrome.tabs`. Cette documentation est dérivée de `tabs.json` dans le code de Chromium code.

Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.
tabs.onReplaced
===============

Lancé lorsqu'un onglet est remplacé par un autre en raison d'un prérendering ou d'un instantané.

Cet événement peut ne pas être pertinent ou pris en charge par des navigateurs autres que Chrome.

Syntaxe
-------


```js
browser.tabs.onReplaced.addListener(listener);
browser.tabs.onReplaced.removeListener(listener);
browser.tabs.onReplaced.hasListener(listener);
```


Les événements ont trois fonctions :

`addListener(callback)`

Ajoute un écouteur à cet événement.

`removeListener(listener)`

Arrêtez d'écouter cet événement. L'argument `listener` est l'écouteur à supprimer.

`hasListener(listener)`

Vérifiez si `listener` est enregistré pour cet événement. Renvoie `true` s'il écoute, sinon `false`.

Syntaxe addListener
-------------------

### Paramètres

`callback`

Fonction qui sera appelée lorsque cet événement se produit. La fonction recevra les arguments suivants :

`addedTabId`

`integer`. ID de l'onglet de remplacement.


`removedTabId`

`integer`. ID de l'onglet qui a été remplacé.


Exemples
--------

Écoutez les événements de remplacement et consignez les informations associées :


```js
function handleReplaced(addedTabId, removedTabId) {
  console.log("New tab: " + addedTabId);
  console.log("Old tab: " + removedTabId);
}

browser.tabs.onReplaced.addListener(handleReplaced);
```

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

**Note :**

Cette API est basée sur l'API Chromium `chrome.tabs`. Cette documentation est dérivée de `tabs.json` dans le code de Chromium code.

Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.
tabs.detectLanguage()
=====================

Détecte la langue principale du contenu dans un onglet, en utilisant le détecteur de langue compact (CLD).

C'est une fonction asynchrone qui renvoie une `Promise`.

Syntaxe
-------


```js
var detecting = browser.tabs.detectLanguage(
  tabId, // optional integer
  callback, // optional function
);
```

### Paramètres

`tabId` Facultatif

`integer`. Par défaut à l'onglet actif de la fenêtre en cours.

`callback` Facultatif

`function`. Actuellement, si un `tabId` est spécifié, cette méthode utilise ce rappel pour renvoyer les résultats au lieu de renvoyer une promesse. Le rappel reçoit comme seul paramètre d'entrée une chaîne de caractères contenant le code de langue détecté `en` ou `fr`.

### Valeur retournée

Une `Promise`qui sera remplie avec une chaîne représentant un code de langue ISO tel que `en` ou `fr`. Pour une liste complète des langues prises en charge par cette méthode, see kLanguageInfoTable. Pour une langue inconnue, `"und"` sera retourné (mais voir bug 1288263). Si une erreur se produit, la promesse sera rejetée avec un message d'erreur.

Exemples
--------

Détecter et enregistrer la langue de l'onglet actif lorsque l'utilisateur clique sur une action du navigateur :


```js
function onLanguageDetected(lang) {
  console.log(`Language is: ${lang}`);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

browser.browserAction.onClicked.addListener(function () {
  var detecting = browser.tabs.detectLanguage();
  detecting.then(onLanguageDetected, onError);
});
```


Détecter et enregistrer la langue de chaque onglet ouvert lorsque l'utilisateur clique sur une action du navigateur (notez que cet exemple nécessite l permission) :


```js
function onLanguageDetected(url, lang) {
  console.log(`Language in ${url} is: ${lang}`);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

function detectLanguages(tabs) {
  for (tab of tabs) {
    var onFulfilled = onLanguageDetected.bind(null, tab.url);
    var detecting = browser.tabs.detectLanguage(tab.id);
    detecting.then(onFulfilled, onError);
  }
}

browser.browserAction.onClicked.addListener(function () {
  var querying = browser.tabs.query({});
  querying.then(detectLanguages, onError);
});
```

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

**Note :**

Cette API est basée sur l'API `chrome.tabs` de Chromium. Cette documentation est dérivée de `tabs.json` dans le code de Chromium code.

Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.