2 Commits

Author SHA1 Message Date
mrjvs
9f34642a96 Add some logging and use full urls 2024-01-31 18:55:34 +01:00
mrjvs
e1fa034074 Add background script to reload on load. Painful fix 2024-01-31 18:55:22 +01:00
2 changed files with 17 additions and 2 deletions

13
src/background.ts Normal file
View File

@@ -0,0 +1,13 @@
import { isChrome } from '~utils/extension';
// Both brave and firefox for some reason need this extension reload,
// If this isn't done, they will never load properly and will fail updateDynamicRules()
if (isChrome()) {
chrome.runtime.onStartup.addListener(() => {
chrome.runtime.reload();
});
} else {
browser.runtime.onStartup.addListener(() => {
browser.runtime.reload();
});
}

View File

@@ -49,19 +49,20 @@ const mapBodyToFetchBody = (body: Request['body'], bodyType: Request['bodyType']
const handler: PlasmoMessaging.MessageHandler<Request, Response<any>> = async (req, res) => { const handler: PlasmoMessaging.MessageHandler<Request, Response<any>> = async (req, res) => {
try { try {
const url = makeFullUrl(req.body.url, req.body);
await assertDomainWhitelist(req.sender.tab.url); await assertDomainWhitelist(req.sender.tab.url);
if (req.body.headers['User-Agent']) { if (req.body.headers['User-Agent']) {
await setDynamicRules({ await setDynamicRules({
ruleId: MAKE_REQUEST_DYNAMIC_RULE, ruleId: MAKE_REQUEST_DYNAMIC_RULE,
targetDomains: [new URL(req.body.url).hostname], targetDomains: [new URL(url).hostname],
requestHeaders: { requestHeaders: {
'User-Agent': req.body.headers['User-Agent'], 'User-Agent': req.body.headers['User-Agent'],
}, },
}); });
} }
const response = await fetch(makeFullUrl(req.body.url, req.body), { const response = await fetch(url, {
method: req.body.method, method: req.body.method,
headers: req.body.headers, headers: req.body.headers,
body: mapBodyToFetchBody(req.body.body, req.body.bodyType), body: mapBodyToFetchBody(req.body.body, req.body.bodyType),
@@ -80,6 +81,7 @@ const handler: PlasmoMessaging.MessageHandler<Request, Response<any>> = async (r
}, },
}); });
} catch (err) { } catch (err) {
console.error('failed request', err);
res.send({ res.send({
success: false, success: false,
error: err.message, error: err.message,