Bug 1366710 set webrequest type to xmlhttprequest for fetch requests, r?aswan
MozReview-Commit-ID: GkhojDrmWC5
--- a/toolkit/components/extensions/test/mochitest/test_ext_webrequest_background_events.html
+++ b/toolkit/components/extensions/test/mochitest/test_ext_webrequest_background_events.html
@@ -77,16 +77,17 @@ add_task(async function test_webRequest_
"onCompleted",
]);
function listener(name, details) {
browser.test.assertTrue(eventNames.has(name), `recieved ${name}`);
eventNames.delete(name);
if (eventNames.size === 0) {
+ browser.test.assertEq("xmlhttprequest", details.type, "correct type for fetch [bug 1366710]");
browser.test.assertEq(0, eventNames.size, "messages recieved");
browser.test.sendMessage("done");
}
}
for (let name of eventNames) {
browser.webRequest[name].addListener(
listener.bind(null, name),
--- a/toolkit/components/extensions/test/mochitest/test_ext_webrequest_filter.html
+++ b/toolkit/components/extensions/test/mochitest/test_ext_webrequest_filter.html
@@ -167,17 +167,17 @@ add_task(async function test_webRequest_
let expect = {
"webrequest_worker.js": {
type: "script",
},
"example.txt": {
status: 404,
events: ["onBeforeRequest", "onBeforeSendHeaders", "onSendHeaders", "onHeadersReceived", "onResponseStarted"],
optional_events: ["onCompleted", "onErrorOccurred"],
- type: "other",
+ type: "xmlhttprequest",
origin: SimpleTest.getTestFileURL("webrequest_worker.js?test2"),
},
};
let extension = makeExtension(events);
await extension.startup();
extension.sendMessage("set-expected", {expect, origin: location.href});
await extension.awaitMessage("continue");
--- a/toolkit/modules/addons/WebRequestCommon.jsm
+++ b/toolkit/modules/addons/WebRequestCommon.jsm
@@ -19,16 +19,18 @@ var WebRequestCommon = {
case Ci.nsIContentPolicy.TYPE_DOCUMENT: return "main_frame";
case Ci.nsIContentPolicy.TYPE_SUBDOCUMENT: return "sub_frame";
case Ci.nsIContentPolicy.TYPE_STYLESHEET: return "stylesheet";
case Ci.nsIContentPolicy.TYPE_SCRIPT: return "script";
case Ci.nsIContentPolicy.TYPE_IMAGE: return "image";
case Ci.nsIContentPolicy.TYPE_OBJECT: return "object";
case Ci.nsIContentPolicy.TYPE_OBJECT_SUBREQUEST: return "object_subrequest";
case Ci.nsIContentPolicy.TYPE_XMLHTTPREQUEST: return "xmlhttprequest";
+ // TYPE_FETCH returns xmlhttprequest for cross-browser compatibility.
+ case Ci.nsIContentPolicy.TYPE_FETCH: return "xmlhttprequest";
case Ci.nsIContentPolicy.TYPE_XBL: return "xbl";
case Ci.nsIContentPolicy.TYPE_XSLT: return "xslt";
case Ci.nsIContentPolicy.TYPE_PING: return "ping";
case Ci.nsIContentPolicy.TYPE_BEACON: return "beacon";
case Ci.nsIContentPolicy.TYPE_DTD: return "xml_dtd";
case Ci.nsIContentPolicy.TYPE_FONT: return "font";
case Ci.nsIContentPolicy.TYPE_MEDIA: return "media";
case Ci.nsIContentPolicy.TYPE_WEBSOCKET: return "websocket";