Source code

Revision control

Copy as Markdown

Other Tools

/* eslint-env mozilla/chrome-script */
"use strict";
function getCookieService() {
// eslint-disable-next-line mozilla/use-services
return Cc["@mozilla.org/cookiemanager;1"].getService(Ci.nsICookieManager);
}
function getCookies(cs) {
let cookies = [];
for (let cookie of cs.cookies) {
cookies.push({
host: cookie.host,
path: cookie.path,
name: cookie.name,
value: cookie.value,
expires: cookie.expires,
});
}
return cookies;
}
function removeAllCookies(cs) {
cs.removeAll();
}
addMessageListener("init", _ => {
let cs = getCookieService();
removeAllCookies(cs);
sendAsyncMessage("init:return");
});
addMessageListener("getCookies", _ => {
let cs = getCookieService();
let cookies = getCookies(cs);
removeAllCookies(cs);
sendAsyncMessage("getCookies:return", { cookies });
});
addMessageListener("shutdown", _ => {
let cs = getCookieService();
removeAllCookies(cs);
sendAsyncMessage("shutdown:return");
});