"use strict";

var observer = {
  observe(subject, topic) {
    if (topic == "cookie-changed") {
      let notification = subject.QueryInterface(Ci.nsICookieNotification);
      let cookie = notification.cookie.QueryInterface(Ci.nsICookie);
      sendAsyncMessage("cookieName", cookie.name + "=" + cookie.value);
      sendAsyncMessage("cookieOperation", notification.action);
    }
  },
};

addMessageListener("createObserver", function () {
  Services.obs.addObserver(observer, "cookie-changed");
  sendAsyncMessage("createObserver:return");
});

addMessageListener("removeObserver", function () {
  Services.obs.removeObserver(observer, "cookie-changed");
  sendAsyncMessage("removeObserver:return");
});
