blob: 719ed0dbd659465a1dd14c8845914fe1ec2ca363 [file] [log] [blame]
importScripts('/resources/get-host-info.js?pipe=sub');
importScripts('fetch-test-options.js');
importScripts('thorough-util.js');
var port = undefined;
var isTestTargetFetch = false;
self.onmessage = function(e) {
var message = e.data;
if ('port' in message) {
port = message.port;
} else if (message.msg === 'START TEST CASE') {
isTestTargetFetch = true;
port.postMessage({msg: 'READY'});
}
};
self.addEventListener('fetch', function(event) {
if (!isTestTargetFetch) {
// Don't handle the event when it is not the test target fetch such as a
// redirected fetch or for the iframe html.
return;
}
isTestTargetFetch = false;
event.respondWith(
doFetch(event.request)
.then(function(message) {
var response = message.response;
message.response = undefined;
// Send the result to |thorough-util.js|.
port.postMessage(message);
return response;
})
.catch(function(message) {
port.postMessage(message);
return Promise.reject();
})
);
});