set()
=====

Utilisez `BrowserSetting.set()` pour modifier le paramètre du navigateur vers une nouvelle valeur.

Certaines règles peuvent être restreintes lorsque les extensions sont capables de modifier les paramètres :

* Certains paramètres sont verrouillés, de sorte qu'ils ne peuvent pas être modifiés par les extensions
* Si plusieurs extensions tentent de modifier le même paramètre, les extensions reçoivent un ordre de priorité en fonction de leur installation. Plus récemment, les extensions installées ont priorité sur l'extension installée récemment.

Cela signifie que si l'extension X essaie de modifier un paramètre :

1. Si le réglage est verrouillé, le réglage n'est pas modifié. Cependant, le changement de X est rappelé, et il est stocké dans une file d'attente, commandé par la priorité de X par rapport à toutes les autres extensions qui ont essayé de modifier le paramètre. Si le réglage devient déverrouillé plus tard, la première extension de la file d'attente permet de modifier le réglage.
2. Sinon, si aucune autre extension n'a déjà changé le paramètre, X réussit à modifier le réglage, puis on dit "contrôler" le réglage.
3. Sinon, si une extension de priorité inférieure Y a déjà changé le paramètre, X réussit à modifier le réglage et maintenant le réglage. However, Y's change is remembered, and is stored in a queue in precedence order. Cependant, le changement de Y est rappelé et est stocké dans une file d'attente dans l'ordre de priorité. Si X efface ensuite sa valeur, ou si X est désactivé ou désinstallé, la première extension de la file d'attente permet de modifier sa valeur.
4. Sinon, si une extension de priorité supérieure Z a déjà changé le paramètre, X ne réussit pas à modifier le paramètre, mais sa modification est mise en file d'attente. Si Z efface ensuite sa valeur, ou si Z est désactivé ou désinstallé, la première extension de la file d'attente permet de modifier sa valeur.

Une extension peut déterminer lequel de ces scénarios s'applique en examinant la propriété "`levelOfControl`" renvoyée d'un appel à `BrowserSetting.get()`.

la méthode `BrowserSetting.set()` renvoie une promesse qui résout un booléen : Si une tentative de modification d'un paramètre aboutit à la modification du paramètre (scenarios 2 et 3 ci-dessus) le booléen est `true`: sinon il est `false`.

Syntaxe
-------


```js
var setting = setting.set(
  details, // object
);
```

### Paramètres

`details`

Un objet qui doit contenir la propriété suivante :

`value`

`any`. La valeur à laquelle vous souhaitez modifier le paramètre. Son type dépend du réglage particulier.


### Valeur retournée

Une `Promise` qui sera remplie avec un `booléen`: `true` si le paramètre a été modifié, `false` sinon (par exemple, parce que l'extension n'a pas contrôlé le paramètre).

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

Voir `types.BrowserSetting`.

Exemple
-------

Modifiez le paramètre `hyperlinkAuditingEnabled` (ceci nécessite la permission "privacy") :


```js
function onSet(result) {
  if (result) {
    console.log("Value was updated");
  } else {
    console.log("Value was not updated");
  }
}

browser.browserAction.onClicked.addListener(() => {
  var setting = browser.privacy.websites.hyperlinkAuditingEnabled.set({
    value: false,
  });
  setting.then(onSet);
});
```


**Note :**

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

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.