(request: FetchRequest)
| 15 | const rejectors = new Map<string, (reason?: any) => void>(); |
| 16 | |
| 17 | export async function bgFetch(request: FetchRequest): Promise<string> { |
| 18 | if ((window as any).DarkReader?.Plugins?.fetch) { |
| 19 | return (window as any).DarkReader.Plugins.fetch(request); |
| 20 | } |
| 21 | const parsedURL = new URL(request.url); |
| 22 | if (parsedURL.origin !== request.origin && shouldIgnoreCors(parsedURL)) { |
| 23 | throw new Error('Cross-origin limit reached'); |
| 24 | } |
| 25 | return new Promise<string>((resolve, reject) => { |
| 26 | const id = generateUID(); |
| 27 | resolvers.set(id, resolve); |
| 28 | rejectors.set(id, reject); |
| 29 | chrome.runtime.sendMessage<MessageCStoBG>({type: MessageTypeCStoBG.FETCH, data: request, id}); |
| 30 | }); |
| 31 | } |
| 32 | |
| 33 | chrome.runtime.onMessage.addListener(({type, data, error, id}: MessageBGtoCS) => { |
| 34 | if (type === MessageTypeBGtoCS.FETCH_RESPONSE) { |
no test coverage detected
searching dependent graphs…