| 1 |
- !function(){"use strict";const e=new Map;function t(r,s,n){return new Promise(((i,a)=>{const o=new XMLHttpRequest;if(o.withCredentials=!0,o.responseType="arraybuffer",o.onerror=e=>a(new Error(e.detail)),o.onreadystatechange=()=>{o.readyState==XMLHttpRequest.DONE&&(o.status||o.response.byteLength?401!=o.status&&403!=o.status&&404!=o.status||n?i({array:Array.from(new Uint8Array(o.response)),headers:{"content-type":o.getResponseHeader("Content-Type")},status:o.status}):t(r,s,!0).then(i).catch(a):a())},o.open("GET",r,!0),n){const t=String(Math.random()).substring(2);d=t,f=s.referrer,e.set(d,f),o.setRequestHeader("x-single-file-request-id",t)}var d,f;o.send()}))}browser.runtime.onMessage.addListener(((e,r)=>{if(e.method&&e.method.startsWith("singlefile.fetch"))return new Promise((s=>{(function(e,r){if("singlefile.fetch"==e.method)return t(e.url,{referrer:e.referrer});if("singlefile.fetchFrame"==e.method)return browser.tabs.sendMessage(r.tab.id,e)})(e,r).then(s).catch((e=>s({error:e&&e.toString()})))}))})),browser.runtime.onMessage.addListener(((e,t)=>{if("singlefile.frameTree.initResponse"==e.method||"singlefile.frameTree.ackInitRequest"==e.method)return browser.tabs.sendMessage(t.tab.id,e,{frameId:0}),Promise.resolve({})}));const r=new Map;function s(e,t){e.delete(t)}browser.runtime.onMessage.addListener(((e,t)=>{if("singlefile.lazyTimeout.setTimeout"==e.method){let n,i=r.get(t.tab.id);if(i)if(n=i.get(t.frameId),n){const t=n.get(e.type);t&&clearTimeout(t)}else n=new Map;const a=setTimeout((async()=>{try{const n=r.get(t.tab.id),i=n.get(t.frameId);n&&i&&s(i,e.type),await browser.tabs.sendMessage(t.tab.id,{method:"singlefile.lazyTimeout.onTimeout",type:e.type})}catch(e){}}),e.delay);return i||(i=new Map,n=new Map,i.set(t.frameId,n),r.set(t.tab.id,i)),n.set(e.type,a),Promise.resolve({})}if("singlefile.lazyTimeout.clearTimeout"==e.method){let n=r.get(t.tab.id);if(n){const r=n.get(t.frameId);if(r){const t=r.get(e.type);t&&clearTimeout(t),s(r,e.type)}}return Promise.resolve({})}})),browser.tabs.onRemoved.addListener((e=>r.delete(e)))}();
|