Skip to content

Commit be80daa

Browse files
authored
feat: migrate manifest to v3 (#1226)
1 parent 8090401 commit be80daa

File tree

4 files changed

+273
-221
lines changed

4 files changed

+273
-221
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
.eslintcache
55

66
node_modules
7-
dist
7+
dist
8+
_metadata

js/background.js

Lines changed: 188 additions & 186 deletions
Original file line numberDiff line numberDiff line change
@@ -1,201 +1,203 @@
11
/* eslint-disable no-unused-vars */
22
/* global GithubClient */
3-
chrome.browserAction.onClicked.addListener((tab) => {
3+
chrome.action.onClicked.addListener((tab) => {
44
chrome.tabs.create(
55
{
6-
url: chrome.extension.getURL('listen1.html'),
6+
url: chrome.runtime.getURL('listen1.html'),
77
},
88
(new_tab) => {
99
// Tab opened.
1010
}
1111
);
1212
});
13-
const MOBILE_UA =
14-
'Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30';
1513

16-
function hack_referer_header(details) {
17-
const replace_referer = true;
18-
let replace_origin = true;
19-
let add_referer = true;
20-
let add_origin = true;
14+
// const MOBILE_UA =
15+
// 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30';
16+
17+
// function hack_referer_header(details) {
18+
// const replace_referer = true;
19+
// let replace_origin = true;
20+
// let add_referer = true;
21+
// let add_origin = true;
22+
23+
// let referer_value = '';
24+
// let origin_value = '';
25+
// let ua_value = '';
26+
27+
// if (details.url.includes('://music.163.com/')) {
28+
// referer_value = 'https://music.163.com/';
29+
// }
30+
// if (details.url.includes('://interface3.music.163.com/')) {
31+
// referer_value = 'https://music.163.com/';
32+
// }
33+
// if (details.url.includes('://gist.githubusercontent.com/')) {
34+
// referer_value = 'https://gist.githubusercontent.com/';
35+
// }
36+
37+
// if (details.url.includes('.xiami.com/')) {
38+
// add_origin = false;
39+
// add_referer = false;
40+
// // referer_value = "https://www.xiami.com";
41+
// }
42+
43+
// if (details.url.includes('c.y.qq.com/')) {
44+
// referer_value = 'https://y.qq.com/';
45+
// origin_value = 'https://y.qq.com';
46+
// }
47+
// if (
48+
// details.url.includes('i.y.qq.com/') ||
49+
// details.url.includes('qqmusic.qq.com/') ||
50+
// details.url.includes('music.qq.com/') ||
51+
// details.url.includes('imgcache.qq.com/')
52+
// ) {
53+
// referer_value = 'https://y.qq.com/';
54+
// }
55+
56+
// if (details.url.includes('.kugou.com/')) {
57+
// referer_value = 'https://www.kugou.com/';
58+
// ua_value = MOBILE_UA;
59+
// }
60+
// if (details.url.includes('m.kugou.com/')) {
61+
// ua_value = MOBILE_UA;
62+
// }
63+
// if (details.url.includes('.kuwo.cn/')) {
64+
// referer_value = 'https://www.kuwo.cn/';
65+
// }
66+
67+
// if (
68+
// details.url.includes('.bilibili.com/') ||
69+
// details.url.includes('.bilivideo.com/')
70+
// ) {
71+
// referer_value = 'https://www.bilibili.com/';
72+
// replace_origin = false;
73+
// add_origin = false;
74+
// }
75+
76+
// if (details.url.includes('.bilivideo.cn')) {
77+
// referer_value = 'https://www.bilibili.com/';
78+
// origin_value = 'https://www.bilibili.com/';
79+
// add_referer = true;
80+
// add_origin = true;
81+
// }
82+
83+
// if (
84+
// details.url.includes('.taihe.com/') ||
85+
// details.url.includes('music.91q.com')
86+
// ) {
87+
// referer_value = 'https://music.taihe.com/';
88+
// }
89+
90+
// if (details.url.includes('.migu.cn')) {
91+
// referer_value = 'https://music.migu.cn/v3/music/player/audio?from=migu';
92+
// }
93+
94+
// if (details.url.includes('m.music.migu.cn')) {
95+
// referer_value = 'https://m.music.migu.cn/';
96+
// }
97+
98+
// if (
99+
// details.url.includes('app.c.nf.migu.cn') ||
100+
// details.url.includes('d.musicapp.migu.cn')
101+
// ) {
102+
// ua_value = MOBILE_UA;
103+
// add_origin = false;
104+
// add_referer = false;
105+
// }
106+
107+
// if (details.url.includes('jadeite.migu.cn')) {
108+
// ua_value = 'okhttp/3.12.12';
109+
// add_origin = false;
110+
// add_referer = false;
111+
// }
112+
113+
// if (origin_value === '') {
114+
// origin_value = referer_value;
115+
// }
116+
117+
// let isRefererSet = false;
118+
// let isOriginSet = false;
119+
// let isUASet = false;
120+
// const headers = details.requestHeaders;
121+
// const blockingResponse = {};
122+
123+
// for (let i = 0, l = headers.length; i < l; i += 1) {
124+
// if (
125+
// replace_referer &&
126+
// headers[i].name === 'Referer' &&
127+
// referer_value !== ''
128+
// ) {
129+
// headers[i].value = referer_value;
130+
// isRefererSet = true;
131+
// }
132+
// if (replace_origin && headers[i].name === 'Origin' && origin_value !== '') {
133+
// headers[i].value = origin_value;
134+
// isOriginSet = true;
135+
// }
136+
// if (headers[i].name === 'User-Agent' && ua_value !== '') {
137+
// headers[i].value = ua_value;
138+
// isUASet = true;
139+
// }
140+
// }
141+
142+
// if (add_referer && !isRefererSet && referer_value !== '') {
143+
// headers.push({
144+
// name: 'Referer',
145+
// value: referer_value,
146+
// });
147+
// }
148+
149+
// if (add_origin && !isOriginSet && origin_value !== '') {
150+
// headers.push({
151+
// name: 'Origin',
152+
// value: origin_value,
153+
// });
154+
// }
155+
156+
// if (!isUASet && ua_value !== '') {
157+
// headers.push({
158+
// name: 'User-Agent',
159+
// value: ua_value,
160+
// });
161+
// }
162+
163+
// blockingResponse.requestHeaders = headers;
164+
// return blockingResponse;
165+
// }
166+
167+
// const urls = [
168+
// '*://*.music.163.com/*',
169+
// '*://music.163.com/*',
170+
// '*://*.xiami.com/*',
171+
// '*://i.y.qq.com/*',
172+
// '*://c.y.qq.com/*',
173+
// '*://*.kugou.com/*',
174+
// '*://*.kuwo.cn/*',
175+
// '*://*.bilibili.com/*',
176+
// '*://*.bilivideo.com/*',
177+
// '*://*.bilivideo.cn/*',
178+
// '*://*.migu.cn/*',
179+
// '*://*.githubusercontent.com/*',
180+
// ];
181+
182+
// try {
183+
// chrome.webRequest.onBeforeSendHeaders.addListener(
184+
// hack_referer_header,
185+
// {
186+
// urls,
187+
// },
188+
// ['requestHeaders', 'blocking', 'extraHeaders']
189+
// );
190+
// } catch (err) {
191+
// // before chrome v72, extraHeader is not supported
192+
// chrome.webRequest.onBeforeSendHeaders.addListener(
193+
// hack_referer_header,
194+
// {
195+
// urls,
196+
// },
197+
// ['requestHeaders', 'blocking']
198+
// );
199+
// }
21200

22-
let referer_value = '';
23-
let origin_value = '';
24-
let ua_value = '';
25-
26-
if (details.url.includes('://music.163.com/')) {
27-
referer_value = 'https://music.163.com/';
28-
}
29-
if (details.url.includes('://interface3.music.163.com/')) {
30-
referer_value = 'https://music.163.com/';
31-
}
32-
if (details.url.includes('://gist.githubusercontent.com/')) {
33-
referer_value = 'https://gist.githubusercontent.com/';
34-
}
35-
36-
if (details.url.includes('.xiami.com/')) {
37-
add_origin = false;
38-
add_referer = false;
39-
// referer_value = "https://www.xiami.com";
40-
}
41-
42-
if (details.url.includes('c.y.qq.com/')) {
43-
referer_value = 'https://y.qq.com/';
44-
origin_value = 'https://y.qq.com';
45-
}
46-
if (
47-
details.url.includes('i.y.qq.com/') ||
48-
details.url.includes('qqmusic.qq.com/') ||
49-
details.url.includes('music.qq.com/') ||
50-
details.url.includes('imgcache.qq.com/')
51-
) {
52-
referer_value = 'https://y.qq.com/';
53-
}
54-
55-
if (details.url.includes('.kugou.com/')) {
56-
referer_value = 'https://www.kugou.com/';
57-
ua_value = MOBILE_UA;
58-
}
59-
if (details.url.includes('m.kugou.com/')) {
60-
ua_value = MOBILE_UA;
61-
}
62-
if (details.url.includes('.kuwo.cn/')) {
63-
referer_value = 'https://www.kuwo.cn/';
64-
}
65-
66-
if (
67-
details.url.includes('.bilibili.com/') ||
68-
details.url.includes('.bilivideo.com/')
69-
) {
70-
referer_value = 'https://www.bilibili.com/';
71-
replace_origin = false;
72-
add_origin = false;
73-
}
74-
75-
if (details.url.includes('.bilivideo.cn')) {
76-
referer_value = 'https://www.bilibili.com/';
77-
origin_value = 'https://www.bilibili.com/';
78-
add_referer = true;
79-
add_origin = true;
80-
}
81-
82-
if (
83-
details.url.includes('.taihe.com/') ||
84-
details.url.includes('music.91q.com')
85-
) {
86-
referer_value = 'https://music.taihe.com/';
87-
}
88-
89-
// if (details.url.includes('.migu.cn')) {
90-
// referer_value = 'https://music.migu.cn/v3/music/player/audio?from=migu';
91-
// }
92-
93-
// if (details.url.includes('m.music.migu.cn')) {
94-
// referer_value = 'https://m.music.migu.cn/';
95-
// }
96-
97-
// if (
98-
// details.url.includes('app.c.nf.migu.cn') ||
99-
// details.url.includes('d.musicapp.migu.cn')
100-
// ) {
101-
// ua_value = MOBILE_UA;
102-
// add_origin = false;
103-
// add_referer = false;
104-
// }
105-
106-
// if (details.url.includes('jadeite.migu.cn')) {
107-
// ua_value = 'okhttp/3.12.12';
108-
// add_origin = false;
109-
// add_referer = false;
110-
// }
111-
112-
if (origin_value === '') {
113-
origin_value = referer_value;
114-
}
115-
116-
let isRefererSet = false;
117-
let isOriginSet = false;
118-
let isUASet = false;
119-
const headers = details.requestHeaders;
120-
const blockingResponse = {};
121-
122-
for (let i = 0, l = headers.length; i < l; i += 1) {
123-
if (
124-
replace_referer &&
125-
headers[i].name === 'Referer' &&
126-
referer_value !== ''
127-
) {
128-
headers[i].value = referer_value;
129-
isRefererSet = true;
130-
}
131-
if (replace_origin && headers[i].name === 'Origin' && origin_value !== '') {
132-
headers[i].value = origin_value;
133-
isOriginSet = true;
134-
}
135-
if (headers[i].name === 'User-Agent' && ua_value !== '') {
136-
headers[i].value = ua_value;
137-
isUASet = true;
138-
}
139-
}
140-
141-
if (add_referer && !isRefererSet && referer_value !== '') {
142-
headers.push({
143-
name: 'Referer',
144-
value: referer_value,
145-
});
146-
}
147-
148-
if (add_origin && !isOriginSet && origin_value !== '') {
149-
headers.push({
150-
name: 'Origin',
151-
value: origin_value,
152-
});
153-
}
154-
155-
if (!isUASet && ua_value !== '') {
156-
headers.push({
157-
name: 'User-Agent',
158-
value: ua_value,
159-
});
160-
}
161-
162-
blockingResponse.requestHeaders = headers;
163-
return blockingResponse;
164-
}
165-
166-
const urls = [
167-
'*://*.music.163.com/*',
168-
'*://music.163.com/*',
169-
'*://*.xiami.com/*',
170-
'*://i.y.qq.com/*',
171-
'*://c.y.qq.com/*',
172-
'*://*.kugou.com/*',
173-
'*://*.kuwo.cn/*',
174-
'*://*.bilibili.com/*',
175-
'*://*.bilivideo.com/*',
176-
'*://*.bilivideo.cn/*',
177-
'*://*.migu.cn/*',
178-
'*://*.githubusercontent.com/*',
179-
];
180-
181-
try {
182-
chrome.webRequest.onBeforeSendHeaders.addListener(
183-
hack_referer_header,
184-
{
185-
urls,
186-
},
187-
['requestHeaders', 'blocking', 'extraHeaders']
188-
);
189-
} catch (err) {
190-
// before chrome v72, extraHeader is not supported
191-
chrome.webRequest.onBeforeSendHeaders.addListener(
192-
hack_referer_header,
193-
{
194-
urls,
195-
},
196-
['requestHeaders', 'blocking']
197-
);
198-
}
199201

200202
/**
201203
* Get tokens.

0 commit comments

Comments
 (0)