file_cookiemanager.js 654 B

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