Firefox 3 introduit le concept de préférences de contenu. Ceci permet à du code s'exécutant dans le chrome (en d'autres mots : les extensions et le navigateur lui-même, pas les sites Web) d'enregistrer localement des préférences sur une base site par site. Cela permet d'écrire une extension permettant à l'utilisateur de personnaliser l'apparence de sites Web particuliers (augmenter la taille de la police sur des sites qui utilisent des tailles très petites, par exemple).
Le service de préférences de contenu, implémenté par nsIContentPrefService
, offre des fonctions permettant de définir et de lire des préférences pour des sites particuliers ou dans l'espace global des préférences ; les préférences globales sont utilisées lorsqu'une préférence particulière à un site n'est pas disponible.
Exemple : définition et lecture de préférences
Cet exemple montre comment enregistrer une préférence et ensuite retrouver sa valeur.
var ioSvc = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService);
var prefService = Components.classes["@mozilla.org/content-pref/service;1"]
.getService(Components.interfaces.nsIContentPrefService);
// Crée un objet URI référençant le site pour lequel enregistrer une préférence
var uri = ioSvc.newURI("https://developer.mozilla.org/", null, null);
// Définit la valeur de la préférence "devmo.somesetting" à "foo".
prefService.setPref(uri, "devmo.somesetting", "foo");
...
// Récupère la valeur de la préférence "devmo.somesetting".
var value = prefService.getPref(uri, "devmo.somesetting");
Voir également
nsIContentPrefService
, nsIContentPrefObserver