An event handler that will be called when the stream has no more data to deliver. In the event handler you can still call filter functions such as write()
, disconnect()
, or close()
.
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
onstop |
No |
No |
57 |
? |
No |
No |
? |
? |
57 |
? |
? |
? |
This example will append "extra stuff" to the response:
function listener(details) { let filter = browser.webRequest.filterResponseData(details.requestId); let encoder = new TextEncoder(); filter.ondata = event => { // pass through all the response data filter.write(event.data); } filter.onstop = event => { filter.write(encoder.encode("extra stuff")); filter.disconnect(); } } browser.webRequest.onBeforeRequest.addListener( listener, {urls: ["https://example.com/*"], types: ["main_frame"]}, ["blocking"] );
Here's another version of the example above:
function listener(details) { let filter = browser.webRequest.filterResponseData(details.requestId); let encoder = new TextEncoder(); let data = []; filter.ondata = event => { data.push(event.data); }; filter.onstop = event => { for (let buffer of data) { filter.write(buffer); } filter.write(encoder.encode("extra stuff")); filter.close(); }; } browser.webRequest.onBeforeRequest.addListener( listener, {urls: ["https://example.com/"], types: ["main_frame"]}, ["blocking"] );
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/onstop