Merge pull request #10 from movie-web/fix-firefox-and-brave

Fix firefox and brave not working
This commit is contained in:
mrjvs
2024-01-31 19:45:26 +01:00
committed by GitHub
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) => {
try {
const url = makeFullUrl(req.body.url, req.body);
await assertDomainWhitelist(req.sender.tab.url);
if (req.body.headers['User-Agent']) {
await setDynamicRules({
ruleId: MAKE_REQUEST_DYNAMIC_RULE,
targetDomains: [new URL(req.body.url).hostname],
targetDomains: [new URL(url).hostname],
requestHeaders: {
'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,
headers: req.body.headers,
body: mapBodyToFetchBody(req.body.body, req.body.bodyType),
@@ -80,6 +81,7 @@ const handler: PlasmoMessaging.MessageHandler<Request, Response<any>> = async (r
},
});
} catch (err) {
console.error('failed request', err);
res.send({
success: false,
error: err.message,