recursal/MDN huggingface dataset:
permissions.request()
=====================

Demandez l'ensemble des permissions répertoriées dans l'objet `permissions.Permissions`.

L'argument `Permissions` peut contenir soit une propriété `origins` , qui est un tableau de permissions d'hôte, soit une propriété `permissions` , qui est un tableau de permissions d'API, ou les deux. Les permissions doivent provenir de l'ensemble des permissions définies dans la clé `optional_permissions` du manifest.json. La propriété `origins` qui correspondent à un sous-ensemble des hôtes correspondant à une permission facultative : par exemple, si optional\_permissions inclut "\*://mozilla.org/", alors `permissions.origins` peut inclure "https://developer.mozilla.org/".

La demande ne peut être faite qu'à l'intérieur du gestionnaire pour une action utilisateur.

Selon les circonstances, le navigateur traitera probablement la demande en demandant à l'utilisateur s'il doit accorder les permissions demandées. Une seule requête est faite pour toutes les permissions demandées: donc toutes les permissions sont accordées ou aucune d'entre elles ne l'est.

Toutes les autorisations accordées sont conservées par l'extension, même en cas de mise à niveau et de désactivation / activation du cycle.

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

Syntaxe
-------


```js
var requesting = browser.permissions.request(
  permissions, // Permissions object
);
```

### Paramètres

`permissions`

Un objet `permissions.Permissions`

### Return value

Une `Promise` qui sera remplie avec `true` si l'extension a reçu toutes les permissions répertoriées dans l'argument des `permissions` , ou `false` dans le cas contraire.

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

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

Exemples
--------

Ce code ajoute un gestionnaire de clics qui demande diverses permissions, puis enregistre le résultat de la demande et les permissions de l'extension une fois la requête terminée.


```js
const permissionsToRequest = {
  permissions: ["bookmarks", "history"],
  origins: ["https://developer.mozilla.org/"],
};

function requestPermissions() {
  function onResponse(response) {
    if (response) {
      console.log("Permission was granted");
    } else {
      console.log("Permission was refused");
    }
    return browser.permissions.getAll();
  }

  browser.permissions
    .request(permissionsToRequest)
    .then(onResponse)
    .then((currentPermissions) => {
      console.log(`Current permissions:`, currentPermissions);
    });
}

document
  .querySelector("#request")
  .addEventListener("click", requestPermissions);
```

### Example extensions

* dnr-dynamic-with-options
* dnr-redirect-url
* permissions

**Note :**

Actuellement un bug avec la demande d'origines et la demande des permissions sur la page about:addons.

Cette API est basée sur l'API Chromium `chrome.permissions`.

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.
permissions.contains()
======================

Vérifiez si l'extension a les permissions listées dans l'objet `permissions.Permissions`.

L'argument `Permissions` peut contenir une propriété origine, qui est un tableau de permissions hôtes, ou une propriété `permissions` , qui est un tableau de permissions API, ou les deux.

Il s'agit d'une fonction asynchrone qui renvoie une `Promesse`. La promesse est remplie avec true seulement si toute l'extension possède actuellement toutes les permissions données. Pour les permissions d'hôtes, si le modèle de permissions if the extension's permissions pattern-match the permissions listed in `origins`, then they are considered to match.

Syntaxe
-------


```js
var getContains = browser.permissions.contains(
  permissions, // Permissions object
);
```

### Paramètres

`permissions`

Un objet `permissions.Permissions` .

### Valeur renvoyée

Une `Promesse` qui sera remplie avec `true` si l'extension possède déjà toutes les permissions listées dans l'argument des `permissions` , ou `false` dans le cas contraire.

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

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

Exemples
--------


```js
// Extension permissions are:
// "webRequest", "tabs", "\*://\*.mozilla.org/\*"

var testPermissions1 = {
  origins: ["\*://mozilla.org/"],
  permissions: ["tabs"],
};

browser.permissions.contains(testPermissions1).then((result) => {
  console.log(result); // true
});

var testPermissions2 = {
  origins: ["\*://mozilla.org/"],
  permissions: ["tabs", "alarms"],
};

browser.permissions.contains(testPermissions2).then((result) => {
  console.log(result); // false, "alarms" doesn't match
});

var testPermissions3 = {
  origins: ["https://developer.mozilla.org/"],
  permissions: ["tabs", "webRequest"],
};

browser.permissions.contains(testPermissions3).then((result) => {
  console.log(result); // true: "https://developer.mozilla.org/"
}); // matches: "\*://\*.mozilla.org/\*"

var testPermissions4 = {
  origins: ["https://example.org/"],
};

browser.permissions.contains(testPermissions4).then((result) => {
  console.log(result); // false, "https://example.org/"
}); // does not match
```

### Example extensions

* dnr-redirect-url

**Note :**

Cette API est basée sur l'API Chromium `chrome.permissions`.

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.
permissions.onRemoved
=====================

Activé lorsque certaines permissions sont supprimés de l'extension.

Syntaxe
-------


```js
browser.permissions.onRemoved.addListener(listener);
browser.permissions.onRemoved.removeListener(listener);
browser.permissions.onRemoved.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 a supprimée.

`hasListener(listener)`

Vérifiez si `listener` est enregistré dans l'événement. Retourne `true` s'il écoute, sinon `false`.

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

### Paramètres

`callback`

Fonction qui ne sera appelée lorsque cet événement se produira. La fonction sera passée avec les arguments suivants :

`permissions`

L'objet `permissions.Permissions` contenant les permissions qui ont été supprimées.


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

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

Exemples
--------


```js
function handleRemoved(permissions) {
  console.log(`Removed API permissions: ${permissions.permissions}`);
  console.log(`Removed host permissions: ${permissions.origins}`);
}

browser.permissions.onRemoved.addListener(handleRemoved);
```


**Note :**

Cette API est basée sur l'API Chromium `chrome.permissions`.

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.
permissions.getAll()
====================

Récupère un objet `permissions.Permissions` contenant toutes les permissions actuellement acccordées à l'extension.

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

Syntaxe
-------


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

### Paramètres

None.

### Valeur renvoyée

Une `Promise` qui sera remplie avec un objet `permissions.Permissions` contenant toutes les permissions actuellement accordées à l'extensions. Cela inclut toutes les permissions que l'extension à répertoriées dans la clé de `permissions` , et toutes les permissions répertoriées dans `optional_permissions` que l'extension a été accordée en appelant `permissions.request()`.

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

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

Exemples
--------


```js
// Extension permissions are:
// "webRequest", "tabs", "\*://\*.mozilla.org/\*"

browser.permissions.getAll().then((result) => {
  console.log(result.permissions); // [ "webRequest", "tabs" ]
  console.log(result.origins); // [ "\*://\*.mozilla.org/\*" ]
});
```

### Example extensions

* dnr-dynamic-with-options
* permissions

**Note :**

Cette API est basée sur l'API Chromium `chrome.permissions`.

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.
runtime.PlatformOs
==================

Le système d'exploitation sur lequel le navigateur fonctionne.

Type
----

Les valeurs de ce type sont des chaînes. Les valeurs possibles sont:

`"mac"`

Le système d'exploitation est sous Mac OS X.

`"win"`

Le système d'exploitation est sous Windows.

`"android"`

Le système d'exploitation est sous Android.

`"cros"`

Le système d'exploitation est sous ChromeOS.

`"linux"`

Le système d'exploitation est sous Linux.

`"openbsd"`

Le système d'exploitation est sous Open/FreeBSD.

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.runtime`. Cette documentation est dérivée de `runtime.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.
runtime.onUpdateAvailable
=========================

Déclenché quand une mise à jour de l'extension est disponible. Cet événement permet à une extension de retarder une mise à jour : par exemple, car elle est au milieu d'une opération qui ne doit pas être interrompue.

Si l'extension n'écoute pas cet événement lorsqu'une mise à jour est disponible, l'extension est rechargée immédiatement et la mise à jour est appliquée. Si l'extension est à l'écoute, la mise à jour sera appliquée la prochaine fois que l'extension sera rechargée. Cela arrive si :

* Le navigateur est redémarré
* L'extension est désactivée et réactivée
* L'extension se recharge explicitement en appelant `runtime.reload()`.
Syntaxe
-------


```js
browser.runtime.onUpdateAvailable.addListener();
browser.runtime.onUpdateAvailable.removeListener(listener);
browser.runtime.onUpdateAvailable.hasListener(listener);
```


Les événements ont trois fonctions :

`addListener(callback)`

Ajouter un écouteur à cet événement.

`removeListener(listener)`

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

`hasListener(listener)`

Vérifie que l'`écouteur` est enregistré pour cet événement. Retourne `true` s'il écoute, sinon `false`.

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

### Paramètres

`callback`

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

`details`

`object`. Contient une seule propriété, une chaîne nommée `version`, qui représente le numéro de version de la mise à jour.


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

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

Exemples
--------

Ecoutez les événements `UpdateAvailable`:


```js
function handleUpdateAvailable(details) {
  console.log(details.version);
}

browser.runtime.onUpdateAvailable.addListener(handleUpdateAvailable);
```


**Note :**

Cette API est basée sur l'API Chromium `chrome.runtime`. Cette documentation est dérivée de `runtime.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.
runtime.getBrowserInfo()
========================

Renvoie les informations sur le navigateur dans lequel l'extension est installée.

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

Syntaxe
-------


```js
var gettingInfo = browser.runtime.getBrowserInfo();
```

### Paramètres

None.

### Valeur retournée

Une `Promise` qui sera remplie avec un objet qui a les propriétés suivantes :

* **`name`**: Valeur de chaîne représentant le nom du navigateur, par exemple "Firefox".
* **`vendor`**: Valeur de chaîne représentant le fournisseur du navigateur, par exemple "Mozilla".
* **`version`**: Chaîne représentant la version du navigateur, par exemple "51.0" or "51.0a2".
* **`buildID`**: Chaine représentant la version spécifique du navigateur, par exemple "20161018004015".
Compatibilité des navigateurs
-----------------------------

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

Exemples
--------

Obtenir et enregistrer le nom du navigateur :


```js
function gotBrowserInfo(info) {
  console.log(info.name);
}

var gettingInfo = browser.runtime.getBrowserInfo();
gettingInfo.then(gotBrowserInfo);
```


**Note :**

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.
runtime.OnInstalledReason
=========================

Les valeurs pour laquelle l'événement `runtime.onInstalled` est en cours d'envoi.

Type
----

Les valeurs de ce type sont des chaînes. Les valeurs possibles sont :

`"install"`

L'extension a été installée.

`"update"`

L'extension a été mise à jour vers une nouvelle version.

`"browser_update"`

Le navigateur a été mise à jour vers une nouvelle version.

`"shared_module_update"`

Une autre extension, qui contient un module utilisé par cette extension, a été mise à jour.

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.runtime`. Cette documentation est dérivée de `runtime.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.
runtime.OnRestartRequiredReason
===============================

La raison pour laquelle l'événement `onRestartRequired` est en cours d'exécution.

Type
----

Les valeurs de ce type sont des chaînes. Les valeurs possibles sont :

* `"app_update"`: L'application en cours de mise à jour vers une version plus récente.
* `"os_update"`: Le navigateur / Système d'exploitation est mise à jour vers une nouvelle verion plus récente.
* `"periodic"`: Le système a fonctionné pendant plus logntemps que la durée de disponibilité autorisée dans la stratégie d'entreprise.
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.runtime`. Cette documentation est dérivée de `runtime.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.
runtime.PlatformNaclArch
========================

L'architecture du client natif. Cela peut-etre différent de arch sur certaines plate-formes.

Type
----

Les valeurs de type sont des chaînes. Les valeurs possible sont : `"arm"`, `"x86-32"`, `"x86-64"`.

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.runtime`. Cette documentation est dérivée de `runtime.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.
runtime.MessageSender
=====================

Un objet contenant des informations sur l'expéditeur d'un message ou d'une demande de connexion ; ceci est passé à l'écouteur `runtime.onMessage()`.

C'est aussi une propriété de `runtime.Port`, mais seulement dans l'instance de `Port` passée dans les écouteurs `runtime.onConnect()` ou `runtime.onConnectExternal()`.

Type
----

Les valeurs de ce type sont des objets. Ils contiennent les propriétés suivantes :

`tab`Facultatif

`tabs.Tab`. Le `tabs.Tab` qui a ouvert la connexion. Cette propriété ne sera présente que lorsque la connexion a été ouverte à partir d'un onglet (y compris les scripts de contenu).

`frameId`Facultatif

`integer`. Le cadre qui a ouvert la connexion. Zéro pour les cadres de haut niveau, positif pour les cadres enfants. Cela ne sera défini que lorsque l'`onglet` est défini.

`id`Facultatif

`string`. L'ID de l'extension qui a envoyé le message, si le message a été envoyé par une extension. Si l'expéditeur définit explicitement un ID à l'aide de la clé des applications dans manifest.json, then `id` aura cette valeur. Sinon, il aura l'ID qui a été généré pour l'expéditeur. Notez que dans Firefox, avant la version 54, cette valeur était l'ID interne de l'extension (c'est-à-dire l'UUID qui apparaît dans l'URL de l'extension).

`url`Facultatif

`string`. L'URL de la page ou du cadre hébergeant le script qui a envoyé le message. Si l'expéditeur est un script s'exécutant dans une page d'extension (telle qu'une page d'arrière-plan, une page d'options, ou une action de navigateur ou une action contextuelle), l'URL sera au format `"moz-extension://<extension-internal-id>/path/to/page.html"`. Si l'expéditeur est un script d'arrière-plan et que vous n'avez pas inclus une page d'arrière-plan, ce sera `"moz-extension://<extension-internal-id>/_generated_background_page.html"`. Si l'expéditeur est un script s'exécutant sur une page Web (y compris les scripts de contenu et les scripts de page normaux), alors l'`url` sera l'URL de la page web. Si le script s'exécute dans un iframe, `url` sera l'URL de l'iframe.

`tlsChannelId`Facultatif

`string`. L'ID de canal TLS de la page ou du cadre qui a ouvert la connexion, si demandé par l'extension, et si disponible.

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.runtime`. Cette documentation est dérivée de `runtime.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.
runtime.sendNativeMessage()
===========================

Envoie un seul message d'une extension à une application native.

Cela prend deux paramètres obligatoires : le nom de l'application native et un objet JSON qui est le message à envoyer. Le navigateur lancera l'application native et délivrera le message.

C'est une fonction asynchrone qui renvoie une `Promise`. The first message sent by the native application is treated as a response to the `sendNativeMessage()` call, and the promise will be fulfilled with this message as a parameter. Note that you can't use `runtime.onMessage` to get responses from the application: you must use the callback function instead.

Une nouvelle instance de l'application est lancée pour appel à `runtime.sendNativeMessage()`. Le navigateur terminera l'application native après avoir reçu une réponse. Pour mettre fin à une application native, le navigateur ferme le canal, donne au processus quelques secondes pour quitter normalement, puis le tue s'il ne s'est pas arrêté.

Pour plus d'informations, voir Native messaging.

Syntaxe
-------


```js
var sending = browser.runtime.sendNativeMessage(
  application, // string
  message, // object
);
```

### Paramètres

`application`

`string`. Le nom de l'application native. Cela doit correspondre à la propriété "name" dans le fichier manifest de l'application native.

`message`

`object`. Un objet JSON qui sera envoyé à l'application native.

### Valeur retournée

Une `Promise`. Si l'expéditeur a envoyé une réponse, celle-ci sera remplie avec la réponse en tant qu'objet JSON. Sinon, il sera rempli sans arguments. Si une erreur survient lors de la connexion à l'application native, la promesse sera rejetée avec un message d'erreur.

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

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

Exemples
--------

Voici un script d'arrière-plan qui envoie un message "ping" à l'application "ping\_pong" et enregistre la réponse, chaque fois que l'utilisateur clique sur l'action du navigateur :


```js
function onResponse(response) {
  console.log(`Received ${response}`);
}

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

/\*
On a click on the browser action, send the app a message.
\*/
browser.browserAction.onClicked.addListener(() => {
  console.log("Sending: ping");
  var sending = browser.runtime.sendNativeMessage("ping\_pong", "ping");
  sending.then(onResponse, onError);
});
```


**Note :**

Cette API est basée sur l'API Chromium `chrome.runtime`. Cette documentation est dérivée de `runtime.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.
runtime.getBackgroundPage()
===========================

Récupère l'objet `Window` pour la page d'arrière-plan qui s'exécute dans l'extension en cours.

Cela consiste un moyen pratique pour d'autres scripts d'extension privilégiés d'accéder directement à la portée du script d'arrière plan. Cela leur permet d'accéder aux variables ou aux fonctions d'appel définies dans cette portée. Le "script privilégié" inclut ici les scripts s'exécutant dans les pages d'options, ou les scripts s'exécutant dans les fenêtres d'action du navigateur ou d'action page, mais n'inclut pas les scripts de contenu.

Notez que les variables déclarées à l'aide de `const` ou `let` n'apparaissaient pas dans l'objet window retourné par cette fonction.

**Notez également que cette méthode ne peut pas être utilisée dans une fenêtre privée dans Firefox**—Elle renvoie toujours `null`. Pour plus d'informations voir le bug lié à bugzilla.

Si la page d'arrière plan est une page événement, le système s'assuera qu'il est chargé avant de résoudre la promise.

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

Syntaxe
-------


```js
var gettingPage = browser.runtime.getBackgroundPage();
```

### Paramètres

None.

### Valeur retournée

Une `Promise` qui sera remplie avec l'objet Window pour la page d'arrière plan, s'il y en a une. Si l'extension n'inclut pas de page d'arrière-plan, la promise est rejetée avec un message d'erreur.

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

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

Exemples
--------

Supposons un script d'arrière-plan définisse une fonction `foo()`:


```js
// background.js

function foo() {
  console.log("I'm defined in background.js");
}
```


Un script exécuté dans un popup peut appeler cette fonction directement comme ceci :


```js
// popup.js

function onGot(page) {
  page.foo();
}

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

var getting = browser.runtime.getBackgroundPage();
getting.then(onGot, onError);
```


**Note :**

Cette API est basée sur l'API Chromium `chrome.runtime`. Cette documentation est dérivée de `runtime.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.