mirror of
https://github.com/movie-web/extension.git
synced 2025-09-13 11:03:26 +00:00
Merge pull request #14 from movie-web/fix/#876
fix headers not being applied to request
This commit is contained in:
@@ -44,7 +44,8 @@
|
||||
"manifest": {
|
||||
"permissions": [
|
||||
"declarativeNetRequest",
|
||||
"tabs"
|
||||
"tabs",
|
||||
"cookies"
|
||||
],
|
||||
"host_permissions": [
|
||||
"<all_urls>",
|
||||
|
@@ -52,13 +52,11 @@ const handler: PlasmoMessaging.MessageHandler<Request, Response<any>> = async (r
|
||||
const url = makeFullUrl(req.body.url, req.body);
|
||||
await assertDomainWhitelist(req.sender.tab.url);
|
||||
|
||||
if (req.body.headers['User-Agent']) {
|
||||
if (Object.keys(req.body.headers).length > 0) {
|
||||
await setDynamicRules({
|
||||
ruleId: MAKE_REQUEST_DYNAMIC_RULE,
|
||||
targetDomains: [new URL(url).hostname],
|
||||
requestHeaders: {
|
||||
'User-Agent': req.body.headers['User-Agent'],
|
||||
},
|
||||
requestHeaders: req.body.headers,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -71,11 +69,18 @@ const handler: PlasmoMessaging.MessageHandler<Request, Response<any>> = async (r
|
||||
const contentType = response.headers.get('content-type');
|
||||
const body = contentType?.includes('application/json') ? await response.json() : await response.text();
|
||||
|
||||
const cookies = await (chrome || browser).cookies.getAll({
|
||||
url: response.url,
|
||||
});
|
||||
|
||||
res.send({
|
||||
success: true,
|
||||
response: {
|
||||
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,
|
||||
finalUrl: response.url,
|
||||
},
|
||||
|
@@ -56,6 +56,11 @@ export const setDynamicRules = async (body: DynamicRule) => {
|
||||
operation: chrome.declarativeNetRequest.HeaderOperation.SET,
|
||||
value: '*',
|
||||
},
|
||||
{
|
||||
header: 'Access-Control-Allow-Credentials',
|
||||
operation: chrome.declarativeNetRequest.HeaderOperation.SET,
|
||||
value: 'true',
|
||||
},
|
||||
...mapHeadersToDeclarativeNetRequestHeaders(
|
||||
body.responseHeaders ?? {},
|
||||
chrome.declarativeNetRequest.HeaderOperation.SET,
|
||||
@@ -99,6 +104,11 @@ export const setDynamicRules = async (body: DynamicRule) => {
|
||||
operation: 'set',
|
||||
value: '*',
|
||||
},
|
||||
{
|
||||
header: 'Access-Control-Allow-Credentials',
|
||||
operation: 'set',
|
||||
value: 'true',
|
||||
},
|
||||
...mapHeadersToDeclarativeNetRequestHeaders(body.responseHeaders ?? {}, 'set'),
|
||||
],
|
||||
},
|
||||
|
Reference in New Issue
Block a user