function listener(details) { let filter = browser.webRequest.filterResponseData(details.requestId); let data = []; filter.ondata = event => { data.push(event.data); }; filter.onstop = async event => { let blob = new Blob(data, {type: 'text/javascript'}); let str = await blob.text(); console.log(details, str); for (let buffer of data) filter.write(buffer); filter.close(); }; } browser.webRequest.onBeforeRequest.addListener( listener, {urls: [""], types: ["script"]}, ["blocking"] );