Bug 1256251 - Update browser.cookies.onChanged to match Chrome's behaviour when overwriting a cookie, r?kmag
MozReview-Commit-ID: 5AGXbfkOd9R
--- a/toolkit/components/extensions/ext-cookies.js
+++ b/toolkit/components/extensions/ext-cookies.js
@@ -326,17 +326,18 @@ extensions.registerSchemaAPI("cookies",
switch (data) {
case "deleted":
notify(true, subject, "explicit");
break;
case "added":
notify(false, subject, "explicit");
break;
case "changed":
- notify(false, subject, "overwrite");
+ notify(true, subject, "overwrite");
+ notify(false, subject, "explicit");
break;
case "batch-deleted":
subject.QueryInterface(Ci.nsIArray);
for (let i = 0; i < subject.length; i++) {
let cookie = subject.queryElementAt(i, Ci.nsICookie2);
if (!cookie.isSession && (cookie.expiry + 1) * 1000 <= Date.now()) {
notify(true, cookie, "expired");
} else {
--- a/toolkit/components/extensions/test/mochitest/test_ext_cookies_permissions.html
+++ b/toolkit/components/extensions/test/mochitest/test_ext_cookies_permissions.html
@@ -68,17 +68,17 @@ function* testCookies(options) {
let evicted = changed.indexOf("evicted:evicted");
if (evicted < 0) {
browser.test.fail("got no eviction event");
} else {
browser.test.succeed("got eviction event");
changed.splice(evicted, 1);
}
- browser.test.assertEq("x:explicit,x:overwrite,x:explicit,foo:overwrite,bar:explicit,deleted:explicit",
+ browser.test.assertEq("x:explicit,x:overwrite,x:explicit,x:explicit,foo:overwrite,foo:explicit,bar:explicit,deleted:explicit",
changed.join(","), "expected changes");
} else {
browser.test.assertEq("", changed.join(","), "expected no changes");
}
browser.test.notifyPass("cookie-permissions");
}).then(() => {
if (!(options.shouldPass || options.shouldWrite)) {