Merge pull request #14 from movie-web/fix/#876

fix headers not being applied to request
This commit is contained in:
mrjvs
2024-02-07 16:11:58 +01:00
committed by GitHub
3 changed files with 22 additions and 6 deletions

View File

@@ -44,7 +44,8 @@
"manifest": { "manifest": {
"permissions": [ "permissions": [
"declarativeNetRequest", "declarativeNetRequest",
"tabs" "tabs",
"cookies"
], ],
"host_permissions": [ "host_permissions": [
"<all_urls>", "<all_urls>",

View File

@@ -52,13 +52,11 @@ const handler: PlasmoMessaging.MessageHandler<Request, Response<any>> = async (r
const url = makeFullUrl(req.body.url, req.body); 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 (Object.keys(req.body.headers).length > 0) {
await setDynamicRules({ await setDynamicRules({
ruleId: MAKE_REQUEST_DYNAMIC_RULE, ruleId: MAKE_REQUEST_DYNAMIC_RULE,
targetDomains: [new URL(url).hostname], targetDomains: [new URL(url).hostname],
requestHeaders: { requestHeaders: req.body.headers,
'User-Agent': req.body.headers['User-Agent'],
},
}); });
} }
@@ -71,11 +69,18 @@ const handler: PlasmoMessaging.MessageHandler<Request, Response<any>> = async (r
const contentType = response.headers.get('content-type'); const contentType = response.headers.get('content-type');
const body = contentType?.includes('application/json') ? await response.json() : await response.text(); const body = contentType?.includes('application/json') ? await response.json() : await response.text();
const cookies = await (chrome || browser).cookies.getAll({
url: response.url,
});
res.send({ res.send({
success: true, success: true,
response: { response: {
statusCode: response.status, statusCode: response.status,
headers: Object.fromEntries(response.headers.entries()), // Headers object isn't serializable headers: {
...Object.fromEntries(response.headers.entries()),
'Set-Cookie': cookies.map((cookie) => `${cookie.name}=${cookie.value}`).join(', '),
},
body, body,
finalUrl: response.url, finalUrl: response.url,
}, },

View File

@@ -56,6 +56,11 @@ export const setDynamicRules = async (body: DynamicRule) => {
operation: chrome.declarativeNetRequest.HeaderOperation.SET, operation: chrome.declarativeNetRequest.HeaderOperation.SET,
value: '*', value: '*',
}, },
{
header: 'Access-Control-Allow-Credentials',
operation: chrome.declarativeNetRequest.HeaderOperation.SET,
value: 'true',
},
...mapHeadersToDeclarativeNetRequestHeaders( ...mapHeadersToDeclarativeNetRequestHeaders(
body.responseHeaders ?? {}, body.responseHeaders ?? {},
chrome.declarativeNetRequest.HeaderOperation.SET, chrome.declarativeNetRequest.HeaderOperation.SET,
@@ -99,6 +104,11 @@ export const setDynamicRules = async (body: DynamicRule) => {
operation: 'set', operation: 'set',
value: '*', value: '*',
}, },
{
header: 'Access-Control-Allow-Credentials',
operation: 'set',
value: 'true',
},
...mapHeadersToDeclarativeNetRequestHeaders(body.responseHeaders ?? {}, 'set'), ...mapHeadersToDeclarativeNetRequestHeaders(body.responseHeaders ?? {}, 'set'),
], ],
}, },