recursal/MDN huggingface dataset:
cookies.OnChangedCause
======================

Le type `OnChangedCause` de l'API `cookies` représente la raison pour laquelle un cookie a été modifié.

Type
----

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

`evicted`

Un cookie a été automatiquement supprimé en raison d'un nettoyage de mémoire.

`expired`

Un cookie a été automatiquement supprimé en raison de l'expiration.

`explicit`

Un cookie a été inséré ou supprimé via un appel explicite à `cookies.remove()`.

`expired_overwrite`

Un cookie a été remplacé par un cookie dont la date d'expiration est déjà expirée.

`overwrite`

Un appel à `cookies.set()` a remplacé ce cookie par un autre.

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

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

Exemples
--------

Vous pouvez écouter l'événement `cookies.onChanged` pour être averti lorsque les cookies changent. L'écouteur reçoit un objet `changeInfo` qui contient une propriété `cause`, dont la valeur est une chaîne `OnChangeCaused` :


```js
browser.cookies.onChanged.addListener(function (changeInfo) {
  console.log(
    "Cookie changed: " +
      "\n \* Cookie: " +
      JSON.stringify(changeInfo.cookie) +
      "\n \* Cause: " +
      changeInfo.cause +
      "\n \* Removed: " +
      changeInfo.removed,
  );
});
```


**Note :**

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

Le type `Cookie` de l'API `cookies` représente des informations sur un cookie HTTP.

Type
----

Les valeurs de ce type sont des objets, qui peuvent contenir les propriétés suivantes :

`domain`

Une `chaîne` représentant le domaine auquel appartient le cookie (par exemple "www.google.com", "example.com").

`expirationDate`Facultatif

Un `number` représentant la date d'expiration du cookie en tant que nombre de secondes depuis l'époque UNIX. Non fourni pour les cookies de session.

`firstPartyDomain`

Une `chaîne` représentant le domaine de la première partie associé au cookie. Cela sera une chaine vide si le cookie a été défini alors que l'isolation de la première partie est désactivée. Voir Isolement de la première partie.

`hostOnly`

Un `booléen`, `true` si le cookie est un cookie hôte uniquement (c'est à dire que l'hôte de la requête doit correspondre exactement au domaine du cookie), ou `false` dans la case contraire.

`httpOnly`

Un `booléen`, `true` si le cookie est marqué comme HttpOnly (c'est à dire le cookie est inaccessible aux scripts côté client), ou `false` dans le cas contraire.

`name`

Une `chaîne` représentant le nom du cookie.

`path`

Une `chaîne` représentant le chemin du cookie.

`secure`

Un `booléen`, true si le cookie est marqué comme sécurisé (c'est à dire que si sa portée est limitée aux canaux sécurisés, généralement HTTPS), ou `false` dans le cas contraire.

`session`

Un `boolean`, `true` si le cookie est un cookie de session, ou `false` s'il s'agit d'un cookie persistant avec une date expiration.

`sameSite`

Une valeur `cookies.SameSiteStatus` qui indique l'état SameSite du cookie.

`storeId`

Une `chaine` représentant l'ID du cookie store contenant ce cookie, tel que fourni par `cookies.getAllCookieStores()`.

`value`

Une `chaîne` représentant la valeur du cookie.

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

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

Exemples
--------

La plupart des méthodes de l'API cookies impliquent qu'un objet `Cookie` soit utilisé en tant que paramètre d'entrée ou en tant que partie de la valeur retournée. Par exemple, un appel à `cookies.getAll()` retourne un tableau d'objets `Cookie`.

Dans l'exemple ci-dessous, nous avons demandé tous les cookies, puis enregistré quelque-unes des valeurs de chacun des objets `Cookie` :


```js
function logCookies(cookies) {
  for (cookie of cookies) {
    console.log(`Domain: ${cookie.domain}`);
    console.log(`Name: ${cookie.name}`);
    console.log(`Value: ${cookie.value}`);
    console.log(`Persistent: ${!cookie.session}`);
  }
}

var gettingAll = browser.cookies.getAll({});
gettingAll.then(logCookies);
```


**Note :**

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

Le type `CookieStore` de l'API `cookies` représente un cookie store dans le navigateur.

Les fenperes dans les différents mode de navigations peut utiliser différents magasins de cookies — Une fenêtre de navigation privée/ mode navigation privée, par exemple utilisera un magasin de cookies séparé d'une fenêtre non-privée / privée.

Type
----

Les valeurs de ce type sont des objets, qui peuvent contenir les propriétés suivantes :

`id`

Une `chaîne` représentant l'identification unique pour le cookie store.

`incognito`

Une valeur booléenne qui indique s'il s'agit d'un magasin de cookies incognito.

`tabIds`

Un `tableau` d'`entiers`, qui identifie tous les onglets du navigateur qui partagent ce cookie store.

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

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

Exemples
--------

Dans l'extrait suivant, la méthode `cookies.getAllCookieStores()` permet de récupérer tous les magasins de cookies actuellement disponibles dans le navigateur et d'afficher chaque ID de cookie, ainsi que les onglets qui se partagent le cookie store.


```js
function logStores(cookieStores) {
  for (store of cookieStores) {
    console.log(`Cookie store: ${store.id}\n Tab IDs: ${store.tabIds}`);
  }
}

var getting = browser.cookies.getAllCookieStores();
getting.then(logStores);
```


L'extrait de code suivant obtient tous les cookies stockés et enregistre ensuite le nombre total stocké et combien de ces cookies sont incognito.


```js
browser.cookies.getAllCookieStores().then((stores) => {
  var incognitoStores = stores.map((store) => store.incognito);
  console.log(
    `Of ${stores.length} cookie stores, ${incognitoStores.length} are incognito.`,
  );
});
```


**Note :**

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

La méthode **`get()`** de l'API `cookies` récupère les informations d'un seul cookie, par son nom et son URL.

Si plus d'un cookie portant le même nom existent pour une URL donnée, celui contenant le chemin le plus long sera retourné. Pour les cookies ayant la même longueur de chemin, le plus ancien cookie sera retourné. Si aucun cookie ne correspond alors `null` est retourné.

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

Syntaxe
-------


```js
var getting = browser.cookies.get(
  details, // object
);
```

### Paramètres

`details`

Un `objet` contenant les informations pouvant être utilisées pour récupérer un cookie. Il peut inclure les propriétés suivantes :

`firstPartyDomain`Facultatif

Une `chaîne` représentant le domaine de première partie avec lequel le cookie à récupérer est associé. Cette propriété doit être fournie si l'isolation de la première partie est activée sur le navigateur. Voir Isolement de la première partie.

`name`

Une `chaîne` représentant le nom du cookie à récupérer.

`storeId`Facultatif

Une `chaîne` représentant l'ID du `cookie store` dans lequel rechercher le cookie (tel que renvoyé par `cookies.getAllCookieStores()`). Par défault, le cookie store du contexte d'exécution actuel sera utilisé.

`url`

Une `chaîne` représentant l'URL avec laquelle le cookie à récupérer est associé. Cet argument peut être une URL complète, auquel cas toute donnée suivant le chemin d'URL (par exemple la chaîne de requête) est simplement ignorée. Si les permissions d'hôte pour cette URL ne sont pas spécifiées dans le fichier manifeste de l'extension, l'appel de l'API échouera.


### Valeur retournée

Une `Promise` qui sera remplie avec un objet `Cookie` contenant des détails sur le cookie, ou `null` si le cookie n'a pas été trouvé.

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

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

Exemples
--------

Cet exemple tente d'obtenir le cookie nommé "favourite-colour", associé à l'URL de l'onglet actuellement actif :


```js
function logCookie(cookie) {
  if (cookie) {
    console.log(cookie.value);
  }
}

function getCookie(tabs) {
  var getting = browser.cookies.get({
    url: tabs[0].url,
    name: "favourite-colour",
  });
  getting.then(logCookie);
}

var getActive = browser.tabs.query({
  active: true,
  currentWindow: true,
});
getActive.then(getCookie);
```

### Example extensions

* cookie-bg-picker

**Note :**

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

L'événement `onChanged` de l'API `cookies` est déclenché lorsqu'un cookie est défini ou supprimé.

Notez que la mise à jour des propriétés d'un cookie est implémentée en deux étapes :

1. Tout d'abord, le cookie à mettre à jour est tout d'abord entiérement supprimé, généralement une notification avec un `cookies.OnChangedCause` d'écrasement.
2. Ensuite, un nouveau cookie est écrit avec les valeurs mises à jour, généralement une seconde notification avec un `cookies.OnChangedCause` `explicite`.
Syntaxe
-------


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


Cet API est également disponible en tant que `browser.cookies.onChanged.*`.

Les événements ont trois fonctions :

`addListener(callback)`

Ajoute un écouteur à l'événement.

`removeListener(listener)`

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

`hasListener(listener)`

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

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

### Paramètres

`callback`

Une fonction de rappel qui sera appelée lorsque l'événement se produira. La fonction recevra les arguments suivants :

`changeInfo`

Un `objet` contenant les détails de la modification survenue. Ses propriétés sont les suivantes :

`removed`

Un `booléen` défini sur `true` si un cookie a été supprimé et sinon false.

`cookie`

Un objet `cookies.Cookie` contenant les informations sur le cookie qui a été défini ou supprimé.

`cause`

Une valeur `cookies.OnChangedCause` représentant la raison sous-jacente de la modification du cookie.


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

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

Exemples
--------

Cet exemple écoute les événements `onChanged` et enregistre les détails de l'argument `changeInfo` :


```js
browser.cookies.onChanged.addListener(function (changeInfo) {
  console.log(
    "Cookie changed: " +
      "\n \* Cookie: " +
      JSON.stringify(changeInfo.cookie) +
      "\n \* Cause: " +
      changeInfo.cause +
      "\n \* Removed: " +
      changeInfo.removed,
  );
});
```

### Example extensions

* cookie-bg-picker

**Note :**

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

La propriété **`onBeforeScript`** de l'événement `browser.userScripts` est un gestionnaire d'évènement qui traite l'évènement `beforeScript`.
L'événement `beforeScript` se déclenche juste avant l'exécution d'un script utilisateur correspondant, permettant à APIScript d'exporter des méthodes API personnalisées vers le script utilisateur.

Syntaxe
-------


```js
browser.userScripts.onBeforeScript = functionRef;
browser.userScripts.onBeforeScript.addListener(functionRef);
browser.userScripts.onBeforeScript.removeListener(functionRef);
browser.userScripts.onBeforeScript.hasListener(functionRef);
```

### Value

`functionRef` est la function de gestionnaire à appeler lorsque l'événement `beforeScript` du script utilisateur se déclenche.

Exemples
--------

Voir ce billet de blog pour des exemples détaillés

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

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

Voir aussi
----------

* `contentScripts`
userScripts.register()
======================

Dans les pages d'une extension (comme la page d'arrière plan), l'API userScripts fournit une méthode API `register()`. Cette méthode est très similaire à la méthode API `contentScripts.register()` (par exemple, ils retournent tous les deux une promise qui est résolue à un objet API qui fournit un `unregister()` pour la désinscription du script enregistré de tous les processus enfants), avec quelques différences dans les options prises en charge.

C'est une méthode asynchrone qui retourne un `Promise`.

Syntaxe
-------


```js
const registeredUserScript = await browser.userScripts.register(
  userScriptOptions       // object
);
….
await registeredUserScript.unregister();
```

### Paramètres

`userScriptOptions`

`object`. Un objet `UserScriptOptions` représentant les scripts de contenu à enregistrer. Il a une syntaxe similaire aux options supportées par `contentScripts.register()`.

L'objet `UserScriptOptions` possède les propriétés suivantes :

scriptMetadata `Facultatif`

Un objet `JSON` qui contient certaines propriétés de métadonnées associées aux `userScripts` enregistrés

`allFrames Facultatif`

Identiques à `all_frames` dans la clé `user_scripts`.

`excludeGlobs` Facultatif

Identique à `exclude_globs` dans la clé `user_scripts`.

`excludeMatches` Facultatif

Identique à `exclude_matches` dans la clé `user_scripts`.

`includeGlobs` Facultatif

Identique à `include_globs` dans la clé `user_scripts`.

`js` Facultatif

Un tableau d'objets. Chaque objet a soit une propriété nommée `file`, qui est une URL commençant par le fichier manifest.json de l'extension et pointant vers un fichier JavaScript à enregistrer, soit une propriété nommée `code`, qui est un code JavaScript à enregistrer.

`matchAboutBlank` Facultatif

Identique à `match_about_blank` dans la clé `user_scripts`.

`matches`

Identique à `matches` dans la clé `user_scripts`.

`runAt` Facultatif

Identique à `run_at` dans la clé `user_scripts`.



Contrairement aux options de script de contenu, l'objet userScriptOptions n'a pas de propriété css. Utilisez `contentScripts.register()` pour enregistrer/désenregistrer dynamiquement les feuilles de style).

### Valeur retournée

Une `Promise` qui sera rempli avec un objet `RegisteredUserScript` que vous pouvez utiliser pour désinscrire ce script utilisateur particulier.

**Note :** Actuellement, les scripts utilisateur sont désenregistrés lorsque la page d'extension correspondante (à partir de laquelle les scripts utilisateur ont été enregistrés) est déchargée, vous devez donc enregistrer un script utilisateur depuis une page d'extension qui persiste au moins aussi longtemps que vous voulez que les scripts utilisateur restent enregistrés.

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

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

Voir aussi
----------

* `contentScripts.register()`
* `RegisteredUserScript.unregister()`
userScripts.RegisteredUserScript
================================

Un RegisteredUserScript est retourné par un appel à `userScripts.register()` et représente les scripts utilisateur enregistrés dans cet appel.

L'objet définit une méthode unique, `unregister()`, qui peut être utilisée pour désinscrire les scripts utilisateur.

**Note :** Si cet objet est détruit (par exemple parce qu'il sort du champ d'application), les scripts associés seront automatiquement désenregistrés, vous devez donc conserver une référence à cet objet aussi longtemps que vous voulez que les scripts de contenu restent enregistrés.

Méthodes
--------

`unregister()`

Désenregistre les scripts utilisateurs représentés par cet objet.

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

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

L'objet UserScriptOptions représente les scripts de contenu à enregistrer. Sa syntaxe est similaire à celle des options contentScript prises en charge par browser.contentScripts.register. Les différences sont les suivantes :

* il ne prend pas en charge une propriété css (utilisez browser.contentScripts.register pour enregistrer/désenregistrer dynamiquement les feuilles de style)
* Il supporte une propriété optionnelle scriptMetadata (comme un objet JSON simple qui contient certaines propriétés de métadonnées associées aux userScripts enregistrés)

L'objet UserScriptOptions a les propriétés suivantes :

`allFrames`Facultatif

Même chose que `all_frames` dans la clé `content_scripts`.

`excludeGlobs`Facultatif

Même chose que `exclude_globs` dans la clé `content_scripts`.

`excludeMatches`Facultatif

Même chose que `exclude_matches` dans la clé `content_scripts`.

`includeGlobs`Facultatif

Même chose que `include_globs` dans la clé `content_scripts`.

`js`Facultatif

Un ensemble d'objets. Chaque objet a soit une propriété nommée `file`, qui est une URL commençant à l'extension manifest.json et pointant vers un fichier JavaScript à enregistrer, soit une propriété nommée `code`, qui est un code JavaScript à enregistrer.

`matchAboutBlank`Facultatif

Même chose que `match_about_blank` dans la clé `content_scripts`.

`matches`

Même chose que `matches` dans la clé `content_scripts`.

`runAt`Facultatif

Même chose que `run_at` dans la clé `content_scripts`.

`scriptMetadata` Facultatif

Une valeur de métadonnées de script utilisateur

Sa syntaxe est similaire à celle des options contentScript prises en charge par browser.contentScripts.register.
RegisteredUserScript.unregister()
=================================

La méthode `unregister()` de l'interface `RegisteredUserScript` désenregistre le script utilisateur représenté par cette instance d'interface et précédemment enregistré via `userScripts.register()`.

**Note :** Les scripts utilisateur sont automatiquement désenregistrés lorsque la page d'extension correspondante (à partir de laquelle les scripts utilisateur ont été enregistrés) est déchargée, vous devez donc enregistrer un script utilisateur depuis une page d'extension qui persiste au moins aussi longtemps que vous voulez que les scripts utilisateur restent enregistrés..

Syntaxe
-------


```js
const registeredUserScript = await browser.userScripts.register(
  userScriptOptions       // object
);
…
await registeredUserScript.unregister()
```

### Paramètres

Aucun

### Valeur retournée

Une `Promise` qui sera résolu une fois le script utilisateur désenregistré. La promesse ne rapporte rien.

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

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

Voir aussi
----------

* `userScripts.register()`
* `RegisteredUserScript`
webNavigation.TransitionType
============================

Cause de la navigation: par exemple, l'utilisateur a cliqué sur un lien, ou a tapé une adresse, ou a cliqué sur un signet.

Notez que beaucoup de valeurs ne sont actuellement pas supportées dans Firefox : voir la table de compatibilité du navigateur pour plus de détails.

Type
----

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

"link"

L'utilisateur a cliqué sur un lien dans une autre page.

"typed"

L'utilisateur a tapé l'URL dans la barre d'adresse. Ceci est également utilisé si l'utilisateur a commencé à taper dans la barre d'adresse, puis sélectionné une URL parmi les suggestions qu'il a proposées. Voir aussi " generated".

"auto\_bookmark"

L'utilisateur a cliqué sur un signet ou un élément dans l'historique du navigateur.

"auto\_subframe"

Les iframes imbriqués qui sont automatiquement chargés par leur parent.

"manual\_subframe"

Les iframes imbriqués chargés en tant qu'action utilisateur explicite. Le chargement d'une telle iframe générera une entrée dans la liste de navigation avant/arrière.

"generated"

L'utilisateur a commencé à taper dans la barre d'adresse, puis a cliqué sur une entrée suggérée qui ne contenait pas d'URL.

"start\_page"

La page a été passée à la ligne de commande ou est la page de démarrage.

"form\_submit"

L'utilisateur a soumis un formulaire. Notez que dans certaines situations, par exemple lorsqu'un formulaire utilise un script pour soumettre son contenu, l'envoi d'un formulaire n'entraîne pas ce type de transition.

"reload"

L'utilisateur a rechargé la page en utilisant le bouton Recharger ou en appuyant sur Entrée dans la barre d'adresse. Ceci est également utilisé pour la restauration de session et la réouverture des onglets fermés.

"keyword"

L'URL a été générée à l'aide d'une rechercher par mot configurée par l'utilisateur.

"keyword\_generated"

Correspond à une visite générée pour un mot clé.

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.webNavigation`. Cette documentation est dérivée de `web_navigation.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.