Skip to content

Commit 802834c

Browse files
committed
Merge branch 'develop'
2 parents 3845a1e + b0193e3 commit 802834c

File tree

23 files changed

+3349
-3802
lines changed

23 files changed

+3349
-3802
lines changed

package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,14 @@
5454
"json-loader": "^0.5.7",
5555
"mini-css-extract-plugin": "^0.10.0",
5656
"node-notifier": "8.0.1",
57-
"node-sass": "^4.14.1",
5857
"optimize-css-assets-webpack-plugin": "^5.0.3",
5958
"portfinder": "^1.0.28",
6059
"postcss-import": "^11.0.0",
6160
"postcss-loader": "^2.0.8",
6261
"postcss-url": "^7.2.1",
6362
"rollup": "^1.32.1",
6463
"rollup-plugin-commonjs": "^9.3.4",
64+
"sass": "^1.49.7",
6565
"sass-loader": "^10.0.1",
6666
"semver": "^5.7.1",
6767
"shelljs": "^0.7.6",
@@ -81,7 +81,6 @@
8181
},
8282
"browserslist": [
8383
"> 1%",
84-
"last 2 versions",
85-
"not ie <= 8"
84+
"last 2 versions"
8685
]
8786
}

src/background/main.js

Lines changed: 48 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ Main.prototype = {
7676
];
7777

7878
browser.webRequest.onBeforeSendHeaders.addListener(details => {
79+
let requestHeadersNeedOverride = [];
80+
7981
if (details.type === 'xmlhttprequest') {
8082
let hasOriginHeader = false;
8183
let hasReferer = false;
@@ -87,7 +89,10 @@ Main.prototype = {
8789
hasReferer = true;
8890

8991
if (details.url.indexOf('i.pximg.net') > -1 && !savePattern.test(header.value)) {
90-
details.requestHeaders[i].value = 'https://www.pixiv.net/';
92+
requestHeadersNeedOverride.push({
93+
name: 'referer',
94+
value: 'https://www.pixiv.net/'
95+
});
9196
}
9297
} else if (headerName === 'origin') {
9398
hasOriginHeader = true;
@@ -96,39 +101,39 @@ Main.prototype = {
96101

97102
if (details.url.indexOf('api.fanbox.cc') > -1) {
98103
if (!hasOriginHeader) {
99-
details.requestHeaders.push({
104+
requestHeadersNeedOverride.push({
100105
name: 'Origin',
101106
value: details.initiator ? details.initiator : 'https://www.fanbox.cc'
102107
});
103108
}
104109
}
105110

106111
if (!hasReferer) {
107-
details.requestHeaders.push({
112+
requestHeadersNeedOverride.push({
108113
name: 'referer',
109114
value: 'https://www.pixiv.net/'
110115
});
111116
}
112117

118+
if (requestHeadersNeedOverride.length > 0) {
119+
this.overrideHttpHeaders(details.requestHeaders, requestHeadersNeedOverride);
120+
}
121+
113122
return { requestHeaders: details.requestHeaders }
114123
}
115124
}, {
116125
urls: filter
117126
}, opt_onBeforeSendHeaders_extraInfoSpec);
118127

119128
browser.webRequest.onHeadersReceived.addListener(details => {
120-
let accessControlAllowOrigin = '*';
129+
let accessControlAllowOrigin = '*',
130+
responseHeadersNeedOverride = [];
121131

122132
if (details.type === 'xmlhttprequest') {
123-
details.responseHeaders.forEach((header, i) => {
124-
if (header.name.toLowerCase() === 'access-control-allow-origin') {
125-
details.responseHeaders.splice(i, 1);
126-
}
127-
});
128-
129133
if (details.frameId === 0 && /^https:\/\/[^.]+\.fanbox\.cc/.test(details.initiator)) {
130134
accessControlAllowOrigin = details.initiator;
131-
details.responseHeaders.push({
135+
136+
responseHeadersNeedOverride.push({
132137
name: 'Access-Control-Allow-Credentials',
133138
value: 'true'
134139
});
@@ -140,28 +145,30 @@ Main.prototype = {
140145
if (this.items.ugoiraConvertTool === 'ffmpeg' &&
141146
/^https:\/\/(www\.)?pixiv\.net\/([a-z\d\-_]*\/)?artworks/i.test(details.url)
142147
) {
143-
details.responseHeaders.push({
148+
responseHeadersNeedOverride.push({
144149
name: 'Cross-Origin-Embedder-Policy',
145150
value: 'require-corp'
146151
});
147152

148-
details.responseHeaders.push({
153+
responseHeadersNeedOverride.push({
149154
name: 'Cross-Origin-Opener-Policy',
150155
value: 'same-origin'
151156
});
152157
}
153158
}
154159

155-
details.responseHeaders.push({
160+
responseHeadersNeedOverride.push({
156161
name: 'Cross-Origin-Resource-Policy',
157162
value: 'cross-origin'
158163
});
159164

160-
details.responseHeaders.push({
165+
responseHeadersNeedOverride.push({
161166
name: 'Access-Control-Allow-Origin',
162167
value: accessControlAllowOrigin
163168
});
164169

170+
this.overrideHttpHeaders(details.responseHeaders, responseHeadersNeedOverride);
171+
165172
return { responseHeaders: details.responseHeaders };
166173
}, {
167174
urls: filter
@@ -216,6 +223,32 @@ Main.prototype = {
216223
});
217224
},
218225

226+
/**
227+
*
228+
* @param {{name: string, value: string}[]} headers
229+
* @param {{name: string, value: string}[]} headersNeedOverride
230+
* @returns {void}
231+
*/
232+
overrideHttpHeaders(headers, headersNeedOverride) {
233+
let headerNames = headersNeedOverride.map(header => header.name);
234+
235+
/**
236+
* Let's keep thing simple, delete headers which are need to be
237+
* override first, then set new headers to the headers.
238+
*/
239+
for (let i = 0; headers[i];) {
240+
if (headerNames.indexOf(headers[i].name.toLowerCase()) >= 0) {
241+
headers.splice(i, 1);
242+
} else {
243+
i++;
244+
}
245+
}
246+
247+
/**
248+
*/
249+
headersNeedOverride.forEach(header => headers.push(header));
250+
},
251+
219252
/**
220253
* Update action icon
221254
*/

src/config/default.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,4 +207,10 @@ export default Object.assign({}, {
207207
* @since 5.3.0
208208
*/
209209
multipleDownloadsGapTime: 150,
210+
211+
/**
212+
* @since 5.5.0
213+
*/
214+
downloadPanelPosition: 'center',
215+
downloadPanelStyle: 1,
210216
});

src/content_scripts/NovelAdapter.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,13 @@ class NovelAdapter {
5555
month: dateFormatter.getMonth(),
5656
day: dateFormatter.getDay()
5757
}
58+
59+
// series data
60+
if (context.seriesNavData) {
61+
this.novelContext.seriesId = context.seriesNavData.seriesId;
62+
this.novelContext.seriesTitle = context.seriesNavData.title;
63+
this.novelContext.seriesOrder = context.seriesNavData.order;
64+
}
5865
}
5966

6067
makeTool() {

0 commit comments

Comments
 (0)