Bug 1256251 - Update browser.cookies.onChanged to match Chrome's behaviour when overwriting a cookie, r?kmag draft
authorbsilverberg <bsilverberg@mozilla.com>
Mon, 14 Mar 2016 12:13:58 +0100
changeset 339922 025dd09899783ea5ede8873a8205ca653b7fcbc7
parent 339874 f0c0480732d36153e8839c7f17394d45f679f87d
child 516077 917366e53a17e7042a3586f7af96c74130136437
push id12829
push userbmo:bob.silverberg@gmail.com
push dateMon, 14 Mar 2016 11:32:03 +0000
reviewerskmag
bugs1256251
milestone48.0a1
Bug 1256251 - Update browser.cookies.onChanged to match Chrome's behaviour when overwriting a cookie, r?kmag MozReview-Commit-ID: 5AGXbfkOd9R
toolkit/components/extensions/ext-cookies.js
toolkit/components/extensions/test/mochitest/test_ext_cookies_permissions.html
--- 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)) {