Bug 1256264 Make requestId a string
MozReview-Commit-ID: G9qh3jurdfZ
--- 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);