mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 08:15:31 +00:00
Bug 1147699 - Part 9: Add tests for FetchEvent.request.context when intercepting embeds and objects; r=nsm
This commit is contained in:
parent
3ccccb6763
commit
dd3079f0ba
@ -33,13 +33,11 @@ self.addEventListener("fetch", function(event) {
|
|||||||
event.respondWith(fetch(event.request));
|
event.respondWith(fetch(event.request));
|
||||||
}
|
}
|
||||||
} else if (event.request.url.indexOf("csp-report.sjs") >= 0) {
|
} else if (event.request.url.indexOf("csp-report.sjs") >= 0) {
|
||||||
event.respondWith(clients.matchAll()
|
respondToServiceWorker(event, "csp-report");
|
||||||
.then(function(clients) {
|
} else if (event.request.url.indexOf("embed") >= 0) {
|
||||||
clients.forEach(function(c) {
|
respondToServiceWorker(event, "embed");
|
||||||
c.postMessage({data: "csp-report", context: event.request.context});
|
} else if (event.request.url.indexOf("object") >= 0) {
|
||||||
});
|
respondToServiceWorker(event, "object");
|
||||||
return new Response("ack");
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
// Fail any request that we don't know about.
|
// Fail any request that we don't know about.
|
||||||
try {
|
try {
|
||||||
@ -49,3 +47,13 @@ self.addEventListener("fetch", function(event) {
|
|||||||
// code above has called respondWith too.
|
// code above has called respondWith too.
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function respondToServiceWorker(event, data) {
|
||||||
|
event.respondWith(clients.matchAll()
|
||||||
|
.then(function(clients) {
|
||||||
|
clients.forEach(function(c) {
|
||||||
|
c.postMessage({data: data, context: event.request.context});
|
||||||
|
});
|
||||||
|
return new Response("ack");
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
@ -110,6 +110,37 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testEmbed() {
|
||||||
|
return new Promise(function(resolve, reject) {
|
||||||
|
var embed = document.createElement("embed");
|
||||||
|
embed.src = "embed";
|
||||||
|
document.documentElement.appendChild(embed);
|
||||||
|
navigator.serviceWorker.addEventListener("message", function onMessage(e) {
|
||||||
|
if (e.data.data == "embed") {
|
||||||
|
// FIXME: Bug 1148030: This should be "embed".
|
||||||
|
is(e.data.context, "object", "Expected the object context on an embed");
|
||||||
|
navigator.serviceWorker.removeEventListener("message", onMessage);
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
}, false);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function testObject() {
|
||||||
|
return new Promise(function(resolve, reject) {
|
||||||
|
var object = document.createElement("object");
|
||||||
|
object.data = "object";
|
||||||
|
document.documentElement.appendChild(object);
|
||||||
|
navigator.serviceWorker.addEventListener("message", function onMessage(e) {
|
||||||
|
if (e.data.data == "object") {
|
||||||
|
is(e.data.context, "object", "Expected the object context on an object");
|
||||||
|
navigator.serviceWorker.removeEventListener("message", onMessage);
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
}, false);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
Promise.all([
|
Promise.all([
|
||||||
testFetch(),
|
testFetch(),
|
||||||
testImage(),
|
testImage(),
|
||||||
@ -119,6 +150,8 @@
|
|||||||
testVideo(),
|
testVideo(),
|
||||||
testBeacon(),
|
testBeacon(),
|
||||||
testCSPReport(),
|
testCSPReport(),
|
||||||
|
testEmbed(),
|
||||||
|
testObject(),
|
||||||
])
|
])
|
||||||
.then(function() {
|
.then(function() {
|
||||||
finish();
|
finish();
|
||||||
|
Loading…
Reference in New Issue
Block a user