Bug 1264993 - Unable to list/edit certain cookies in GCLI r?jwalker draft
authorMichael Ratcliffe <mratcliffe@mozilla.com>
Mon, 18 Apr 2016 13:54:23 +0100
changeset 352665 ef316fa175979f9d9997dfe0c24409e8af48b71b
parent 352654 4bc053de842538e99e56927b3c03fdc539374a16
child 518692 03c9191376f69a72196f77cee778bdf3da2ff1a2
push id15739
push usermratcliffe@mozilla.com
push dateMon, 18 Apr 2016 12:58:44 +0000
reviewersjwalker
bugs1264993
milestone48.0a1
Bug 1264993 - Unable to list/edit certain cookies in GCLI r?jwalker Simple patch to correct errors in cookie host matching: 1. Match domains starting with a . in case this style was used e.g. .test.example.com 2. Match localhost URLS. MozReview-Commit-ID: 9qqnsNaW5oK
devtools/client/commandline/test/browser.ini
devtools/client/commandline/test/browser_cmd_cookie.html
devtools/client/commandline/test/browser_cmd_cookie_host.js
devtools/shared/gcli/commands/cookie.js
--- a/devtools/client/commandline/test/browser.ini
+++ b/devtools/client/commandline/test/browser.ini
@@ -29,16 +29,18 @@ support-files =
   browser_cmd_appcache_valid_page1.html
   browser_cmd_appcache_valid_page2.html
   browser_cmd_appcache_valid_page3.html
 [browser_cmd_commands.js]
 [browser_cmd_cookie.js]
 support-files =
  browser_cmd_cookie.html
 [browser_cmd_cookie_host.js]
+support-files =
+ browser_cmd_cookie.html
 [browser_cmd_csscoverage_oneshot.js]
 support-files =
  browser_cmd_csscoverage_page1.html
  browser_cmd_csscoverage_page2.html
  browser_cmd_csscoverage_page3.html
  browser_cmd_csscoverage_sheetA.css
  browser_cmd_csscoverage_sheetB.css
  browser_cmd_csscoverage_sheetC.css
--- a/devtools/client/commandline/test/browser_cmd_cookie.html
+++ b/devtools/client/commandline/test/browser_cmd_cookie.html
@@ -6,13 +6,14 @@
 </head>
 <body>
 
   <p>Cookie test</p>
   <p id=result></p>
   <script type="text/javascript">
     document.cookie = "zap=zep";
     document.cookie = "zip=zop";
+    document.cookie = "zig=zag; domain=.mochi.test";
     document.getElementById("result").innerHTML = document.cookie;
   </script>
 
 </body>
 </html>
--- a/devtools/client/commandline/test/browser_cmd_cookie_host.js
+++ b/devtools/client/commandline/test/browser_cmd_cookie_host.js
@@ -1,23 +1,25 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
+"use strict";
+
 // Tests that the cookie command works for host with a port specified
 
-const TEST_URI = "http://mochi.test:8888/browser/devtools/client/commandline/"+
+const TEST_URI = "http://mochi.test:8888/browser/devtools/client/commandline/" +
                  "test/browser_cmd_cookie.html";
 
 function test() {
   helpers.addTabWithToolbar(TEST_URI, function(options) {
     return helpers.audit(options, [
         {
           setup: 'cookie list',
           exec: {
-            output: [ /zap=zep/, /zip=zop/ ],
+            output: [ /zap=zep/, /zip=zop/, /zig=zag/ ],
           }
         },
         {
           setup: "cookie set zup banana",
           check: {
             args: {
               name: { value: 'zup' },
               value: { value: 'banana' },
@@ -25,15 +27,15 @@ function test() {
           },
           exec: {
             output: ""
           }
         },
         {
           setup: "cookie list",
           exec: {
-            output: [ /zap=zep/, /zip=zop/, /zup=banana/, /Edit/ ]
+            output: [ /zap=zep/, /zip=zop/, /zig=zag/, /zup=banana/, /Edit/ ]
           }
         }
     ]);
   }).then(finish, helpers.handleError);
 }
 
--- a/devtools/shared/gcli/commands/cookie.js
+++ b/devtools/shared/gcli/commands/cookie.js
@@ -54,17 +54,20 @@ function translateExpires(expires) {
 /**
  * Check if a given cookie matches a given host
  */
 function isCookieAtHost(cookie, host) {
   if (cookie.host == null) {
     return host == null;
   }
   if (cookie.host.startsWith(".")) {
-    return host.endsWith(cookie.host);
+    return ("." + host).endsWith(cookie.host);
+  }
+  if (cookie.host === "") {
+    return host.startsWith("file://" + cookie.path);
   }
   return cookie.host == host;
 }
 
 exports.items = [
   {
     name: "cookie",
     description: l10n.lookup("cookieDesc"),