recursal/MDN huggingface dataset:
tabs.duplicate()
================

Duplique un onglet dont l'identifiant est donné.

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

Syntaxe
-------


```js
let duplicating = browser.tabs.duplicate(
  tabId, // entier
  duplicateProperties, // objet optionnel
);
```

### Paramètres

`tabId`

`integer`. L'identifiant de l'onglet à dupliquer.

`duplicateProperties` Optionnel

`object`. Un objet décrivant la façon dont l'onglet est dupliqué. Il contient les propriétés suivantes :

`index` Optionnel

`integer`. La position du nouvel onglet dans la fenêtre. La valeur est restreinte à l'intervalle entre zéro et le nombre d'onglets dans la fenêtre.

`active` Optionnel

`boolean`. Si l'onglet devient l'onglet actif dans la fenêtre. Cela ne change pas l'état du focus pour la fenêtre. `true` par défaut.


### Valeur de retour

Une promesse (`Promise`) dont la valeur de résolution sera un objet `tabs.Tab` contenant des détails sur l'onglet dupliqué. L'objet `Tab` contiendra les propriétés `url`, `title` et `favIconUrl` uniquement si l'extension dispose de la permission `"tabs"` ou lorsque l'hôte correspond à un hôte ciblé dans les permissions. Si une erreur se produit, la promesse sera rejetée avec un message d'erreur.

**Note :** À partir de Firefox 68, la promesse renvoyée par `browser.tabs.duplicate()` se résout dès que l'onglet a été dupliqué. Auparavant, la promesse n'était résolue qu'une fois l'onglet entièrement chargé.

Exemples
--------

Duplique le premier onglet, puis affiche l'identifiant de l'onglet nouvellement créé :


```js
function onDuplicated(tabInfo) {
  console.log(tabInfo.id);
}

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

// Duplique le premier onglet du tableau
function duplicateFirstTab(tabs) {
  console.log(tabs);
  if (tabs.length > 0) {
    let duplicating = browser.tabs.duplicate(tabs[0].id);
    duplicating.then(onDuplicated, onError);
  }
}

// On récupère tous les onglets ouverts
let querying = browser.tabs.query({});
querying.then(duplicateFirstTab, onError);
```

### Exemple d'extensions

* tabs-tabs-tabs
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.removeCSS()
================

Supprime d'une page CSS précédemment injectée par un appel à `tabs.insertCSS()`.

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

Syntaxe
-------


```js
var removing = browser.tabs.removeCSS(
  tabId, // optional integer
  details, // object
);
```

### Paramètres

`tabId` Facultatif

`integer`. L'ID de l'onglet à partir duquel supprimer le CSS. Par défaut à l'onglet actif de la fenêtre en cours.

`details`

Un objet décrivant le CSS à retirer de la page. Il contient les propriétés suivantes :

`allFrames`Facultatif

`boolean`. si `true`, le code sera supprimé de toutes les images de la page en cours. si c'est `false`, le code est seulement retiré du cadre supérieur. Par défaut à `false`.

`code`Facultatif

`string`. CSS à supprimer, en tant que chaîne de texte. Cela doit correspondre exactement à une chaîne CSS précédemment insérée dans la page en utilisant `tabs.insertCSS()`.

`cssOrigin`Facultatif

`string`. Cela peut prendre l'une des deux valeurs suivantes : "user", pour CSS ajouté en tant que feuille de style utilisateur, ou "author" pour CSS ajouté en tant que feuille de style auteur. Si cette option a été définie précédemment par `tabs.insertCSS()`, elle doit correspondre exactement.

`file`Facultatif

`string`. Chemin d'accès à un fichier contenant le CSS à supprimer. Cela doit correspondre exactement à un fichier CSS préalablement inséré dans la page en utilisant `tabs.insertCSS()`.

`frameId`Facultatif

`integer`. Le cadre à partir duquel supprimer le CSS. La valeur par défaut est `0` (l'image de niveau supérieur).

`matchAboutBlank`Facultatif

`boolean`. si `true`, le CSS sera supprimé des cadres "about:blank" et "about:srcdoc" intégrés si votre extension a accès à leur document parent. Par défaut à `false`.


### Valeur retournée

Une `Promise` qui sera remplie sans arguments lorsque tous les CSS ont été supprimés. Si une erreur se produit, la promesse sera rejetée avec un message d'erreur.

Exemples
--------

Cet exemple ajoute du code CSS en utilisant `tabs.insertCSS`, puis le supprime à nouveau lorsque l'utilisateur clique sur une action du navigateur :


```js
var css = "body { border: 20px dotted pink; }";

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

var insertingCSS = browser.tabs.insertCSS(2, { code: css });
insertingCSS.then(null, onError);

browser.browserAction.onClicked.addListener(() => {
  var removing = browser.tabs.removeCSS(2, { code: css });
  removing.then(null, onError);
});
```

### Example extensions

* apply-css
* beastify
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.
tabs.printPreview()
===================

Ouvre l'aperçu avant impression pour l'onglet actif.C'est une fonction asynchrone qui renvoie une `Promise`.Une extension peut détecter lorsque l'aperçu d'impression a été fermé en écoutant l'événement afterprint :

```js
window.addEventListener("afterprint", resumeFunction, false);
```

Syntaxe
-------


```js
var openingPreview = browser.tabs.printPreview();
```

### Paramètres

None.

### Valeur retournée

Une `Promise` qui sera remplie sans argument lorsque la page d'aperçu est ouverte.

Exemples
--------

Dans cet exemple, un script d'arrière-plan écoute un clic sur une action de navigateur, puis ouvre l'aperçu avant impression pour l'onglet actuellement actif :


```js
browser.browserAction.onClicked.addListener(() => {
  browser.tabs.printPreview().then(() => {
    console.log("Entered print preview");
  });
});
```

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

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
tabs.highlight()
================

Met en évidence (sélectionné) un ou plusieurs onglets. Les onglets sont spécifiés à l'aide d'un identifiant de fenêtre et d'une plage d'indices de tabulation.
C'est une fonction asynchrone qui renvoie une `Promise`.

Syntaxe
-------


```js
var highlighting = browser.tabs.highlight(
  highlightInfo, // object
);
```

### Paramètres

`highlightInfo`

`object`.

`windowId`Facultatif

`integer`. ID de la fenêtre contenant les onglets.

`populate`Facultatif

`boolean`. Par défaut la valeur est `true`. S'il est défini sur `false`, l'objet `windows.Window` n'aura pas de propriété `tabs` contenant une liste d'objets `tabs.Tab` représentant les onglets ouverts dans la fenêtre.

**Note :** Remplir la fenêtre (le comportement par défaut) peut être une opération coûteuse s'il y a beaucoup d'onglets. Pour de meilleures performances, il est recommandé de définir manuellement configuré `populate` à `false` si vous n'avez pas besoin des détails de l'onglet.

`tabs`

`array` de valeurs entières spécifiant un ou plusieurs onglets à mettre en évidence. Les onglets surlignés précédemment qui ne sont pas inclus dans les `onglets` cesseront d'être surlignés. Le premier onglet des `onglets` devient actif.


### Valeur retournée

Une `Promise` qui sera remplie avec un objet `windows.Window` contenant des détails sur la fenêtre dont les onglets ont été mis en surbrillance. Si la fenêtre n'a pas pu être trouvée ou qu'une autre 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.

**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.
tabs.getZoomSettings()
======================

Obtient les paramètres de zoom actuels pour un onglet spécifié.

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

Syntaxe
-------


```js
var gettingZoomSettings = browser.tabs.getZoomSettings(
  tabId, // optional integer
);
```

### Paramètres

`tabId`Facultatif

`integer`. L'ID de l'onglet pour obtenir les paramètres de zoom actuels. Par défaut à l'onglet actif de la fenêtre en cours.

### Valeur retournée

Une `Promise` qui sera remplie avec un objet `tabs.ZoomSettings` représentant les paramètres de zoom actuels de l'onglet. Si l'onglet n'a pas pu être trouvé ou qu'une autre erreur se produit, la promesse sera rejetée avec un message d'erreur.

Exemples
--------

Obtenez les paramètres de zoom pour l'onglet en cours :


```js
function onGot(settings) {
  console.log(settings);
}

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

var gettingZoomSettings = browser.tabs.getZoomSettings();
gettingZoomSettings.then(onGot, 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.
tabs.TabStatus
==============

Indique si l'onglet a terminé le chargement.

Type
----

Les valeurs de ce type sont des chaînes. Les valeurs possibles sont : `"loading"` et `"complete"`.

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

Naviguer à la page précédente dans l'historique de l'onglet, si disponible.

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

Syntaxe
-------


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

### Paramètres

`tabId`Facultatif

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

`callback`Facultatif

`function`. Lorsque la navigation sur la page se termine, cette fonction est appelée sans paramètres.

### Valeur retournée

Une `Promise` qui est tenue lorsque la navigation sur la page se termine.

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

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

Exemples
--------

Retournez à la page précédente dans l'onglet en cours :


```js
function onGoBack() {
  console.log("Gone back");
}

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

var goingBack = browser.tabs.goBack();
goingBack.then(onGoBack, onError);
```


**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 Chromium.

Les données de compatibilité Microsoft Edge sont fournies par Microsoft Corporation et sont incluses ici sous la licence américaine Creative Commons Attribution 3.0.
tabs.getSelected()
==================

**Attention :** Cette méthode est dépréciée. utilisez `tabs.query({active: true})` à la place.

Obtient l'onglet sélectionné dans la fenêtre spécifiée

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

Syntaxe
-------


```js
var gettingSelected = browser.tabs.getSelected(
  windowId, // optional integer
);
```

### Paramètres

`windowId`Facultatif

`integer`. Par défaut à la fenêtre actuelle.

### Valeur retournée

Une `Promise` qui sera remplie avec un objet `tabs.Tab` contenant des informations sur l'onglet sélectionné. Si l'onglet n'a pas pu être trouvé ou qu'une autre 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.

**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.
tabs.ZoomSettingsMode
=====================

Définit comment les modifications de zoom sont gérées. Les extensions peuvent transférer cette valeur dans `tabs.setZoomSettings()` pour contrôler la façon dont le navigateur gère les tentatives de modification des paramètres de zoom pour un onglet. Par défaut à "automatique".

Type
----

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

"automatic"

Les modifications de zoom sont gérées normalement par le navigateur.

"disabled"

Désactive tout zoom dans l'onglet. L'onglet revient au niveau de zoom par défaut, et toutes les modifications de zoom tentées seront ignorées.

"manual"

L'extension gère elle-même les changements de zoom, en écoutant l'événement `tabs.onZoomChange` et en redimensionnant la page en conséquence. Ce mode ne prend pas en charge le zoom `per-origin` : il ignore la `portée` `zoom setting` et utilise toujours la fonction `per-tab`.

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.onHighlighted
==================

Lancé lorsque l'ensemble des onglets en surbrillance dans une fenêtre change

Notez qu'avant la version 63, Firefox n'avait pas le concept de mettre en évidence plusieurs onglets, donc cet événement n'était qu'un alias pour `tabs.onActivated`.

Syntaxe
-------


```js
browser.tabs.onHighlighted.addListener(listener);
browser.tabs.onHighlighted.removeListener(listener);
browser.tabs.onHighlighted.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` de l'écouteur 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 :

`highlightInfo`

`object`. ID(s) des onglets en surbrillance, et ID de leur fenêtre.


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

### highlightInfo

`windowId`

`integer`. ID de la fenêtre dont les onglets ont changé.

`tabIds`

`array` d'`integer`. Identifiants des onglets en surbrillance dans la fenêtre

Exemples
--------

Ecoutez les événements en surbrillance et consignez les ID des onglets mis en surbrillance


```js
function handleHighlighted(highlightInfo) {
  console.log("Highlighted tabs: " + highlightInfo.tabIds);
}

browser.tabs.onHighlighted.addListener(handleHighlighted);
```

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.TAB\_ID\_NONE
==================

Une valeur d'ID spéciale donnée aux onglets qui ne sont pas des onglets du navigateur (par exemple, des onglets dans les fenêtres devtools).

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.onCreated
==============

Lancé lorsqu'un onglet est créé.

Notez que l'URL de l'onglet peut ne pas avoir sa valeur finale au moment où cet événement a été déclenché. En particulier, Firefox ouvre un nouvel onglet avec l'URL "about:blank" avant de charger la nouvelle page. Vous pouvez écouter les événements `tabs.onUpdated` pour être averti lorsqu'une URL est définie.

Syntaxe
-------


```js
browser.tabs.onCreated.addListener(callback);
browser.tabs.onCreated.removeListener(listener);
browser.tabs.onCreated.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 de `listener` est l'écouteur à supprimer.

`hasListener(listener)`

Vérifiez si le `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 :

`tab`

`tabs.Tab`. Détails de l'onglet qui a été créé.


Examples
--------

Consignez les ID des nouveaux onglets créés :


```js
function handleCreated(tab) {
  console.log(tab.id);
}

browser.tabs.onCreated.addListener(handleCreated);
```

### Example extensions

* session-state
* tabs-tabs-tabs
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.print()
============

Appelez cette fonction pour imprimer le contenu de l'onglet actif. Si cette fonction est appelée, l'utilisateur recevra la boîte de dialogue d'impression de la plate-forme sous-jacente et aura la possibilité de modifier les paramètres d'impression, puis d'imprimer l'onglet actuellement actif.

Syntaxe
-------


```js
browser.tabs.print();
```

### Paramètres

None.

### Valeur retournée

None.

Exemples
--------

Dans cet exemple, un script d'arrière-plan écoute un clic sur une action navigateur, puis tente d'imprimer l'onglet actuellement actif :


```js
browser.browserAction.onClicked.addListener(() => {
  browser.tabs.print();
});
```

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

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
tabs.show()
===========

Affiche un ou plusieurs onglets précédemment masqués par un appel à `tabs.hide`.

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

Syntaxe
-------


```js
var showing = browser.tabs.show(
  tabIds, // integer or integer array
);
```

### Paramètres

`tabIds`

`integer` or `array` of `integer`. Les ID de l'onglet ou des onglets à afficher.

### Valeur retournée

Une `Promise` qui sera accomplie sans arguments. Si une erreur se produit, la promesse sera rejetée avec un message d'erreur.

Exemples
--------

Afficher un seul onglet :


```js
function onShown() {
  console.log(`Shown`);
}

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

browser.tabs.show(2).then(onShown, onError);
```


Afficher plusieurs onglets :


```js
function onShown() {
  console.log(`Shown`);
}

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

browser.tabs.show([15, 14, 1]).then(onShown, onError);
```

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

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

Lancé lorsqu'un onglet est détaché d'une fenêtre, par exemple parce qu'il est déplacé entre des fenêtres.

Syntaxe
-------


```js
browser.tabs.onDetached.addListener(listener);
browser.tabs.onDetached.removeListener(listener);
browser.tabs.onDetached.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 de `listener` est l'écouteur à supprimer.

`hasListener(listener)`

Vérifiez si `l'écouteur` est enregistré pour cet événemen. 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`. ID de l'onglet qui a été détaché.


`detachInfo`

`object`. ID de la fenêtre précédente et index de l'onglet à l'intérieur.


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

### detachInfo

`oldWindowId`

`integer`. ID de la fenêtre précédente

`oldPosition`

`integer`. Position de l'index que l'onglet avait dans l'ancienne fenêtre.

Exemples
--------

Ecoutez les événements de détachement et consignez les informations :


```js
function handleDetached(tabId, detachInfo) {
  console.log("Tab: " + tabId + " moved");
  console.log("Old window: " + detachInfo.oldWindowId);
  console.log("Old index: " + detachInfo.oldPosition);
}

browser.tabs.onDetached.addListener(handleDetached);
```

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.