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