Bug 1256264 Make requestId a string draft
authorAndreas Wagner <mail@andreaswagner.org>
Mon, 14 Mar 2016 14:05:57 +0100
changeset 339975 a00f5ac29927072264054dea50c2ce3646e2bf6c
parent 339874 f0c0480732d36153e8839c7f17394d45f679f87d
child 516101 0753f93e44655e0ce61c117fffe1ba2758b1d9de
push id12857
push userg.maone@informaction.com
push dateMon, 14 Mar 2016 16:15:56 +0000
bugs1256264
milestone48.0a1
Bug 1256264 Make requestId a string MozReview-Commit-ID: G9qh3jurdfZ
toolkit/components/extensions/test/mochitest/test_ext_webrequest.html
toolkit/modules/addons/WebRequest.jsm
--- a/toolkit/components/extensions/test/mochitest/test_ext_webrequest.html
+++ b/toolkit/components/extensions/test/mochitest/test_ext_webrequest.html
@@ -243,20 +243,35 @@ function backgroundScript() {
     }
     browser.test.assertTrue(modifiedAny, `at least one modified ${phase}Headers element`);
 
     for (let name of deleted) {
       browser.test.assertFalse(headers.some(h => h.name === name), `deleted header ${name} still found in ${phase}Headers`);
     }
   }
 
+  let lastRequestId = -1;
+  let lastRequestUrl = null;
+  function validateRequestIdType(currentId) {
+    browser.test.assertTrue(typeof lastRequestId === "string");
+    browser.test.assertTrue(typeof currentId === "string");
+    browser.test.assertTrue(typeof parseInt(currentId, 10) === "number");
+    browser.test.assertTrue(parseInt(lastRequestId, 10) !== parseInt(currentId, 10));
+  }
+
   function onBeforeRequest(details) {
     browser.test.log(`onBeforeRequest ${details.requestId} ${details.url}`);
 
-    browser.test.assertTrue(details.requestId > 0, `valid requestId ${details.requestId}`);
+    if (!lastRequestUrl) {
+      lastRequestUrl = details.url;
+      lastRequestId = details.requestId;
+    } else if (lastRequestUrl != details.url) {
+      validateRequestIdType(details.requestId);
+    }
+
     let ids = requestIDs.get(details.url);
     if (ids) {
       ids.add(details.requestId);
     } else {
       requestIDs.set(details.url, new Set([details.requestId]));
     }
     checkResourceType(details.type);
     if (shouldRecord(details.url)) {
--- a/toolkit/modules/addons/WebRequest.jsm
+++ b/toolkit/modules/addons/WebRequest.jsm
@@ -39,17 +39,17 @@ function extractFromChannel(channel, key
   }
   return null;
 }
 
 var RequestId = {
   count: 1,
   KEY: "mozilla.webRequest.requestId",
   create(channel = null) {
-    let id = this.count++;
+    let id = (this.count++).toString();
     if (channel) {
       attachToChannel(channel, this.KEY, id);
     }
     return id;
   },
 
   get(channel) {
     return channel && extractFromChannel(channel, this.KEY) || this.create(channel);