| 1 |
- !function(){"use strict";const e="single-file-response-fetch",t=window.fetch;function r(t){return new Promise(((r,a)=>{var s,n,i,o;s=new CustomEvent("single-file-request-fetch",{detail:t}),window.dispatchEvent(s),n=e,i=function s(n){var i,o,d;n.detail?n.detail.url==t&&(i=e,o=s,d=!1,window.removeEventListener(i,o,d),n.detail.response?r({status:n.detail.status,headers:new Map(n.detail.headers),arrayBuffer:async()=>n.detail.response}):a(n.detail.error)):a()},o=!1,window.addEventListener(n,i,o)}))}browser.runtime.onMessage.addListener((e=>{if("singlefile.fetchFrame"==e.method&&window.frameId&&window.frameId==e.frameId)return async function(e){try{let a=await t(e.url,{cache:"force-cache"});return 401!=a.status&&403!=a.status&&404!=a.status||(a=await Promise.race([r(e.url),new Promise(((e,t)=>setTimeout((()=>t()),5e3)))])),{status:a.status,headers:[...a.headers],array:Array.from(new Uint8Array(await a.arrayBuffer()))}}catch(e){return{error:e&&e.toString()}}}(e)}))}();
|