Skip to content

Commit 00be1e3

Browse files
committed
v1.2
1 parent 372e085 commit 00be1e3

File tree

7 files changed

+308
-248
lines changed

7 files changed

+308
-248
lines changed

background.js

Lines changed: 94 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,105 +1,109 @@
11
chrome.storage.local.get(function(items) {
2-
var ext_storage = items;
2+
var ext_storage = items;
33

4-
function createUserAgent() {
5-
var string = '',
6-
os = {
7-
'Windows': 'Windows NT 10.0; Win64; x64',
8-
'Windows 7': 'Windows NT 6.1',
9-
'Windows 8.1': 'Windows NT 6.3',
10-
'Windows 8': 'Windows NT 6.2',
11-
'Windows XP': 'Windows NT 5.1',
12-
'Windows Vista': 'Windows NT 6.0',
13-
'Windows ME': 'Windows ME',
14-
'Windows 2000': 'Windows NT 5.0',
15-
'Windows 98': 'Windows 98',
16-
'macOS': 'Macintosh; Intel Mac OS X 10_15_5',
17-
'Linux': 'Linux',
18-
'Ubuntu': 'X11; Ubuntu;',
19-
'Chrome OS': 'X11; CrOS x86_64',
20-
'Android': 'Android 10',
21-
'iOS': 'iPhone; CPU OS 13_5_1 like Mac OS X',
22-
'Google Bot': 'compatible; Googlebot/2.1; +http://www.google.com/bot.html'
23-
},
24-
browser = {
25-
'Chrome': 'Chrome/85.0.4183.16',
26-
'Safari': 'Version/13.1.1 Safari/605.1.15/9xaIHXt7-27',
27-
'Firefox': 'Gecko/20100101 Firefox/77.0',
28-
'Edge': 'Chrome/85.0.4183.0 Safari/537.36 Edg/85.0.564.0',
29-
'IE': 'Trident/7.0)',
30-
'Opera': 'Presto/2.12 Version/12.16',
31-
'Samsung Internet': 'SamsungBrowser/10.2 Chrome/71.0.3578.99 Mobile Safari/537.36',
32-
'UC Browser': 'Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.9.7.1153 Mobile Safari/537.36'
33-
};
4+
function createUserAgent() {
5+
var string = '',
6+
os = {
7+
'Windows': 'Windows NT 10.0; Win64; x64',
8+
'Windows 7': 'Windows NT 6.1',
9+
'Windows 8.1': 'Windows NT 6.3',
10+
'Windows 8': 'Windows NT 6.2',
11+
'Windows XP': 'Windows NT 5.1',
12+
'Windows Vista': 'Windows NT 6.0',
13+
'Windows ME': 'Windows ME',
14+
'Windows 2000': 'Windows NT 5.0',
15+
'Windows 98': 'Windows 98',
16+
'macOS': 'Macintosh; Intel Mac OS X 10_15_5',
17+
'Linux': 'Linux',
18+
'Ubuntu': 'X11; Ubuntu;',
19+
'Chrome OS': 'X11; CrOS x86_64',
20+
'Android': 'Android 10',
21+
'iOS': 'iPhone; CPU OS 13_5_1 like Mac OS X',
22+
'Google Bot': 'compatible; Googlebot/2.1; +http://www.google.com/bot.html'
23+
},
24+
browser = {
25+
'Chrome': 'Chrome/85.0.4183.16',
26+
'Safari': 'Version/13.1.1 Safari/605.1.15/9xaIHXt7-27',
27+
'Firefox': 'Gecko/20100101 Firefox/77.0',
28+
'Edge': 'Chrome/85.0.4183.0 Safari/537.36 Edg/85.0.564.0',
29+
'IE': 'Trident/7.0)',
30+
'Opera': 'Presto/2.12 Version/12.16',
31+
'Samsung Internet': 'SamsungBrowser/10.2 Chrome/71.0.3578.99 Mobile Safari/537.36',
32+
'UC Browser': 'Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.9.7.1153 Mobile Safari/537.36'
33+
};
3434

35-
if (ext_storage.browser === 'Opera') {
36-
string += 'Opera/9.80 (';
37-
} else {
38-
string += 'Mozilla/5.0 (';
39-
}
35+
if (ext_storage.browser === 'Opera') {
36+
string += 'Opera/9.80 (';
37+
} else {
38+
string += 'Mozilla/5.0 (';
39+
}
4040

41-
string += os[ext_storage.os] + ') ';
41+
string += os[ext_storage.os] + ') ';
4242

43-
if (ext_storage.browser === 'Chrome') {
44-
string += 'AppleWebKit/537.36 (KHTML, like Gecko) ';
45-
} else if (ext_storage.browser === 'Safari') {
46-
string += 'AppleWebKit/605.1.15 (KHTML, like Gecko) ';
47-
} else if (ext_storage.browser === 'Edge') {
48-
string += 'AppleWebKit/537.36 (KHTML, like Gecko) ';
49-
} else if (ext_storage.browser === 'Opera') {
50-
string += 'AppleWebKit/537.36 (KHTML, like Gecko) ';
51-
} else if (ext_storage.browser === 'Samsung Internet') {
52-
string += 'AppleWebKit/537.36 (KHTML, like Gecko) ';
53-
} else if (ext_storage.browser === 'UC Browser') {
54-
string += 'AppleWebKit/537.36 (KHTML, like Gecko) ';
55-
}
43+
if (ext_storage.browser === 'Chrome') {
44+
string += 'AppleWebKit/537.36 (KHTML, like Gecko) ';
45+
} else if (ext_storage.browser === 'Safari') {
46+
string += 'AppleWebKit/605.1.15 (KHTML, like Gecko) ';
47+
} else if (ext_storage.browser === 'Edge') {
48+
string += 'AppleWebKit/537.36 (KHTML, like Gecko) ';
49+
} else if (ext_storage.browser === 'Opera') {
50+
string += 'AppleWebKit/537.36 (KHTML, like Gecko) ';
51+
} else if (ext_storage.browser === 'Samsung Internet') {
52+
string += 'AppleWebKit/537.36 (KHTML, like Gecko) ';
53+
} else if (ext_storage.browser === 'UC Browser') {
54+
string += 'AppleWebKit/537.36 (KHTML, like Gecko) ';
55+
}
5656

57-
if (ext_storage.os === 'iOS') {
58-
string += ' (iPad8,3; iOS 13_5_1) ';
59-
}
57+
if (ext_storage.os === 'iOS') {
58+
string += ' (iPad8,3; iOS 13_5_1) ';
59+
}
6060

61-
string += browser[ext_storage.browser];
61+
string += browser[ext_storage.browser];
6262

63-
return string;
64-
}
63+
return string;
64+
}
6565

66-
function requestListener(request) {
67-
if (typeof request.requestHeaders === 'object') {
68-
for (var header of request.requestHeaders) {
69-
if (header.name.toLowerCase() === 'user-agent') {
70-
header.value = createUserAgent();
71-
}
72-
}
73-
}
66+
function requestListener(request) {
67+
if (typeof request.requestHeaders === 'object') {
68+
for (var header of request.requestHeaders) {
69+
if (header.name.toLowerCase() === 'user-agent') {
70+
if (ext_storage.custom && ext_storage.custom !== '') {
71+
header.value = ext_storage.custom;
72+
} else {
73+
header.value = createUserAgent();
74+
}
75+
}
76+
}
77+
}
7478

75-
return {
76-
requestHeaders: request.requestHeaders
77-
};
78-
}
79+
return {
80+
requestHeaders: request.requestHeaders
81+
};
82+
}
7983

80-
chrome.webRequest.onBeforeSendHeaders.addListener(
81-
requestListener, {
82-
urls: ['<all_urls>']
83-
}, ['blocking', 'requestHeaders']
84-
);
84+
chrome.webRequest.onBeforeSendHeaders.addListener(
85+
requestListener, {
86+
urls: ['<all_urls>']
87+
}, ['blocking', 'requestHeaders']
88+
);
8589

86-
chrome.storage.onChanged.addListener(function(changes) {
87-
for (var key in changes) {
88-
var value = changes[key].newValue;
90+
chrome.storage.onChanged.addListener(function(changes) {
91+
for (var key in changes) {
92+
var value = changes[key].newValue;
8993

90-
ext_storage[key] = changes[key].newValue;
91-
}
94+
ext_storage[key] = changes[key].newValue;
95+
}
9296

93-
chrome.webRequest.onBeforeSendHeaders.removeListener(
94-
requestListener, {
95-
urls: ['<all_urls>']
96-
}, ['blocking', 'requestHeaders']
97-
);
97+
chrome.webRequest.onBeforeSendHeaders.removeListener(
98+
requestListener, {
99+
urls: ['<all_urls>']
100+
}, ['blocking', 'requestHeaders']
101+
);
98102

99-
chrome.webRequest.onBeforeSendHeaders.addListener(
100-
requestListener, {
101-
urls: ['<all_urls>']
102-
}, ['blocking', 'requestHeaders']
103-
);
104-
});
105-
});
103+
chrome.webRequest.onBeforeSendHeaders.addListener(
104+
requestListener, {
105+
urls: ['<all_urls>']
106+
}, ['blocking', 'requestHeaders']
107+
);
108+
});
109+
});

content-scripts.js

Lines changed: 0 additions & 59 deletions
This file was deleted.

index.html

Lines changed: 63 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -3,57 +3,62 @@
33
<head>
44
<meta charset=utf-8>
55
<style>
6-
html,
7-
body
8-
{
9-
width: 344px;
10-
height: 240px;
11-
margin: 0 4px;
12-
background: #eee;
13-
}
14-
body {
15-
display: flex;
16-
align-items: center;
17-
justify-content: center;
18-
}
19-
div
20-
{
21-
display: flex;
22-
23-
align-items: center;
24-
25-
background: #fafafa;
26-
width: 300px;
27-
border: 1px solid #ddd;
28-
border-radius: 4px;
29-
}
30-
input
31-
{
32-
min-width: 0;
33-
height: 48px;
34-
margin: 0;
35-
padding: 0;
36-
37-
border: none;
38-
outline: none;
39-
background: transparent;
40-
flex: 1;
41-
color: #111
42-
}
43-
span
44-
{
45-
margin: 0 4px;
46-
cursor: default
47-
}
48-
input, span
49-
{
50-
font-size: 14px;
51-
line-height: 14px;
52-
text-align: center;
53-
}
54-
input::-webkit-calendar-picker-indicator {
55-
display: none;
56-
}
6+
html, body {
7+
width: 344px;
8+
height: 240px;
9+
margin: 0 4px;
10+
background: #eee
11+
}
12+
13+
body {
14+
display: flex;
15+
flex-direction: column;
16+
align-items: center;
17+
justify-content: center
18+
}
19+
20+
div {
21+
display: flex;
22+
width: 300px;
23+
border: 1px solid #ddd;
24+
border-radius: 4px;
25+
background: #fafafa;
26+
align-items: center
27+
}
28+
29+
input {
30+
min-width: 0;
31+
height: 48px;
32+
margin: 0;
33+
padding: 0;
34+
color: #111;
35+
border: none;
36+
outline: none;
37+
background: transparent;
38+
flex: 1
39+
}
40+
41+
div > span {
42+
margin: 0 4px;
43+
cursor: default
44+
}
45+
46+
div > input,
47+
div > span {
48+
font-size: 14px;
49+
line-height: 14px;
50+
text-align: center
51+
}
52+
53+
input::-webkit-calendar-picker-indicator {
54+
display: none
55+
}
56+
57+
body > span {
58+
font-size: 14px;
59+
margin: 16px;
60+
color: #555
61+
}
5762
</style>
5863
</head>
5964
<body>
@@ -82,7 +87,13 @@
8287
<option>UC Browser</option>
8388
</datalist>
8489
</div>
90+
91+
<span>or</span>
92+
93+
<div>
94+
<input type=text id=custom placeholder=Custom>
95+
</div>
8596

8697
<script src=popup.js></script>
8798
</body>
88-
</html>
99+
</html>

0 commit comments

Comments
 (0)