recursal/MDN huggingface dataset:
sessions.forgetClosedWindow()
=============================

Supprime une fenêtre fermée de la liste des fenêtres récemment fermées du navigateur.Notez que les sites visités par cette fenêtre ne sont pas supprimés de l'historique du navigateur. Utilisez les API `browsingData` ou `history` pour supprimer l'historique.
C'est une fonction asynchrone qui renvoie une `Promise`.

Syntaxe
-------


```js
var forgettingWindow = browser.sessions.forgetClosedWindow(
  sessionId, // string
);
```

### Paramètres

`sessionId`

`String`. L'identifiant de la session que vous voulez oublier.

### Valeur retournée

Une `Promise`. Cela sera accompli sans arguments lorsque la session a été supprimée.

Si une erreur se produit, 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
--------

Ce code oublie la dernière session fermée, qu'il s'agisse d'un onglet ou d'une fenêtre :


```js
function forgetMostRecent(sessionInfos) {
  if (!sessionInfos.length) {
    console.log("No sessions found");
    return;
  }
  let sessionInfo = sessionInfos[0];
  if (sessionInfo.tab) {
    browser.sessions.forgetClosedTab(
      sessionInfo.tab.windowId,
      sessionInfo.tab.sessionId,
    );
  } else {
    browser.sessions.forgetClosedWindow(sessionInfo.window.sessionId);
  }
}

function onError(error) {
  console.log(error);
}

browser.sessions
  .getRecentlyClosed({ maxResults: 1 })
  .then(forgetMostRecent, onError);
```
storage.StorageArea
===================

StorageArea est un objet représentant une zone de stockage.

Type
----

Les valeurs de ce type sont des objets.

Méthodes
--------

`storage.StorageArea.get()`

Récupère un ou plusieurs éléments de la zone de stockage..

`storage.StorageArea.getBytesInUse()`

Obtient la quantité d'espace de stockage (en octets) utilisée pour stocker un ou plusieurs éléments dans la zone de stockage.

`storage.StorageArea.set()`

Stocke un ou plusieurs éléments dans la zone de stockage. Si un élément existe déjà, sa valeur sera mise à jour.

`storage.StorageArea.remove()`

Supprime un ou plusieurs éléments de la zone de stockage.

`storage.StorageArea.clear()`

Supprime tous les éléments de la zone de stockage.

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.storage`. Cette documentation est dérivée de `storage.json` dans le code de Chromium.

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.
storage.onChanged
=================

Lancé lorsqu'un ou plusieurs éléments changent.

Syntaxe
-------


```js
browser.storage.onChanged.addListener(callback);
browser.storage.onChanged.removeListener(listener);
browser.storage.onChanged.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 :

`changes`

`object`. Objet décrivant le changement. Cela contient une propriété pour chaque clé qui a changé. Le nom de la propriété est le nom de la clé qui a changé, et sa valeur est un objet `storage.StorageChange` décrivant la modification apportée à cet élément.


`areaName`

`string`. Le nom de la zone de stockage (`"sync"`, `"local"` or `"managed"`) auquel les modifications ont été apportées.


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

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

Exemples
--------


```js
/\*
Log the storage area that changed,
then for each item changed,
log its old value and its new value.
\*/
function logStorageChange(changes, area) {
  console.log("Change in storage area: " + area);

  var changedItems = Object.keys(changes);

  for (var item of changedItems) {
    console.log(item + " has changed:");
    console.log("Old value: ");
    console.log(changes[item].oldValue);
    console.log("New value: ");
    console.log(changes[item].newValue);
  }
}

browser.storage.onChanged.addListener(logStorageChange);
```

### Example extensions

* proxy-blocker

**Note :**

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

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.
storage.local
=============

Représente la zone de stockage `local`. Les éléments stockés `localement` sont locaux sur la machine sur laquelle l'extension a été installée.

Le navigateur peut limiter la quantité de données qu'une extension peut stocker dans la zone de stockage locale :

* Chrome limite l'extension à 5 Mo de données à l'aide de cette API à moins qu'elle ne dispose de permission "unlimitedStorage".
* Firefox vous permet de demander la permission "unlimitedStorage" à partir de la version 56. Il ne limite pas encore la quantité de données que votre extension peut stocker, mais commencera à le faire dans une future version : c'est donc une bonne idée de demander la permission "unlimitedStorage" maintenant, si vous avez l'intention de stocker une grande quantité de données.

Lorsque l'extension est désinstallée, son stockage local associé est effacé.

Toujours dans Firefox, vous pouvez empêcher le navigateur d'effacer le stockage local lors de la désinstallation en visitant "about:config" et en définissant les deux préférences de navigateur suivantes sur `true`: "keepUuidOnUninstall" et "keepStorageOnUninstall". Cette fonctionnalité est fournie pour aider les développeurs à tester leurs extensions. Les extensions elles-mêmes ne sont pas en mesure de modifier ces préférences.

Bien que cette API soit similaire à `Window.localStorage` il est recommandé de ne pas utiliser `Window.localStorage` dans le code d'extension. Firefox effacera les données stockées par les extensions à l'aide de l'API localStorage dans divers scénarios où les utilisateurs effacent leur historique de navigation et leurs données pour des raisons de confidentialité, tandis que les données enregistrées avec l'API storage.local seront correctement conservées dans ces scénarios.

Méthodes
--------

L'objet `local` local implémente les méthodes définies sur le type `storage.StorageArea` :

`storage.StorageArea.get()`

Récupère un ou plusieurs éléments de la zone de stockage.

`storage.StorageArea.getBytesInUse()`

Obtient la quantité d'espace de stockage (en octets) utilisée pour stocker un ou plusieurs éléments dans la zone de stockage.

`storage.StorageArea.set()`

Stocke un ou plusieurs éléments dans la zone de stockage. Si l'élément existe déjà, sa valeur sera mise à jour. Lorsque vous définissez une valeur, l'événement `storage.onChanged` se déclenche.

`storage.StorageArea.remove()`

Supprime un ou plusieurs éléments de la zone de stockage..

`storage.StorageArea.clear()`

Supprime tous les éléments de la zone de stockage.

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

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

### Example extensions

* annotate-page
* forget-it
* navigation-stats
* proxy-blocker
* quicknote
* stored-credentials

**Note :**

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

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.
storage.StorageChange
=====================

`StorageChange` est un objet représentant une modification d'une zone de stockage.Type
----

Les objets `StorageChange` contiennent les propriétés suivantes :

`oldValue`Facultatif

L'ancienne valeur de l'article, s'il y avait une ancienne valeur. Cela peut être n'importe quel type de données.

`newValue`Facultatif

La nouvelle valeur de l'article, s'il y a une nouvelle valeur. Cela peut être n'importe quel type de données.

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.storage`. Cette documentation est dérivée de `storage.json` dans le code de Chromium.

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.
StorageArea.remove()
====================

Supprime un ou plusieurs éléments de la zone de stockage.

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

Syntaxe
-------


```js
let removingItem = browser.storage.<storageType>.remove(
  keys             // string, or array of strings
)
```


`<storageType>` sera l'un des types de stockage accessibles en écriture — `storage.sync` ou `storage.local`.

### Paramètres

`keys`

Une chaîne ou un tableau de chaînes représentant la ou les clés de l'élément à supprimer.

### Valeur retournée

Une `Promise` qui sera remplie sans arguments si l'opération a réussi. Si l'opération a échoué, 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
--------

Supprimer un seul élément:


```js
function onRemoved() {
  console.log("OK");
}

function onError(e) {
  console.log(e);
}

let removeKitten = browser.storage.sync.remove("kitten");
removeKitten.then(onRemoved, onError);
```


**Note :**

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

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.
StorageArea.set()
=================

Stocke un ou plusieurs éléments dans la zone de stockage ou met à jour les éléments existants..

Lorsque vous stockez ou mettez à jour une valeur à l'aide de cette API, l'événement `storage.onChanged` se déclenche.

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

Syntaxe
-------


```js
let settingItem = browser.storage.<storageType>.set(
  keys             // object
)
```


`<storageType>` sera l'un des types de stockage accessibles en écriture — `storage.sync` ou `storage.local`.

### Paramètres

`keys`

Un objet contenant une ou plusieurs paires clé / valeur à stocker dans le stockage. Si un élément existe déjà, sa valeur sera mise à jour.

Les valeurs peuvent être des types primitifs tels que des nombres, des booléens et des chaînes) ou des types de `tableau`.

Il n'est généralement pas possible de stocker d'autres types, tels que `Function`, `Date`, `RegExp`, `Set`, `Map`, `ArrayBuffer` et etc. Certains de ces types non pris en charge seront restaurés en tant qu'objet vide, et d'autres entraîneront `set()` à lancer une erreur. Le comportement exact ici est spécifique au navigateur.

### Valeur retournée

Une `Promise` qui sera remplie sans arguments si l'opération a réussi. Si l'opération a échoué, 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
--------


```js
function setItem() {
  console.log("OK");
}

function gotKitten(item) {
  console.log(`${item.kitten.name} has ${item.kitten.eyeCount} eyes`);
}

function gotMonster(item) {
  console.log(`${item.monster.name} has ${item.monster.eyeCount} eyes`);
}

function onError(error) {
  console.log(error);
}

// define 2 objects
var monster = {
  name: "Kraken",
  tentacles: true,
  eyeCount: 10,
};

var kitten = {
  name: "Moggy",
  tentacles: false,
  eyeCount: 2,
};

// store the objects
browser.storage.local.set({ kitten, monster }).then(setItem, onError);

browser.storage.local.get("kitten").then(gotKitten, onError);
browser.storage.local.get("monster").then(gotMonster, onError);
```


**Note :**

Cette API est basée sur l'API Chromium `chrome.storage`. Cette documentation est dérivée de `storage.json` dans le code de Chromium.
StorageArea.clear()
===================

Supprime tous les éléments de la zone de stockage.

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

Syntaxe
-------


```js
var clearing = browser.storage.<storageType>.clear()
```


`<storageType>` sera l'un des types de stockage accessibles en écriture — `storage.sync` or `storage.local`.

### Paramètres

None.

### Valeur retournée

Une `Promise` qui sera remplie sans arguments si l'opération a réussi. Si l'opération a échoué, 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
--------


```js
function onCleared() {
  console.log("OK");
}

function onError(e) {
  console.log(e);
}

var clearStorage = browser.storage.local.clear();
clearStorage.then(onCleared, onError);
```


**Note :**

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

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.
StorageArea.getBytesInUse()
===========================

Obtient la quantité d'espace de stockage, en octets, utilisé un ou plusieurs éléments stockés dans la zone de stockage.

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

Syntaxe
-------


```js
var gettingSpace = browser.storage.<storageType>.getBytesInUse(
  keys                      // null, string, or array of strings
)
```


`<storageType>` sera l'un des types de stockage accessibles en écriture — `storage.sync` ou `storage.local`.

### Paramètres

`keys`

Une clef (chaîne) ou des cléfs (un tableau de chaînes) pour identifier le ou les éléments dont vous voulez récupérer l'espace de stockage. Si un tableau vide est passé, 0 sera renvoyé. Si vous passez à `null` ou `indéfini` ici, la fonction retournera l'espace utilisé par l'ensemble de la zone de stockage.

### Valeur retournée

Une `Promise` qui sera remplie avec un entier, `bytesUsed`, représentant l'espace de stockage utilisé par les objets spécifiés dans les `clefs`. Si l'opération a échoué, 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.

**Note :**

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

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.
events.Event
============

Un objet qui permet l'ajout et la suppression d'écouteurs pour un événement de navigateur.

Type
----

Les valeurs de ce type sont des objets.

Méthodes
--------

`events.Event.addListener()`

Enregistre un rappel d'écouteur d'événement sur un événement.

`events.Event.removeListener()`

Désinscrit un rappel d'écouteur d'événement d'un événement.

`events.Event.hasListener()`

Teste l'état d'enregistrement d'un écouteur.

`events.Event.hasListeners()`

Teste si des écouteurs sont enregistrés pour l'événement.

`events.Event.addRules()`

Enregistre les règles pour gérer les événements.

`events.Event.getRules()`

Renvoie les règles actuellement enregistrées.

`events.Event.removeRules()`

Annule l'inscription des règles actuellement enregistrées.

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.events`. Cette documentation est dérivée de `events.json` dans le code Chromium.

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.
events.Rule
===========

Description d'une règle déclarative pour la gestion des événements.

Type
----

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

`id`Facultatif

`string`. Identifiant facultatif permettant de référencer cette règle.

`tags`Facultatif

`array` of `string`. Les balises peuvent être utilisées pour annoter des règles et effectuer des opérations sur des ensembles de règles.

`conditions`

`array` de `any`. Liste des conditions qui peuvent déclencher les actions.

`actions`

`array` de `any`. Liste des actions qui sont déclenchées si l'une des conditions est remplie.

`priority`Facultatif

`integer`. Priorité optionnelle de cette règle. Par défaut à 100.

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.events`. Cette documentation est dérivée de `events.json` dans le code Chromium.

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.
theme.reset()
=============

Réinitialise tout thème appliqué à l'aide de la méthode `theme.update()`

Notez que cela réinitialisera toujours le thème au thème par défaut d'origine, même si l'utilisateur a sélectionné un thème différent avant que le thème de cette extension ait été appliqué (voir bug 1415267).

Syntaxe
-------


```js
browser.theme.reset( windowsId // integer )
```

### Paramètres

`windowId` Facultatif

`integer`. L'ID d'une fenêtre. Si cela est indiqué, le thème appliqué sur cette fenêtre sera réinitialisé. Sinon le thème sera réinitialisé sur toutes les fenêtres.

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

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

Exemples
--------

Ce code applique un thème, puis le supprime lorsque l'utilisateur clique sur une action du navigateur:


```js
browser.theme.update(themes.night);

browser.browserAction.onClicked.addListener(() => {
  browser.theme.reset();
});
```

### Example extensions

* private-browsing-theme
theme.getCurrent()
==================

Retourne le theme utilisé actuellement sous la forme d'un objet `Theme`. Les arguments disponible dans l'objet couleur sont listés dans les propriétés de la couleur.

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

Syntaxe
-------


```js
var getting = browser.theme.getCurrent(
  windowId, // integer
);
```

### Paramètres

`windowId` Facultatif

`integer`. L'ID d'une fenêtre. Si cela est indiqué, le thème appliqué sur cette fenêtre sera retourné. Sinon le thème appliqué sur la dernière fenêtre active sera retourné.

### Valeur retournée

Un objet `Promise`. L'objet Promise sera résolu avec un objet `theme.Theme` représentant le thème appliqué à la fenêtre spécifiée. Si aucun thème provenant d'une extension a été appliqué, l'objet Promise sera résolu avec un objet vide.

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

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

Exemples
--------

Obtient les propriétés des couleurs `accentcolor` et `toolbar` dans le thème actuel.


```js
function getStyle(themeInfo) {
  if (themeInfo.colors) {
    console.log("accent color : " + themeInfo.colors.accentcolor);
    console.log("toolbar : " + themeInfo.colors.toolbar);
  }
}

async function getCurrentThemeInfo() {
  var themeInfo = await browser.theme.getCurrent();
  getStyle(themeInfo);
}

getCurrentThemeInfo();
```

### Example extensions

* theme-integrated-sidebar
update
======

Met à jour le thème du navigateur en fonction du contenu de l'objet `Theme` donné.

Syntaxe
-------


```js
browser.theme.update(
  windowId, // integer
  theme, // object
);
```

### Paramètres

`windowId` Facultatif

`integer`. L'ID d'une fenêtre. Si cela est prévu, le thème est appliqué uniquement à cette fenêtre. S'il est omis, le thème est appliqué à toutes les fenêtres.


`theme`

`object`. Un objet `Theme` spécifiant des valeurs pour les éléments de l'interface utilisateur que vous voulez modifier

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

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

Exemples
--------

Définit le thème du navigateur pour utiliser un graphique solaire avec une couleur de fond complémentaire:


```js
const suntheme = {
  images: {
    headerURL: "sun.jpg",
  },
  colors: {
    accentcolor: "#CF723F",
    textcolor: "#111",
  },
};

browser.theme.update(suntheme);
```


Définissez le thème uniquement pour la fenêtre actuellement ciblée:


```js
const day = {
  images: {
    headerURL: "sun.jpg",
  },
  colors: {
    accentcolor: "#CF723F",
    textcolor: "#111",
  },
};

browser.menus.create({
  id: "set-theme",
  title: "set theme",
  contexts: ["all"],
});

async function updateThemeForCurrentWindow() {
  let currentWindow = await browser.windows.getLastFocused();
  browser.theme.update(currentWindow.id, day);
}

browser.menus.onClicked.addListener(updateThemeForCurrentWindow);
```

### Example extensions

* dynamic-theme
* private-browsing-theme
Theme
=====

Un objet thème représente la spécification d'un thème.

Type
----

Un object JSON qui prend les mêmes propriétés que la clé du manifest "theme".

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

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