Question

Je développe une extension Firefox et j'ai besoin d'accéder à un cookie spécifique à partir d'un domaine spécifique.J'ai ce code qui récupère tous les cookies pour tous les domaines, comment puis-je demander uniquement le cookie que je recherche.

var {Cc, Ci} = require("chrome");

var cookieManager = Cc["@mozilla.org/cookiemanager;1"].getService(Ci.nsICookieManager);

var count = cookieManager.enumerator;

while (count.hasMoreElements()){
    var cookie = count.getNext();
    if (cookie instanceof Ci.nsICookie){
        console.log(cookie.host);
        console.log(cookie.name);
        console.log(cookie.value);
    }
}

Pour résumer, je suis capable de trouver le cookie que je recherche avec le code ci-dessus mais je ne veux pas avoir à parcourir tous les cookies de tous les domaines.

Était-ce utile?

La solution

Vous pouvez utiliser nsICookieManager2 interface (l'original nsICookieManager l'interface était figée et ne pouvait pas être modifiée, c'est pourquoi cette version étendue a été créée) :

var cookieManager = Cc["@mozilla.org/cookiemanager;1"]
                      .getService(Ci.nsICookieManager2);
var count = cookieManager.getCookiesFromHost("example.com");

Note:le concept d'interfaces gelées a été abandonné dans Gecko 2.0 (Firefox 4).Depuis, certaines interfaces similaires à nsICookieManager/nsICookieManager2 ont été unifiés - donc dans une future version de Firefox nsICookieManager2 pourrait également disparaître, toutes les fonctionnalités seront exposées sur nsICookieManager alors.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top