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

Stocke une paire clé / valeur à associer à une fenêtre donnée. Vous pouvez ensuite récupérer cette valeur en utilisant `sessions.getWindowValue`.

Notez que ces données ne seront visibles que par l'extension qui l'a définie, et non par les autres extensions..

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

Syntaxe
-------


```js
var storing = browser.sessions.setWindowValue(
  windowId, // integer
  key, // string
  value, // string or object
);
```

### Paramètres

`windowId`

`integer`. ID de la fenêtre avec laquelle vous souhaitez associer les données.

`key`

`string`. Clé que vous pouvez utiliser ultérieurement pour récupérer cette valeur de données particulière.

`value`

`string` ou `object`. S'il s'agit d'un objet, il est stringified, donc les méthodes d'objet, par exemple, seront omises. Si une fonction est donnée ici, elle sera stockée sous la valeur `null`.

### Valeur retournée

Une `Promise` qui sera résolue sans argument si l'appel a réussi. Si l'appel a échoué (par exemple, parce que l'ID de la fenêtre n'a pas pu être trouvé), 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
--------

Définissez une valeur sur la fenêtre active lorsque l'utilisateur sélectionne un élément de menu. Notez que vous aurez besoin de la permission "menus" pour exécuter cet exemple :


```js
async function setOnActiveWindow() {
  let currentWindow = await browser.windows.getLastFocused();
  await browser.sessions.setWindowValue(currentWindow.id, "my-key", "my-value");
}

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

browser.menus.onClicked.addListener(setOnActiveWindow);
```
sessions.Session
================

L'objet de `Session` représente un onglet ou une fenêtre que l'utilisateur a fermé dans la session de navigation actuelle.

Les sessions sont représentées comme des objets `Tab` si l'onglet a été fermé mais sa fenêtre n'a pas été fermée : par exemple, parce que l'utilisateur a cliqué sur le bouton "fermer l'onglet", et cet onglet n'était pas le seul onglet de sa fenêtre.

Les sessions sont représentées par des objets `Window` si la fenêtre est fermée : parce que l'utilisateur a cliqué sur le bouton "Fermer la fenêtre", ou a fermé le seul onglet ouvert dans une fenêtre.

Notez que les différents navigateurs peuvent avoir une idée différente quand une session est un onglet et quand il s'agit d'une fenêtre. Par exemple :

* Dans Chrome une session est enregistrée comme une fenêtre si l'utilisateur ferme une fenêtre contenant plus d'un onglet. Si l'utilisateur a fermé une fenêtre contenant un seul onglet, ceci est enregistré sous forme d'onglet.
* Dans Firefox, une session est enregistrée comme une fenêtre si l'utilisateur ferme une fenêtre (ou un onglet qui était le dernier onglet de la fenêtre), et un onglet si l'utilisateur ferme un onglet qui n'était pas le dernier onglet de sa fenêtre.
Type
----

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

`lastModified`

`number`. L'heure où l'onglet ou la fenêtre a été fermé, en millisecondes depuis l'époque.

`tab`Facultatif

`object`. Si l'objet représente un onglet fermé, cette propriété est présente et sera un objet `tabs.Tab`. Cela contiendra `url`, `titre`, et `favIconUrl` uniquement si l'extension possède la permission "tabs".

`window`Facultatif

`object`. Si l'objet représente une fenêtre fermée, cette propriété est présente et sera un objet `windows.Window`.

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.sessions`.

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.
sessions.getTabValue()
======================

Récupère une valeur précédemment stockée par un appel à `sessions.setTabValue`.

Vous pouvez récupérer une valeur d'un onglet même au cours d'un cycle de fermeture / restauration: si vous définissez une valeur, l'utilisateur ferme l'onglet, puis restaure l'onglet à l'aide de la fonction "restaurer l'onglet" du navigateur (par exemple, en appuyant sur Control+Shift+T), then you will be able to retrieve the value from the restored tab. vous pourrez alors récupérer la valeur de l'onglet restauré. Notez cependant qu'un onglet restauré n'obtient pas le même ID que l'original, donc l'ID que vous passez dans `getTabValue()` sera différent de l'ID que vous avez passé dans `setTabValue()`, même s'ils font tous deux référence au même onglet.

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

Syntaxe
-------


```js
var retrieving = browser.sessions.getTabValue(
  tabId, // integer
  key, // string
);
```

### Paramètres

`tabId`

`integer`. ID de l'onglet dont vous essayez de récupérer les données.

`key`

`string`. Clé identifiant la valeur particulière à récupérer. Cela doit correspondre à la clé précédemment donnée dans `sessions.setTabValue`.

### Valeur retournée

Une `Promise` qui sera résolue avec la valeur si elle existe, ou `undefined`. Si elle n'existe pas. Si l'appel a échoué (par exemple, parce que l'ID de l'onglet n'a pas pu être trouvé), 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
--------

Consignez la valeur de "my-key" pour tous les nouveaux onglets créés (cela inclura tous les onglets qui ont été restaurés) :


```js
function onGetResolved(r) {
  console.log(`success: ${r}`);
}

function onGetRejected(e) {
  console.log(`error: ${e}`);
}

browser.tabs.onCreated.addListener((tab) => {
  browser.sessions
    .getTabValue(tab.id, "my-key")
    .then(onGetResolved, onGetRejected);
});
```

### Example extensions

* session-state
sessions.forgetClosedTab()
==========================

Supprime un onglet fermé de la liste des onglets récemment fermés du navigateur.Notez que les sites visités par cet onglet ne sont pas supprimés de l'historique du navigateur. Utilisez les API `browsingData` oo `history` pour supprimer l'historique.
C'est une fonction asynchrone qui renvoie une `Promise`.

Syntaxe
-------


```js
var forgettingTab = browser.sessions.forgetClosedTab(
  windowId, // integer
  sessionId, // string
);
```

### Paramètres

`windowId`

`Integer`. L'ID de la fenêtre qui héberge l'onglet que vous voulez oublier.

`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);
```
sessions.onChanged
==================

Mise en place lorsque une liste d'onglets fermes ou de fenêtre changes.

Syntaxe
-------


```js
browser.sessions.onChanged.addListener(listener);
browser.sessions.onChanged.removeListener(listener);
browser.sessions.onChanged.hasListener(listener);
```


Les événements ont trois fonctions :

`addListener(callback)`

Ajoute un auditeur à un événement.

`removeListener(listener)`

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

`hasListener(listener)`

Vérifiez si l'auditeur est enregistré pour cet événement. Renvoie Vrai s'il écoute. Sinon Faux.

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

### Paramètres

`callback`

Fonction qui sera appelée lors de l'événement. Il ne passe aucun paramètre.

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

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

Exemples
--------

Cette extension écoute `onChanged`, puis restaure immédiatement la dernière session fermée, ce qui rend impossible de fermer les fenêtres ou les onglets :


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

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

function restoreMostRecent() {
  var gettingSessions = browser.sessions.getRecentlyClosed({
    maxResults: 1,
  });
  gettingSessions.then(restoreSession, onError);
}

browser.sessions.onChanged.addListener(restoreMostRecent);
```


**Note :**

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

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.
sessions.MAX\_SESSION\_RESULTS
==============================

Le nombre maximum de sessions qui seront retournées par un appel à `sessions.getRecentlyClosed()`. Il est en lecture seule pour le code des WebExtensions, et défini à 25.

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.sessions`.

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.
sessions.getRecentlyClosed()
============================

Renvoie un ensemble d'objets `Session`, représentant des fenêtres et des onglets qui ont été fermés dans la session du navigation actuelle (c'est à dire l'heure écoulée depuis le démarrage du navigateur).

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

Syntaxe
-------


```js
var gettingSessions = browser.sessions.getRecentlyClosed(
  filter, // optional object
);
```

### Paramètres

`filter`Facultatif

`object`. Un objet `sessions.Filter` qui limite l'ensemble des sessions renvoyées.

### Valeur retournée

Une `Promise`. Cela sera rempli avec un ensemble d'objets `Session`, un pour chacun des derniers onglets fermés ou des fenêtres dans la session de navigation actuelle, jusqu'à `sessions.MAX_SESSION_RESULTS` ou le nombre inclus dans l'argument du filtre, le plus petit qui soit. Le tableau est donné à l'inverse de l'ordre dans lequel les onglets ou fenêtres ont été fermés, de sorte que le plus récemment fermé sera à l'index 0.

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

Le code restaure la session la plus récemment fermée, qu'il s'agisse d'un onglet ou d'une fenêtre :


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

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

browser.browserAction.onClicked.addListener(function () {
  var gettingSessions = browser.sessions.getRecentlyClosed({
    maxResults: 1,
  });
  gettingSessions.then(restoreMostRecent, onError);
});
```


**Note :**

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

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.
sessions.Filter
===============

L'objet `Filter` permet de restreindre le nombre d'objets `Session` retournés par un appel à `sessions.getRecentlyClosed()`.

Type
----

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

`maxResults`Facultatif

`number`. Le nombre maximal de résultats à retourner.

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

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

Exemples
--------

**Note :**

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

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.
sessions.restore()
==================

Restaure un onglet ou une fenêtre fermée. La restauration ne réouvre pas seulement l'onglet ou la fenêtre : elle rétablit également l'historique de navigation de l'onglet afin que les boutons arrière/avant fonctionnent. La restauration d'une fenêtre restaurera tous les onglets que la fenêtre contenait lors de sa fermeture.

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

Syntaxe
-------


```js
var restoringSession = browser.sessions.restore(
  sessionId, // string
);
```

### Paramètres

`sessionId`

`string`. Une chaîne contenant l'ID de session pour la fenêtre ou l'onglet à restaurer. Cela se trouve dans la propriété `sessionId` de l'objet `Tab` ou `Window` dans `Session` retourné de `sessions.getRecentlyClosed()`.

### Valeur renvoyée

Une `Promise`. Cela sera rempli avec un objet `Session` représentant la session qui a été restaurée.

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

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

Exemples
--------

Cela restaure la session fermée la plus récente, qu'il s'agisse d'une fenêtre ou d'un onglet :


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

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

browser.browserAction.onClicked.addListener(function () {
  var gettingSessions = browser.sessions.getRecentlyClosed({
    maxResults: 1,
  });
  gettingSessions.then(restoreMostRecent, onError);
});
```


**Note :**

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

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.
sessions.removeTabValue()
=========================

Supprime une valeur précédemment stockée par un appel à `sessions.setTabValue`.

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

Syntaxe
-------


```js
var removing = browser.sessions.removeTabValue(
  tabId, // integer
  key, // string
);
```

### Paramètres

`tabId`

`integer`. ID de l'onglet dont vous essayez de supprimer les données.

`key`

`string`. Clé identifiant la valeur particulière à supprimer. Cela doit correspondre à la clé précédemment donnée dans `sessions.setTabValue`.

### Valeur retournée

Une `Promise` qui ne sera résolue aucun argument si l'élément a été supprimé avec succès. Si l'appel a échoué (par exemple, parce que l'ID de l'onglet n'a pas pu être trouvé), 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 ajoute deux éléments de menu contextuel: l'un stocke une valeur associée à l'onglet en cours, l'autre le supprime :


```js
async function setOnActiveTab() {
  let tabArray = await browser.tabs.query({
    currentWindow: true,
    active: true,
  });
  let tabId = tabArray[0].id;
  await browser.sessions.setTabValue(tabId, "my-key", "my-value");
}

async function removeFromActiveTab() {
  let tabArray = await browser.tabs.query({
    currentWindow: true,
    active: true,
  });
  let tabId = tabArray[0].id;
  await browser.sessions.removeTabValue(tabId, "my-key");
}

browser.menus.create({
  id: "add-my-item",
  title: "add item",
  contexts: ["all"],
});

browser.menus.create({
  id: "remove-my-item",
  title: "remove item",
  contexts: ["all"],
});

browser.menus.onClicked.addListener((info) => {
  if (info.menuItemId === "add-my-item") {
    setOnActiveTab();
  } else {
    removeFromActiveTab();
  }
});
```
sessions.removeWindowValue()
============================

Supprime une valeur précédemment stockée par un appel à `sessions.setWindowValue`.

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

Syntaxe
-------


```js
var removing = browser.sessions.removeWindowValue(
  windowId, // integer
  key, // string
);
```

### Paramètres

`windowId`

`integer`. ID de la fenêtre dont vous essayez de supprimer les données.

`key`

`string`. lé identifiant la valeur particulière à supprimer. Cela doit correspondre à la clé précédemment donnée dans `sessions.setWindowValue`.

### Valeur retournée

Une `Promise` qui ne sera résolue aucun argument si l'élément a été supprimé avec succès. Si l'appel a échoué (par exemple, parce que l'ID de la fenêtre n'a pas pu être trouvé), 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 ajoute deux éléments de menu contextuel: l'un stocke une valeur associée à la fenêtre courante, l'autre la supprime :


```js
async function setOnActiveWindow() {
  let currentWindow = await browser.windows.getLastFocused();
  await browser.sessions.setWindowValue(currentWindow.id, "my-key", "my-value");
}

async function removeFromActiveWindow() {
  let currentWindow = await browser.windows.getLastFocused();
  await browser.sessions.removeWindowValue(currentWindow.id, "my-key");
}

browser.menus.create({
  id: "add-my-item",
  title: "add item",
  contexts: ["all"],
});

browser.menus.create({
  id: "remove-my-item",
  title: "remove item",
  contexts: ["all"],
});

browser.menus.onClicked.addListener((info) => {
  if (info.menuItemId === "add-my-item") {
    setOnActiveWindow();
  } else {
    removeFromActiveWindow();
  }
});
```
sessions.getWindowValue()
=========================

Récupère une valeur précédemment stockée par un appel à `sessions.setWindowValue`.

Vous pouvez récupérer une valeur d'une fenêtre même sur un cycle de fermeture / restauration : si vous définissez une valeur, l'utilisateur ferme la fenêtre, puis restaure la fenêtre à l'aide de la fonction "restaurer la fenêtre" du navigateur (par exemple, en appuyant sur Control+Shift+N),vous pourrez récupérer la valeur de la fenêtre restaurée. otez cependant qu'une fenêtre restaurée n'obtient pas le même ID que l'original, donc l'ID que vous passez dans `getWindowValue()` sera différent de l'ID que vous avez passé dans `setWindowValue()`, même s'ils se réfèrent tous les deux à la même fenêtre.

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

Syntaxe
-------


```js
var retrieving = browser.sessions.getWindowValue(
  windowId, // integer
  key, // string
);
```

### Paramètres

`windowId`

`integer`. ID de la fenêtre dont vous essayez de récupérer les données.

`key`

`string`. Clé identifiant la valeur particulière à récupérer. Cela doit correspondre à la clé précédemment donnée dans `sessions.setWindowValue`.

### Valeure retournée

Une `Promise` qui sera résolue avec la valeur si elle existe, ou `undefined` si elle n'existe pas. Si l'appel a échoué (par exemple, parce que l'ID de la fenêtre n'a pas pu être trouvé), 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
--------

Consignez la valeur de "my-key" pour toutes les fenêtres nouvellement créées (cela inclura toutes les fenêtres qui ont été restaurées) :


```js
function onGetResolved(r) {
  console.log(`success: ${r}`);
}

function onGetRejected(e) {
  console.log(`error: ${e}`);
}

browser.windows.onCreated.addListener((window) => {
  browser.sessions
    .getWindowValue(window.id, "my-key")
    .then(onGetResolved, onGetRejected);
});
```
sessions.setTabValue()
======================

Stocke une paire clé / valeur à associer à un onglet donné. Vous pouvez ensuite récupérer cette valeur en utilisant `sessions.getTabValue`.

Notez que ces données ne seront visibles que par l'extension qui l'a définie, et non par les autres extensions.

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

Syntaxe
-------


```js
var storing = browser.sessions.setTabValue(
  tabId, // integer
  key, // string
  value, // string or object
);
```

### Paramètres

`tabId`

`integer`. ID de l'onglet avec lequel vous souhaitez associer les données.

`key`

`string`. Clé que vous pouvez utiliser ultérieurement pour récupérer cette valeur de données particulière.

`value`

`string` ou `object`. S'il s'agit d'un objet, il est stringified, donc les méthodes d'objet, par exemple, seront omises. Si une fonction est donnée ici, elle sera stockée sous la forme `null`.

### Valeur retournée

Une `Promise` qui sera résolue sans argument si l'appel a réussi. Si l'appel a échoué (par exemple, parce que l'ID de l'onglet n'a pas pu être trouvé), 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
--------

Définissez une valeur sur l'onglet actif lorsque l'utilisateur sélectionne un élément de menu. Notez que vous aurez besoin de la permission "menus" pour exécuter cet exemple :


```js
async function setOnActiveTab() {
  let tabArray = await browser.tabs.query({
    currentWindow: true,
    active: true,
  });
  let tabId = tabArray[0].id;
  await browser.sessions.setTabValue(tabId, "my-key", "my-value");
}

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

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

### Example extensions

* session-state