@browserless.io/browserless 2.12.0-beta-3 → 2.12.0-beta-4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/browsers/chromium.cdp.d.ts +1 -1
- package/build/browsers/chromium.cdp.js +2 -2
- package/build/browsers/chromium.playwright.d.ts +1 -1
- package/build/browsers/chromium.playwright.js +2 -2
- package/build/browsers/firefox.playwright.d.ts +1 -1
- package/build/browsers/firefox.playwright.js +2 -2
- package/build/browsers/index.d.ts +3 -2
- package/build/browsers/index.js +36 -17
- package/build/browsers/webkit.playwright.d.ts +1 -1
- package/build/browsers/webkit.playwright.js +4 -4
- package/build/routes/chrome/http/pdf.post.body.json +8 -8
- package/build/routes/chrome/http/scrape.post.body.json +8 -8
- package/build/routes/chrome/http/screenshot.post.body.json +8 -8
- package/build/routes/chromium/http/content.post.body.json +8 -8
- package/build/routes/chromium/http/pdf.post.body.json +8 -8
- package/build/routes/chromium/http/scrape.post.body.json +8 -8
- package/build/types.d.ts +1 -1
- package/extensions/ublock/_locales/eu/messages.json +4 -4
- package/extensions/ublock/_locales/hi/messages.json +5 -5
- package/extensions/ublock/_locales/kn/messages.json +11 -11
- package/extensions/ublock/_locales/nb/messages.json +2 -2
- package/extensions/ublock/_locales/no/messages.json +2 -2
- package/extensions/ublock/_locales/ro/messages.json +1 -1
- package/extensions/ublock/_locales/sv/messages.json +1 -1
- package/extensions/ublock/_locales/zh_CN/messages.json +2 -2
- package/extensions/ublock/assets/assets.json +3 -8
- package/extensions/ublock/assets/resources/scriptlets.js +128 -31
- package/extensions/ublock/assets/thirdparties/easylist/easylist.txt +4870 -3560
- package/extensions/ublock/assets/thirdparties/easylist/easyprivacy.txt +662 -173
- package/extensions/ublock/assets/thirdparties/pgl.yoyo.org/as/serverlist +10 -42
- package/extensions/ublock/assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat +241 -80
- package/extensions/ublock/assets/thirdparties/urlhaus-filter/urlhaus-filter-online.txt +2093 -1224
- package/extensions/ublock/assets/ublock/badlists.txt +2 -0
- package/extensions/ublock/assets/ublock/badware.min.txt +408 -287
- package/extensions/ublock/assets/ublock/filters.min.txt +947 -645
- package/extensions/ublock/assets/ublock/privacy.min.txt +43 -8
- package/extensions/ublock/assets/ublock/quick-fixes.min.txt +55 -93
- package/extensions/ublock/assets/ublock/unbreak.min.txt +52 -19
- package/extensions/ublock/css/1p-filters.css +2 -0
- package/extensions/ublock/css/codemirror.css +2 -2
- package/extensions/ublock/css/dashboard.css +2 -5
- package/extensions/ublock/css/epicker-ui.css +3 -3
- package/extensions/ublock/css/fa-icons.css +3 -0
- package/extensions/ublock/css/logger-ui-inspector.css +1 -0
- package/extensions/ublock/css/logger-ui.css +44 -32
- package/extensions/ublock/img/fontawesome/fontawesome-defs.svg +1 -0
- package/extensions/ublock/js/3p-filters.js +4 -5
- package/extensions/ublock/js/biditrie.js +16 -11
- package/extensions/ublock/js/cachestorage.js +37 -37
- package/extensions/ublock/js/contentscript-extra.js +0 -2
- package/extensions/ublock/js/contentscript.js +1 -6
- package/extensions/ublock/js/epicker-ui.js +28 -36
- package/extensions/ublock/js/fa-icons.js +1 -0
- package/extensions/ublock/js/hntrie.js +19 -13
- package/extensions/ublock/js/logger-ui-inspector.js +6 -13
- package/extensions/ublock/js/logger-ui.js +264 -264
- package/extensions/ublock/js/s14e-serializer.js +267 -264
- package/extensions/ublock/js/scriptlet-filtering.js +12 -18
- package/extensions/ublock/js/scriptlets/dom-inspector.js +1 -5
- package/extensions/ublock/js/scriptlets/epicker.js +53 -59
- package/extensions/ublock/js/start.js +0 -8
- package/extensions/ublock/js/storage.js +2 -9
- package/extensions/ublock/js/vapi-background.js +19 -20
- package/extensions/ublock/js/vapi-common.js +2 -7
- package/extensions/ublock/js/vapi.js +0 -4
- package/extensions/ublock/js/webext.js +23 -15
- package/extensions/ublock/logger-ui.html +24 -15
- package/extensions/ublock/manifest.json +2 -3
- package/package.json +2 -2
- package/src/browsers/chromium.cdp.ts +2 -2
- package/src/browsers/chromium.playwright.ts +2 -2
- package/src/browsers/firefox.playwright.ts +2 -3
- package/src/browsers/index.ts +49 -21
- package/src/browsers/webkit.playwright.ts +4 -4
- package/src/routes/chrome/tests/websocket.spec.ts +2 -2
- package/src/routes/chromium/tests/websocket.spec.ts +2 -2
- package/src/routes/firefox/tests/websocket.spec.ts +2 -4
- package/src/routes/webkit/tests/websocket.spec.ts +2 -3
- package/src/types.ts +1 -1
- package/src/utils.ts +1 -1
- package/static/docs/swagger.json +1 -1
- package/static/docs/swagger.min.json +1 -1
|
@@ -19,10 +19,6 @@
|
|
|
19
19
|
Home: https://github.com/gorhill/uBlock
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
/* globals browser */
|
|
23
|
-
|
|
24
|
-
'use strict';
|
|
25
|
-
|
|
26
22
|
/******************************************************************************/
|
|
27
23
|
/******************************************************************************/
|
|
28
24
|
|
|
@@ -31,7 +27,7 @@
|
|
|
31
27
|
/******************************************************************************/
|
|
32
28
|
|
|
33
29
|
if ( typeof vAPI !== 'object' ) { return; }
|
|
34
|
-
if (
|
|
30
|
+
if ( vAPI === null ) { return; }
|
|
35
31
|
if ( vAPI.domFilterer instanceof Object === false ) { return; }
|
|
36
32
|
|
|
37
33
|
if ( vAPI.inspectorFrame ) { return; }
|
|
@@ -19,19 +19,12 @@
|
|
|
19
19
|
Home: https://github.com/gorhill/uBlock
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
/* global CSS */
|
|
23
|
-
|
|
24
|
-
'use strict';
|
|
25
|
-
|
|
26
|
-
/******************************************************************************/
|
|
27
|
-
/******************************************************************************/
|
|
28
|
-
|
|
29
22
|
(async ( ) => {
|
|
30
23
|
|
|
31
24
|
/******************************************************************************/
|
|
32
25
|
|
|
33
26
|
if ( typeof vAPI !== 'object' ) { return; }
|
|
34
|
-
if (
|
|
27
|
+
if ( vAPI === null ) { return; }
|
|
35
28
|
|
|
36
29
|
if ( vAPI.pickerFrame ) { return; }
|
|
37
30
|
vAPI.pickerFrame = true;
|
|
@@ -902,6 +895,7 @@ const onOptimizeCandidates = function(details) {
|
|
|
902
895
|
if ( r !== 0 ) { return r; }
|
|
903
896
|
return a.selector.length - b.selector.length;
|
|
904
897
|
});
|
|
898
|
+
|
|
905
899
|
pickerFramePort.postMessage({
|
|
906
900
|
what: 'candidatesOptimized',
|
|
907
901
|
candidates: results.map(a => a.selector),
|
|
@@ -1163,59 +1157,59 @@ vAPI.shutdown.add(quitPicker);
|
|
|
1163
1157
|
|
|
1164
1158
|
const onDialogMessage = function(msg) {
|
|
1165
1159
|
switch ( msg.what ) {
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
}
|
|
1172
|
-
break;
|
|
1173
|
-
case 'optimizeCandidates':
|
|
1174
|
-
onOptimizeCandidates(msg);
|
|
1175
|
-
break;
|
|
1176
|
-
case 'dialogCreate':
|
|
1177
|
-
filterToDOMInterface.queryAll(msg);
|
|
1178
|
-
filterToDOMInterface.preview(true, true);
|
|
1179
|
-
quitPicker();
|
|
1180
|
-
break;
|
|
1181
|
-
case 'dialogSetFilter': {
|
|
1182
|
-
const resultset = filterToDOMInterface.queryAll(msg) || [];
|
|
1183
|
-
highlightElements(resultset.map(a => a.elem), true);
|
|
1184
|
-
if ( msg.filter === '!' ) { break; }
|
|
1185
|
-
pickerFramePort.postMessage({
|
|
1186
|
-
what: 'resultsetDetails',
|
|
1187
|
-
count: resultset.length,
|
|
1188
|
-
opt: resultset.length !== 0 ? resultset[0].opt : undefined,
|
|
1189
|
-
});
|
|
1190
|
-
break;
|
|
1160
|
+
case 'start':
|
|
1161
|
+
startPicker();
|
|
1162
|
+
if ( pickerFramePort === null ) { break; }
|
|
1163
|
+
if ( targetElements.length === 0 ) {
|
|
1164
|
+
highlightElements([], true);
|
|
1191
1165
|
}
|
|
1192
|
-
|
|
1193
|
-
|
|
1166
|
+
break;
|
|
1167
|
+
case 'optimizeCandidates':
|
|
1168
|
+
onOptimizeCandidates(msg);
|
|
1169
|
+
break;
|
|
1170
|
+
case 'dialogCreate':
|
|
1171
|
+
filterToDOMInterface.queryAll(msg);
|
|
1172
|
+
filterToDOMInterface.preview(true, true);
|
|
1173
|
+
quitPicker();
|
|
1174
|
+
break;
|
|
1175
|
+
case 'dialogSetFilter': {
|
|
1176
|
+
const resultset = filterToDOMInterface.queryAll(msg) || [];
|
|
1177
|
+
highlightElements(resultset.map(a => a.elem), true);
|
|
1178
|
+
if ( msg.filter === '!' ) { break; }
|
|
1179
|
+
pickerFramePort.postMessage({
|
|
1180
|
+
what: 'resultsetDetails',
|
|
1181
|
+
count: resultset.length,
|
|
1182
|
+
opt: resultset.length !== 0 ? resultset[0].opt : undefined,
|
|
1183
|
+
});
|
|
1184
|
+
break;
|
|
1185
|
+
}
|
|
1186
|
+
case 'quitPicker':
|
|
1187
|
+
filterToDOMInterface.preview(false);
|
|
1188
|
+
quitPicker();
|
|
1189
|
+
break;
|
|
1190
|
+
case 'highlightElementAtPoint':
|
|
1191
|
+
highlightElementAtPoint(msg.mx, msg.my);
|
|
1192
|
+
break;
|
|
1193
|
+
case 'unhighlight':
|
|
1194
|
+
highlightElements([]);
|
|
1195
|
+
break;
|
|
1196
|
+
case 'filterElementAtPoint':
|
|
1197
|
+
filterElementAtPoint(msg.mx, msg.my, msg.broad);
|
|
1198
|
+
break;
|
|
1199
|
+
case 'zapElementAtPoint':
|
|
1200
|
+
zapElementAtPoint(msg.mx, msg.my, msg.options);
|
|
1201
|
+
if ( msg.options.highlight !== true && msg.options.stay !== true ) {
|
|
1194
1202
|
quitPicker();
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
highlightElements(
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
case 'zapElementAtPoint':
|
|
1206
|
-
zapElementAtPoint(msg.mx, msg.my, msg.options);
|
|
1207
|
-
if ( msg.options.highlight !== true && msg.options.stay !== true ) {
|
|
1208
|
-
quitPicker();
|
|
1209
|
-
}
|
|
1210
|
-
break;
|
|
1211
|
-
case 'togglePreview':
|
|
1212
|
-
filterToDOMInterface.preview(msg.state);
|
|
1213
|
-
if ( msg.state === false ) {
|
|
1214
|
-
highlightElements(targetElements, true);
|
|
1215
|
-
}
|
|
1216
|
-
break;
|
|
1217
|
-
default:
|
|
1218
|
-
break;
|
|
1203
|
+
}
|
|
1204
|
+
break;
|
|
1205
|
+
case 'togglePreview':
|
|
1206
|
+
filterToDOMInterface.preview(msg.state);
|
|
1207
|
+
if ( msg.state === false ) {
|
|
1208
|
+
highlightElements(targetElements, true);
|
|
1209
|
+
}
|
|
1210
|
+
break;
|
|
1211
|
+
default:
|
|
1212
|
+
break;
|
|
1219
1213
|
}
|
|
1220
1214
|
};
|
|
1221
1215
|
|
|
@@ -45,7 +45,6 @@ import { filteringBehaviorChanged } from './broadcast.js';
|
|
|
45
45
|
import cacheStorage from './cachestorage.js';
|
|
46
46
|
import { ubolog } from './console.js';
|
|
47
47
|
import contextMenu from './contextmenu.js';
|
|
48
|
-
import lz4Codec from './lz4.js';
|
|
49
48
|
import { redirectEngine } from './redirect-engine.js';
|
|
50
49
|
import staticFilteringReverseLookup from './reverselookup.js';
|
|
51
50
|
import staticExtFilteringEngine from './static-ext-filtering.js';
|
|
@@ -490,13 +489,6 @@ await initializeTabs();
|
|
|
490
489
|
// Start network observers.
|
|
491
490
|
webRequest.start();
|
|
492
491
|
|
|
493
|
-
// Ensure that the resources allocated for decompression purpose (likely
|
|
494
|
-
// large buffers) are garbage-collectable immediately after launch.
|
|
495
|
-
// Otherwise I have observed that it may take quite a while before the
|
|
496
|
-
// garbage collection of these resources kicks in. Relinquishing as soon
|
|
497
|
-
// as possible ensure minimal memory usage baseline.
|
|
498
|
-
lz4Codec.relinquish();
|
|
499
|
-
|
|
500
492
|
// Force an update of the context menu according to the currently
|
|
501
493
|
// active tab.
|
|
502
494
|
contextMenu.update();
|
|
@@ -38,7 +38,6 @@ import cosmeticFilteringEngine from './cosmetic-filtering.js';
|
|
|
38
38
|
import { hostnameFromURI } from './uri-utils.js';
|
|
39
39
|
import io from './assets.js';
|
|
40
40
|
import logger from './logger.js';
|
|
41
|
-
import lz4Codec from './lz4.js';
|
|
42
41
|
import publicSuffixList from '../lib/publicsuffixlist/publicsuffixlist.js';
|
|
43
42
|
import punycode from '../lib/punycode.js';
|
|
44
43
|
import { redirectEngine } from './redirect-engine.js';
|
|
@@ -605,14 +604,10 @@ onBroadcast(msg => {
|
|
|
605
604
|
this.hiddenSettings.autoCommentFilterTemplate.indexOf('{{') !== -1
|
|
606
605
|
) {
|
|
607
606
|
const d = new Date();
|
|
608
|
-
// Date in YYYY-MM-DD format - https://stackoverflow.com/a/50130338
|
|
609
|
-
const ISO8601Date = new Date(d.getTime() +
|
|
610
|
-
(d.getTimezoneOffset()*60000)).toISOString().split('T')[0];
|
|
611
607
|
const url = new URL(options.docURL);
|
|
612
|
-
comment =
|
|
613
|
-
'! ' +
|
|
608
|
+
comment = '! ' +
|
|
614
609
|
this.hiddenSettings.autoCommentFilterTemplate
|
|
615
|
-
.replace('{{date}}',
|
|
610
|
+
.replace('{{date}}', d.toLocaleDateString(undefined, { dateStyle: 'medium' }))
|
|
616
611
|
.replace('{{time}}', d.toLocaleTimeString())
|
|
617
612
|
.replace('{{hostname}}', url.hostname)
|
|
618
613
|
.replace('{{origin}}', url.origin)
|
|
@@ -932,7 +927,6 @@ onBroadcast(msg => {
|
|
|
932
927
|
});
|
|
933
928
|
|
|
934
929
|
µb.selfieManager.destroy();
|
|
935
|
-
lz4Codec.relinquish();
|
|
936
930
|
µb.compiledFormatChanged = false;
|
|
937
931
|
|
|
938
932
|
loadingPromise = undefined;
|
|
@@ -1328,7 +1322,6 @@ onBroadcast(msg => {
|
|
|
1328
1322
|
staticNetFilteringEngine.toSelfie()
|
|
1329
1323
|
),
|
|
1330
1324
|
]);
|
|
1331
|
-
lz4Codec.relinquish();
|
|
1332
1325
|
µb.selfieIsInvalid = false;
|
|
1333
1326
|
ubolog('Filtering engine selfie created');
|
|
1334
1327
|
};
|
|
@@ -22,14 +22,10 @@
|
|
|
22
22
|
|
|
23
23
|
// For background page
|
|
24
24
|
|
|
25
|
-
/* globals browser */
|
|
26
|
-
|
|
27
|
-
'use strict';
|
|
28
|
-
|
|
29
25
|
/******************************************************************************/
|
|
30
26
|
|
|
31
|
-
import webext from './webext.js';
|
|
32
27
|
import { ubolog } from './console.js';
|
|
28
|
+
import webext from './webext.js';
|
|
33
29
|
|
|
34
30
|
/******************************************************************************/
|
|
35
31
|
|
|
@@ -47,6 +43,9 @@ if ( vAPI.canWASM === false ) {
|
|
|
47
43
|
|
|
48
44
|
vAPI.supportsUserStylesheets = vAPI.webextFlavor.soup.has('user_stylesheet');
|
|
49
45
|
|
|
46
|
+
const hasOwnProperty = (o, p) =>
|
|
47
|
+
Object.prototype.hasOwnProperty.call(o, p);
|
|
48
|
+
|
|
50
49
|
/******************************************************************************/
|
|
51
50
|
|
|
52
51
|
vAPI.app = {
|
|
@@ -191,9 +190,9 @@ vAPI.browserSettings = (( ) => {
|
|
|
191
190
|
|
|
192
191
|
set: function(details) {
|
|
193
192
|
for ( const setting in details ) {
|
|
194
|
-
if (
|
|
193
|
+
if ( hasOwnProperty(details, setting) === false ) { continue; }
|
|
195
194
|
switch ( setting ) {
|
|
196
|
-
case 'prefetching':
|
|
195
|
+
case 'prefetching': {
|
|
197
196
|
const enabled = !!details[setting];
|
|
198
197
|
if ( enabled ) {
|
|
199
198
|
bp.network.networkPredictionEnabled.clear({
|
|
@@ -209,9 +208,9 @@ vAPI.browserSettings = (( ) => {
|
|
|
209
208
|
vAPI.prefetching(enabled);
|
|
210
209
|
}
|
|
211
210
|
break;
|
|
212
|
-
|
|
213
|
-
case 'hyperlinkAuditing':
|
|
214
|
-
if (
|
|
211
|
+
}
|
|
212
|
+
case 'hyperlinkAuditing': {
|
|
213
|
+
if ( details[setting] ) {
|
|
215
214
|
bp.websites.hyperlinkAuditingEnabled.clear({
|
|
216
215
|
scope: 'regular',
|
|
217
216
|
});
|
|
@@ -222,7 +221,7 @@ vAPI.browserSettings = (( ) => {
|
|
|
222
221
|
});
|
|
223
222
|
}
|
|
224
223
|
break;
|
|
225
|
-
|
|
224
|
+
}
|
|
226
225
|
case 'webrtcIPAddress': {
|
|
227
226
|
// https://github.com/uBlockOrigin/uBlock-issues/issues/1928
|
|
228
227
|
// https://www.reddit.com/r/uBlockOrigin/comments/sl7p74/
|
|
@@ -314,7 +313,7 @@ vAPI.Tabs = class {
|
|
|
314
313
|
}
|
|
315
314
|
this.onRemovedHandler(tabId, details);
|
|
316
315
|
});
|
|
317
|
-
|
|
316
|
+
}
|
|
318
317
|
|
|
319
318
|
async executeScript(...args) {
|
|
320
319
|
let result;
|
|
@@ -869,8 +868,8 @@ if ( webext.browserAction instanceof Object ) {
|
|
|
869
868
|
const hasUnprocessedRequest = vAPI.net && vAPI.net.hasUnprocessedRequest(tabId);
|
|
870
869
|
const { parts, state } = details;
|
|
871
870
|
const { badge, color } = hasUnprocessedRequest
|
|
872
|
-
|
|
873
|
-
|
|
871
|
+
? { badge: '!', color: '#FC0' }
|
|
872
|
+
: details;
|
|
874
873
|
|
|
875
874
|
if ( browserAction.setIcon !== undefined ) {
|
|
876
875
|
if ( parts === undefined || (parts & 0b0001) !== 0 ) {
|
|
@@ -1029,7 +1028,7 @@ vAPI.messaging = {
|
|
|
1029
1028
|
});
|
|
1030
1029
|
break;
|
|
1031
1030
|
}
|
|
1032
|
-
case 'userCSS':
|
|
1031
|
+
case 'userCSS': {
|
|
1033
1032
|
if ( tabId === undefined ) { break; }
|
|
1034
1033
|
const promises = [];
|
|
1035
1034
|
if ( msg.add ) {
|
|
@@ -1060,6 +1059,9 @@ vAPI.messaging = {
|
|
|
1060
1059
|
});
|
|
1061
1060
|
break;
|
|
1062
1061
|
}
|
|
1062
|
+
default:
|
|
1063
|
+
break;
|
|
1064
|
+
}
|
|
1063
1065
|
},
|
|
1064
1066
|
|
|
1065
1067
|
// Use a wrapper to avoid closure and to allow reuse.
|
|
@@ -1217,7 +1219,7 @@ vAPI.Net = class {
|
|
|
1217
1219
|
{
|
|
1218
1220
|
const wrrt = browser.webRequest.ResourceType;
|
|
1219
1221
|
for ( const typeKey in wrrt ) {
|
|
1220
|
-
if (
|
|
1222
|
+
if ( hasOwnProperty(wrrt, typeKey) ) {
|
|
1221
1223
|
this.validTypes.add(wrrt[typeKey]);
|
|
1222
1224
|
}
|
|
1223
1225
|
}
|
|
@@ -1520,10 +1522,7 @@ vAPI.localStorage = {
|
|
|
1520
1522
|
if ( this.cache instanceof Promise ) { return this.cache; }
|
|
1521
1523
|
if ( this.cache instanceof Object ) { return this.cache; }
|
|
1522
1524
|
this.cache = vAPI.storage.get('localStorage').then(bin => {
|
|
1523
|
-
this.cache = bin
|
|
1524
|
-
bin.localStorage instanceof Object
|
|
1525
|
-
? bin.localStorage
|
|
1526
|
-
: {};
|
|
1525
|
+
this.cache = bin && bin.localStorage || {};
|
|
1527
1526
|
});
|
|
1528
1527
|
return this.cache;
|
|
1529
1528
|
},
|
|
@@ -22,19 +22,14 @@
|
|
|
22
22
|
|
|
23
23
|
// For background page or non-background pages
|
|
24
24
|
|
|
25
|
-
/* global browser */
|
|
26
|
-
|
|
27
|
-
'use strict';
|
|
28
|
-
|
|
29
|
-
/******************************************************************************/
|
|
30
25
|
/******************************************************************************/
|
|
31
26
|
|
|
32
27
|
vAPI.T0 = Date.now();
|
|
33
28
|
|
|
34
|
-
/******************************************************************************/
|
|
35
|
-
|
|
36
29
|
vAPI.setTimeout = vAPI.setTimeout || self.setTimeout.bind(self);
|
|
37
30
|
|
|
31
|
+
/******************************************************************************/
|
|
32
|
+
|
|
38
33
|
vAPI.defer = {
|
|
39
34
|
create(callback) {
|
|
40
35
|
return new this.Client(callback);
|
|
@@ -19,10 +19,6 @@
|
|
|
19
19
|
Home: https://github.com/gorhill/uBlock
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
'use strict';
|
|
23
|
-
|
|
24
|
-
/* global HTMLDocument, XMLDocument */
|
|
25
|
-
|
|
26
22
|
// For background page, auxiliary pages, and content scripts.
|
|
27
23
|
|
|
28
24
|
/******************************************************************************/
|
|
@@ -24,29 +24,37 @@
|
|
|
24
24
|
|
|
25
25
|
const promisifyNoFail = function(thisArg, fnName, outFn = r => r) {
|
|
26
26
|
const fn = thisArg[fnName];
|
|
27
|
-
return function() {
|
|
27
|
+
return function(...args) {
|
|
28
28
|
return new Promise(resolve => {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
void chrome.runtime.lastError
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
})
|
|
29
|
+
try {
|
|
30
|
+
fn.call(thisArg, ...args, function(...args) {
|
|
31
|
+
void chrome.runtime.lastError;
|
|
32
|
+
resolve(outFn(...args));
|
|
33
|
+
});
|
|
34
|
+
} catch(ex) {
|
|
35
|
+
console.error(ex);
|
|
36
|
+
resolve(outFn());
|
|
37
|
+
}
|
|
35
38
|
});
|
|
36
39
|
};
|
|
37
40
|
};
|
|
38
41
|
|
|
39
42
|
const promisify = function(thisArg, fnName) {
|
|
40
43
|
const fn = thisArg[fnName];
|
|
41
|
-
return function() {
|
|
44
|
+
return function(...args) {
|
|
42
45
|
return new Promise((resolve, reject) => {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
try {
|
|
47
|
+
fn.call(thisArg, ...args, function(...args) {
|
|
48
|
+
const lastError = chrome.runtime.lastError;
|
|
49
|
+
if ( lastError instanceof Object ) {
|
|
50
|
+
return reject(lastError.message);
|
|
51
|
+
}
|
|
52
|
+
resolve(...args);
|
|
53
|
+
});
|
|
54
|
+
} catch(ex) {
|
|
55
|
+
console.error(ex);
|
|
56
|
+
resolve();
|
|
57
|
+
}
|
|
50
58
|
});
|
|
51
59
|
};
|
|
52
60
|
};
|
|
@@ -20,13 +20,16 @@
|
|
|
20
20
|
<option value="0" data-i18n="logAll">
|
|
21
21
|
<option value="-1" data-i18n="logBehindTheScene">
|
|
22
22
|
<option value="_" data-i18n="loggerCurrentTab">
|
|
23
|
-
</select
|
|
23
|
+
</select> 
|
|
24
24
|
<button id="refresh" class="iconified notext disabled needdom" data-i18n-title="loggerReloadTip" type="button"><span class="fa-icon">refresh</span><span class="hover"></span></button>
|
|
25
25
|
<button id="showdom" class="iconified notext disabled needdom" data-i18n-title="loggerDomInspectorTip" type="button"><span class="fa-icon">code</span><span class="hover"></span></button>
|
|
26
26
|
<button id="showpopup" class="iconified notext disabled needdom" data-i18n-title="loggerPopupPanelTip" type="button"><span class="fa-icon"><svg><use href="/img/ublock-defs.svg#ubo-solid"></use></svg></span><span class="hover"></span></button>
|
|
27
27
|
</div>
|
|
28
28
|
<div>
|
|
29
|
-
<
|
|
29
|
+
<button class="logConsole iconified notext" title="Show/hide console" type="button"><span class="fa-icon">terminal</span><span class="hover"></span></button>
|
|
30
|
+
</div>
|
|
31
|
+
<div>
|
|
32
|
+
<a class="wikilink fa-icon" href="https://github.com/gorhill/uBlock/wiki/The-logger" target="_blank" data-i18n-title="loggerInfoTip">book</a>
|
|
30
33
|
</div>
|
|
31
34
|
</div>
|
|
32
35
|
|
|
@@ -51,7 +54,7 @@
|
|
|
51
54
|
<button class="iconified notext vCompactToggler"><span class="fa-icon">double-angle-up</span><span class="hover"></span></button>
|
|
52
55
|
<button id="clean" class="iconified notext disabled"><span class="fa-icon">times</span><span class="hover"></span></button>
|
|
53
56
|
<button id="clear" class="iconified notext disabled" data-i18n-title="loggerClearTip"><span class="fa-icon">eraser</span><span class="hover"></span></button>
|
|
54
|
-
<button id="pause" class="iconified notext"><span class="fa-icon" data-i18n-title="loggerPauseTip">pause-circle-o</span><span class="fa-icon" data-i18n-title="loggerUnpauseTip">play-circle-o</span><span class="hover"></span></button
|
|
57
|
+
<button id="pause" class="iconified notext"><span class="fa-icon" data-i18n-title="loggerPauseTip">pause-circle-o</span><span class="fa-icon" data-i18n-title="loggerUnpauseTip">play-circle-o</span><span class="hover"></span></button> 
|
|
55
58
|
<span id="filterExprGroup">
|
|
56
59
|
<button id="filterButton" class="iconified notext" data-i18n-title="loggerRowFiltererButtonTip"><span class="fa-icon">filter</span><span class="hover"></span></button>
|
|
57
60
|
<span id="filterInput">
|
|
@@ -83,9 +86,6 @@
|
|
|
83
86
|
</span>
|
|
84
87
|
</span>
|
|
85
88
|
</div>
|
|
86
|
-
<div>
|
|
87
|
-
<button id="logLevel" class="iconified notext" title="Toggle verbose mode" type="button"><span class="fa-icon">volume-up</span><span class="hover"></span></button>
|
|
88
|
-
</div>
|
|
89
89
|
<div>
|
|
90
90
|
<button id="loggerStats" class="iconified notext" style="display: none;"><span class="fa-icon">bar-chart</span><span class="hover"></span></button>
|
|
91
91
|
<button id="loggerExport" class="iconified notext"><span class="fa-icon">clipboard</span><span class="hover"></span></button>
|
|
@@ -104,7 +104,18 @@
|
|
|
104
104
|
</div>
|
|
105
105
|
</div>
|
|
106
106
|
</div>
|
|
107
|
-
|
|
107
|
+
</div>
|
|
108
|
+
<div class="entryTools inspector"></div>
|
|
109
|
+
<div id="infoInspector" class="inspector">
|
|
110
|
+
<div class="permatoolbar">
|
|
111
|
+
<div>
|
|
112
|
+
<button id="clearConsole" class="iconified notext"><span class="fa-icon">eraser</span><span class="hover"></span></button>
|
|
113
|
+
<button id="logLevel" class="iconified notext" title="Toggle verbose mode" type="button"><span class="fa-icon">volume-up</span><span class="hover"></span></button> 
|
|
114
|
+
<input type="search" placeholder="Filter output" spellcheck="false">
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
<div class="vscrollable">
|
|
118
|
+
</div>
|
|
108
119
|
</div>
|
|
109
120
|
<iframe id="popupContainer"></iframe>
|
|
110
121
|
</div>
|
|
@@ -120,17 +131,15 @@
|
|
|
120
131
|
<div id="logEntryTemplate"><div class="fields"><span></span>​<span></span>​<span></span>​<span></span>​<span></span>​<span></span>​<span></span>​<span></span></div></div>
|
|
121
132
|
|
|
122
133
|
<div class="netFilteringDialog" data-pane="details">
|
|
123
|
-
<div class="dialogControls">
|
|
124
|
-
<div class="moveBand"></div>
|
|
125
|
-
<div class="closeButton"><svg viewBox="0 0 64 64"><path d="M 16 16 L 48 48 M 16 48 L 48 16" /></div>
|
|
126
|
-
</div>
|
|
127
134
|
<div class="hide preview"><span>click to preview</span></div>
|
|
128
135
|
<div class="headers">
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
136
|
+
<span>
|
|
137
|
+
<span class="header details" data-pane="details" data-i18n="loggerEntryDetailsHeader"></span>
|
|
138
|
+
<span class="header dynamic" data-pane="dynamic" data-i18n="loggerURLFilteringHeader"></span>
|
|
139
|
+
<span class="header static" data-pane="static" data-i18n="loggerStaticFilteringHeader"></span>
|
|
140
|
+
</span>
|
|
133
141
|
<span class="tools"><span class="fa-icon picker">eye-dropper</span><span class="fa-icon reload">refresh</span></span>
|
|
142
|
+
<span class="closeButton"><svg viewBox="0 0 64 64"><path d="M 16 16 L 48 48 M 16 48 L 48 16" /></span>
|
|
134
143
|
</div>
|
|
135
144
|
<div class="panes">
|
|
136
145
|
<div class="pane details" data-pane="details">
|
|
@@ -61,8 +61,7 @@
|
|
|
61
61
|
"https://filterlists.com/*",
|
|
62
62
|
"https://forums.lanik.us/*",
|
|
63
63
|
"https://github.com/*",
|
|
64
|
-
"https://*.github.io/*"
|
|
65
|
-
"https://*.letsblock.it/*"
|
|
64
|
+
"https://*.github.io/*"
|
|
66
65
|
],
|
|
67
66
|
"run_at": "document_idle"
|
|
68
67
|
},
|
|
@@ -112,7 +111,7 @@
|
|
|
112
111
|
"storage": {
|
|
113
112
|
"managed_schema": "managed_storage.json"
|
|
114
113
|
},
|
|
115
|
-
"version": "1.
|
|
114
|
+
"version": "1.58.0",
|
|
116
115
|
"web_accessible_resources": [
|
|
117
116
|
"/web_accessible_resources/*"
|
|
118
117
|
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@browserless.io/browserless",
|
|
3
|
-
"version": "2.12.0-beta-
|
|
3
|
+
"version": "2.12.0-beta-4",
|
|
4
4
|
"license": "SSPL",
|
|
5
5
|
"description": "The browserless platform",
|
|
6
6
|
"author": "browserless.io",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"@types/node": "^20.12.12",
|
|
81
81
|
"@types/sinon": "^17.0.3",
|
|
82
82
|
"@typescript-eslint/eslint-plugin": "^7.9.0",
|
|
83
|
-
"@typescript-eslint/parser": "^7.
|
|
83
|
+
"@typescript-eslint/parser": "^7.10.0",
|
|
84
84
|
"assert": "^2.0.0",
|
|
85
85
|
"chai": "^5.1.1",
|
|
86
86
|
"cross-env": "^7.0.3",
|
|
@@ -42,8 +42,8 @@ export class FirefoxPlaywright extends EventEmitter {
|
|
|
42
42
|
this.removeAllListeners();
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
public
|
|
46
|
-
return
|
|
45
|
+
public keepUntil() {
|
|
46
|
+
return 0;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
public isRunning = (): boolean => this.running;
|
|
@@ -86,7 +86,6 @@ export class FirefoxPlaywright extends EventEmitter {
|
|
|
86
86
|
options: BrowserServerOptions = {},
|
|
87
87
|
version?: string,
|
|
88
88
|
): Promise<playwright.BrowserServer> => {
|
|
89
|
-
|
|
90
89
|
this.logger.info(`Launching ${this.constructor.name} Handler`);
|
|
91
90
|
const opts = {
|
|
92
91
|
...options,
|