Доступ к определенным файлам cookie по домену / имени в расширении Firefox - PullRequest
5 голосов
/ 28 февраля 2012

Я разрабатываю расширение для Firefox и мне нужен доступ к определенному файлу cookie из определенного домена.У меня есть этот код, который выбирает все файлы cookie для всех доменов, как мне запрашивать только файлы cookie, которые я ищу.

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);
    }
}

Подводя итог, я могу найти файл cookie, который я ищус кодом выше, но я не хочу перебирать все куки со всех доменов.

1 Ответ

6 голосов
/ 28 февраля 2012

Вы можете использовать nsICookieManager2 интерфейс (исходный nsICookieManager интерфейс был заморожен и не может быть изменен, поэтому была создана эта расширенная версия):

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

Примечание: концепция замороженных интерфейсов была отброшена в Gecko 2.0 (Firefox 4). С тех пор некоторые интерфейсы, подобные nsICookieManager / nsICookieManager2, были унифицированы - так что в будущей версии Firefox nsICookieManager2 также может исчезнуть, тогда все функции будут доступны на nsICookieManager.

...