summaryrefslogtreecommitdiffstats
path: root/dom/html/test/file_cookiemanager.js
blob: 98f35653437bc601bd115b7d1ec4a790df8c79e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
let { classes: Cc, interfaces: Ci } = Components;
addMessageListener("getCookieFromManager", ({ host, path }) => {
  let cm = Cc["@mozilla.org/cookiemanager;1"]
             .getService(Ci.nsICookieManager);
  let values = [];
  path = path.substring(0, path.lastIndexOf("/") + 1);
  let e = cm.enumerator;
  while (e.hasMoreElements()) {
    let cookie = e.getNext().QueryInterface(Ci.nsICookie);
    if (!cookie) {
      break;
    }
    if (host != cookie.host || path != cookie.path) {
      continue;
    }
    values.push(cookie.name + "=" + cookie.value);
  }

  sendAsyncMessage("getCookieFromManager:return", { cookie: values.join("; ") });
});