mirror of
https://github.com/gorhill/uBlock.git
synced 2024-10-06 09:37:12 +02:00
Raise max buffer size for response body filtering
Related discussion: https://github.com/uBlockOrigin/uBlock-discussions/discussions/891
This commit is contained in:
parent
ad77938f24
commit
82a3992896
@ -19,29 +19,23 @@
|
|||||||
Home: https://github.com/gorhill/uBlock
|
Home: https://github.com/gorhill/uBlock
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* globals browser */
|
|
||||||
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
import htmlFilteringEngine from './html-filtering.js';
|
|
||||||
import httpheaderFilteringEngine from './httpheader-filtering.js';
|
|
||||||
import logger from './logger.js';
|
|
||||||
import scriptletFilteringEngine from './scriptlet-filtering.js';
|
|
||||||
import staticNetFilteringEngine from './static-net-filtering.js';
|
|
||||||
import textEncode from './text-encode.js';
|
|
||||||
import µb from './background.js';
|
|
||||||
import * as sfp from './static-filtering-parser.js';
|
|
||||||
import * as fc from './filtering-context.js';
|
import * as fc from './filtering-context.js';
|
||||||
import { isNetworkURI } from './uri-utils.js';
|
import * as sfp from './static-filtering-parser.js';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
sessionFirewall,
|
sessionFirewall,
|
||||||
sessionSwitches,
|
sessionSwitches,
|
||||||
sessionURLFiltering,
|
sessionURLFiltering,
|
||||||
} from './filtering-engines.js';
|
} from './filtering-engines.js';
|
||||||
|
import htmlFilteringEngine from './html-filtering.js';
|
||||||
|
import httpheaderFilteringEngine from './httpheader-filtering.js';
|
||||||
|
import { isNetworkURI } from './uri-utils.js';
|
||||||
|
import logger from './logger.js';
|
||||||
|
import scriptletFilteringEngine from './scriptlet-filtering.js';
|
||||||
|
import staticNetFilteringEngine from './static-net-filtering.js';
|
||||||
|
import textEncode from './text-encode.js';
|
||||||
|
import µb from './background.js';
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
@ -695,7 +689,7 @@ const bodyFilterer = (( ) => {
|
|||||||
'audio/x-mpegurl',
|
'audio/x-mpegurl',
|
||||||
]);
|
]);
|
||||||
const BINARY_TYPES = fc.FONT | fc.IMAGE | fc.MEDIA | fc.WEBSOCKET;
|
const BINARY_TYPES = fc.FONT | fc.IMAGE | fc.MEDIA | fc.WEBSOCKET;
|
||||||
const MAX_BUFFER_LENGTH = 3 * 1024 * 1024;
|
const MAX_RESPONSE_BUFFER_LENGTH = 10 * 1024 * 1024;
|
||||||
|
|
||||||
let textDecoder, textEncoder;
|
let textDecoder, textEncoder;
|
||||||
let mime = '';
|
let mime = '';
|
||||||
@ -703,12 +697,12 @@ const bodyFilterer = (( ) => {
|
|||||||
|
|
||||||
const contentTypeFromDetails = details => {
|
const contentTypeFromDetails = details => {
|
||||||
switch ( details.type ) {
|
switch ( details.type ) {
|
||||||
case 'script':
|
case 'script':
|
||||||
return 'text/javascript; charset=utf-8';
|
return 'text/javascript; charset=utf-8';
|
||||||
case 'stylesheet':
|
case 'stylesheet':
|
||||||
return 'text/css';
|
return 'text/css';
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return '';
|
return '';
|
||||||
};
|
};
|
||||||
@ -721,13 +715,13 @@ const bodyFilterer = (( ) => {
|
|||||||
|
|
||||||
const charsetFromMime = mime => {
|
const charsetFromMime = mime => {
|
||||||
switch ( mime ) {
|
switch ( mime ) {
|
||||||
case 'application/xml':
|
case 'application/xml':
|
||||||
case 'application/xhtml+xml':
|
case 'application/xhtml+xml':
|
||||||
case 'text/html':
|
case 'text/html':
|
||||||
case 'text/css':
|
case 'text/css':
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return 'utf-8';
|
return 'utf-8';
|
||||||
};
|
};
|
||||||
@ -811,7 +805,7 @@ const bodyFilterer = (( ) => {
|
|||||||
buffer.set(session.buffer);
|
buffer.set(session.buffer);
|
||||||
buffer.set(new Uint8Array(ev.data), session.buffer.byteLength);
|
buffer.set(new Uint8Array(ev.data), session.buffer.byteLength);
|
||||||
session.buffer = buffer;
|
session.buffer = buffer;
|
||||||
if ( session.buffer.length >= MAX_BUFFER_LENGTH ) {
|
if ( session.buffer.length >= MAX_RESPONSE_BUFFER_LENGTH ) {
|
||||||
sessions.delete(this);
|
sessions.delete(this);
|
||||||
this.write(session.buffer);
|
this.write(session.buffer);
|
||||||
this.disconnect();
|
this.disconnect();
|
||||||
|
Loading…
Reference in New Issue
Block a user