@browserless.io/browserless 2.5.0-beta-4 → 2.6.0

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.
Files changed (191) hide show
  1. package/CHANGELOG.md +14 -2
  2. package/README.md +65 -34
  3. package/build/config.d.ts +2 -2
  4. package/build/config.js +3 -3
  5. package/build/data/classes.json +1 -1
  6. package/build/data/selectors.json +1 -1
  7. package/build/http.d.ts +1 -0
  8. package/build/http.js +1 -0
  9. package/build/routes/chrome/http/content.post.body.json +8 -8
  10. package/build/routes/chrome/http/pdf.post.body.json +8 -8
  11. package/build/routes/chrome/http/scrape.post.body.json +8 -8
  12. package/build/routes/chrome/http/screenshot.post.body.json +9 -9
  13. package/build/routes/chromium/http/content.post.body.json +8 -8
  14. package/build/routes/chromium/http/pdf.post.body.json +8 -8
  15. package/build/routes/chromium/http/scrape.post.body.json +8 -8
  16. package/build/routes/chromium/http/screenshot.post.body.json +9 -9
  17. package/build/routes/management/http/active.get.d.ts +16 -0
  18. package/build/routes/management/http/active.get.js +17 -0
  19. package/build/routes/management/tests/management.spec.js +7 -0
  20. package/build/server.js +1 -1
  21. package/build/types.d.ts +6 -4
  22. package/build/types.js +1 -0
  23. package/build/utils.d.ts +1 -1
  24. package/docker/base/Dockerfile +1 -1
  25. package/extensions/ublock/1p-filters.html +4 -3
  26. package/extensions/ublock/3p-filters.html +3 -3
  27. package/extensions/ublock/_locales/ar/messages.json +16 -4
  28. package/extensions/ublock/_locales/az/messages.json +16 -4
  29. package/extensions/ublock/_locales/be/messages.json +19 -7
  30. package/extensions/ublock/_locales/bg/messages.json +16 -4
  31. package/extensions/ublock/_locales/bn/messages.json +33 -21
  32. package/extensions/ublock/_locales/br_FR/messages.json +33 -21
  33. package/extensions/ublock/_locales/bs/messages.json +16 -4
  34. package/extensions/ublock/_locales/ca/messages.json +16 -4
  35. package/extensions/ublock/_locales/cs/messages.json +16 -4
  36. package/extensions/ublock/_locales/cv/messages.json +16 -4
  37. package/extensions/ublock/_locales/cy/messages.json +16 -4
  38. package/extensions/ublock/_locales/da/messages.json +21 -9
  39. package/extensions/ublock/_locales/de/messages.json +17 -5
  40. package/extensions/ublock/_locales/el/messages.json +16 -4
  41. package/extensions/ublock/_locales/en/messages.json +16 -4
  42. package/extensions/ublock/_locales/en_GB/messages.json +16 -4
  43. package/extensions/ublock/_locales/eo/messages.json +17 -5
  44. package/extensions/ublock/_locales/es/messages.json +16 -4
  45. package/extensions/ublock/_locales/et/messages.json +16 -4
  46. package/extensions/ublock/_locales/eu/messages.json +16 -4
  47. package/extensions/ublock/_locales/fa/messages.json +24 -12
  48. package/extensions/ublock/_locales/fi/messages.json +16 -4
  49. package/extensions/ublock/_locales/fil/messages.json +16 -4
  50. package/extensions/ublock/_locales/fr/messages.json +16 -4
  51. package/extensions/ublock/_locales/fy/messages.json +16 -4
  52. package/extensions/ublock/_locales/gl/messages.json +16 -4
  53. package/extensions/ublock/_locales/gu/messages.json +16 -4
  54. package/extensions/ublock/_locales/he/messages.json +25 -13
  55. package/extensions/ublock/_locales/hi/messages.json +31 -19
  56. package/extensions/ublock/_locales/hr/messages.json +16 -4
  57. package/extensions/ublock/_locales/hu/messages.json +16 -4
  58. package/extensions/ublock/_locales/hy/messages.json +17 -5
  59. package/extensions/ublock/_locales/id/messages.json +16 -4
  60. package/extensions/ublock/_locales/it/messages.json +17 -5
  61. package/extensions/ublock/_locales/ja/messages.json +16 -4
  62. package/extensions/ublock/_locales/ka/messages.json +16 -4
  63. package/extensions/ublock/_locales/kk/messages.json +16 -4
  64. package/extensions/ublock/_locales/kn/messages.json +74 -62
  65. package/extensions/ublock/_locales/ko/messages.json +16 -4
  66. package/extensions/ublock/_locales/lt/messages.json +23 -11
  67. package/extensions/ublock/_locales/lv/messages.json +16 -4
  68. package/extensions/ublock/_locales/mk/messages.json +16 -4
  69. package/extensions/ublock/_locales/ml/messages.json +19 -7
  70. package/extensions/ublock/_locales/mr/messages.json +16 -4
  71. package/extensions/ublock/_locales/ms/messages.json +16 -4
  72. package/extensions/ublock/_locales/nb/messages.json +16 -4
  73. package/extensions/ublock/_locales/nl/messages.json +16 -4
  74. package/extensions/ublock/_locales/no/messages.json +16 -4
  75. package/extensions/ublock/_locales/oc/messages.json +16 -4
  76. package/extensions/ublock/_locales/pa/messages.json +16 -4
  77. package/extensions/ublock/_locales/pl/messages.json +17 -5
  78. package/extensions/ublock/_locales/pt_BR/messages.json +16 -4
  79. package/extensions/ublock/_locales/pt_PT/messages.json +16 -4
  80. package/extensions/ublock/_locales/ro/messages.json +17 -5
  81. package/extensions/ublock/_locales/ru/messages.json +16 -4
  82. package/extensions/ublock/_locales/si/messages.json +16 -4
  83. package/extensions/ublock/_locales/sk/messages.json +16 -4
  84. package/extensions/ublock/_locales/sl/messages.json +16 -4
  85. package/extensions/ublock/_locales/so/messages.json +16 -4
  86. package/extensions/ublock/_locales/sq/messages.json +16 -4
  87. package/extensions/ublock/_locales/sr/messages.json +16 -4
  88. package/extensions/ublock/_locales/sv/messages.json +20 -8
  89. package/extensions/ublock/_locales/sw/messages.json +16 -4
  90. package/extensions/ublock/_locales/ta/messages.json +16 -4
  91. package/extensions/ublock/_locales/te/messages.json +16 -4
  92. package/extensions/ublock/_locales/th/messages.json +42 -30
  93. package/extensions/ublock/_locales/tr/messages.json +19 -7
  94. package/extensions/ublock/_locales/uk/messages.json +16 -4
  95. package/extensions/ublock/_locales/ur/messages.json +16 -4
  96. package/extensions/ublock/_locales/vi/messages.json +16 -4
  97. package/extensions/ublock/_locales/zh_CN/messages.json +16 -4
  98. package/extensions/ublock/_locales/zh_TW/messages.json +42 -30
  99. package/extensions/ublock/assets/assets.json +95 -78
  100. package/extensions/ublock/assets/resources/scriptlets.js +70 -24
  101. package/extensions/ublock/assets/thirdparties/easylist/easylist.txt +6258 -3453
  102. package/extensions/ublock/assets/thirdparties/easylist/easyprivacy.txt +277 -40
  103. package/extensions/ublock/assets/thirdparties/pgl.yoyo.org/as/serverlist +8 -32
  104. package/extensions/ublock/assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat +107 -12
  105. package/extensions/ublock/assets/thirdparties/urlhaus-filter/urlhaus-filter-online.txt +1160 -954
  106. package/extensions/ublock/assets/ublock/badlists.txt +1 -2
  107. package/extensions/ublock/assets/ublock/badware.min.txt +395 -270
  108. package/extensions/ublock/assets/ublock/filters.min.txt +1176 -1238
  109. package/extensions/ublock/assets/ublock/privacy.min.txt +32 -31
  110. package/extensions/ublock/assets/ublock/quick-fixes.min.txt +120 -110
  111. package/extensions/ublock/assets/ublock/unbreak.min.txt +75 -36
  112. package/extensions/ublock/css/1p-filters.css +2 -1
  113. package/extensions/ublock/css/3p-filters.css +1 -16
  114. package/extensions/ublock/css/advanced-settings.css +1 -0
  115. package/extensions/ublock/css/asset-viewer.css +1 -0
  116. package/extensions/ublock/css/code-viewer.css +1 -0
  117. package/extensions/ublock/css/codemirror.css +37 -10
  118. package/extensions/ublock/css/common.css +36 -2
  119. package/extensions/ublock/css/dashboard.css +9 -3
  120. package/extensions/ublock/css/devtools.css +1 -0
  121. package/extensions/ublock/css/document-blocked.css +3 -3
  122. package/extensions/ublock/css/dom-inspector.css +1 -0
  123. package/extensions/ublock/css/dyna-rules.css +1 -0
  124. package/extensions/ublock/css/epicker-ui.css +76 -66
  125. package/extensions/ublock/css/fa-icons.css +1 -0
  126. package/extensions/ublock/css/logger-ui.css +2 -0
  127. package/extensions/ublock/css/popup-fenix.css +1 -0
  128. package/extensions/ublock/css/whitelist.css +1 -0
  129. package/extensions/ublock/dashboard.html +20 -13
  130. package/extensions/ublock/devtools.html +2 -0
  131. package/extensions/ublock/dyna-rules.html +2 -2
  132. package/extensions/ublock/img/flags-of-the-world/np.png +0 -0
  133. package/extensions/ublock/img/fontawesome/fontawesome-defs.svg +1 -0
  134. package/extensions/ublock/js/1p-filters.js +72 -23
  135. package/extensions/ublock/js/3p-filters.js +71 -25
  136. package/extensions/ublock/js/asset-viewer.js +1 -0
  137. package/extensions/ublock/js/assets.js +83 -89
  138. package/extensions/ublock/js/background.js +20 -27
  139. package/extensions/ublock/js/base64-custom.js +1 -102
  140. package/extensions/ublock/js/benchmarks.js +36 -21
  141. package/extensions/ublock/js/biditrie.js +8 -23
  142. package/extensions/ublock/js/broadcast.js +2 -4
  143. package/extensions/ublock/js/cachestorage.js +594 -396
  144. package/extensions/ublock/js/codemirror/search.js +49 -37
  145. package/extensions/ublock/js/codemirror/ubo-static-filtering.js +233 -215
  146. package/extensions/ublock/js/contentscript-extra.js +31 -1
  147. package/extensions/ublock/js/cosmetic-filtering.js +35 -33
  148. package/extensions/ublock/js/dashboard.js +11 -7
  149. package/extensions/ublock/js/devtools.js +22 -0
  150. package/extensions/ublock/js/dom.js +2 -2
  151. package/extensions/ublock/js/dyna-rules.js +17 -16
  152. package/extensions/ublock/js/epicker-ui.js +41 -16
  153. package/extensions/ublock/js/fa-icons.js +1 -0
  154. package/extensions/ublock/js/hntrie.js +10 -25
  155. package/extensions/ublock/js/i18n.js +15 -15
  156. package/extensions/ublock/js/logger-ui.js +9 -6
  157. package/extensions/ublock/js/messaging.js +51 -26
  158. package/extensions/ublock/js/pagestore.js +21 -23
  159. package/extensions/ublock/js/popup-fenix.js +35 -22
  160. package/extensions/ublock/js/redirect-engine.js +15 -30
  161. package/extensions/ublock/js/reverselookup.js +1 -1
  162. package/extensions/ublock/js/s14e-serializer.js +1405 -0
  163. package/extensions/ublock/js/scriptlet-filtering-core.js +1 -1
  164. package/extensions/ublock/js/scriptlets/epicker.js +27 -18
  165. package/extensions/ublock/js/settings.js +32 -21
  166. package/extensions/ublock/js/start.js +121 -62
  167. package/extensions/ublock/js/static-ext-filtering-db.js +6 -6
  168. package/extensions/ublock/js/static-ext-filtering.js +17 -28
  169. package/extensions/ublock/js/static-filtering-parser.js +26 -4
  170. package/extensions/ublock/js/static-net-filtering.js +69 -168
  171. package/extensions/ublock/js/storage.js +178 -155
  172. package/extensions/ublock/js/traffic.js +11 -7
  173. package/extensions/ublock/js/vapi-background.js +49 -62
  174. package/extensions/ublock/js/vapi-client.js +13 -16
  175. package/extensions/ublock/js/webext.js +10 -2
  176. package/extensions/ublock/js/whitelist.js +27 -25
  177. package/extensions/ublock/lib/publicsuffixlist/publicsuffixlist.js +3 -7
  178. package/extensions/ublock/manifest.json +2 -1
  179. package/extensions/ublock/web_accessible_resources/epicker-ui.html +5 -8
  180. package/extensions/ublock/whitelist.html +3 -4
  181. package/package.json +13 -13
  182. package/src/config.ts +3 -4
  183. package/src/http.ts +1 -0
  184. package/src/routes/management/http/active.get.ts +30 -0
  185. package/src/routes/management/tests/management.spec.ts +13 -0
  186. package/src/server.ts +1 -1
  187. package/src/types.ts +2 -1
  188. package/static/docs/swagger.json +57 -11
  189. package/static/docs/swagger.min.json +56 -10
  190. package/static/function/client.js +4155 -3350
  191. package/extensions/ublock/_locales/ku/messages.json +0 -1294
@@ -155,6 +155,7 @@
155
155
  "group": "ads",
156
156
  "title": "EasyList",
157
157
  "tags": "ads",
158
+ "preferred": true,
158
159
  "contentURL": [
159
160
  "https://ublockorigin.github.io/uAssets/thirdparties/easylist.txt",
160
161
  "assets/thirdparties/easylist/easylist.txt"
@@ -205,6 +206,7 @@
205
206
  "group": "privacy",
206
207
  "title": "EasyPrivacy",
207
208
  "tags": "privacy",
209
+ "preferred": true,
208
210
  "contentURL": [
209
211
  "https://ublockorigin.github.io/uAssets/thirdparties/easyprivacy.txt",
210
212
  "assets/thirdparties/easylist/easyprivacy.txt"
@@ -244,21 +246,11 @@
244
246
  ],
245
247
  "supportURL": "https://gitlab.com/malware-filter/phishing-filter#phishing-url-blocklist"
246
248
  },
247
- "adguard-social": {
248
- "content": "filters",
249
- "group": "annoyances",
250
- "parent": "AdGuard – Annoyances",
251
- "off": true,
252
- "title": "AdGuard – Social Media",
253
- "tags": "annoyances social",
254
- "contentURL": "https://filters.adtidy.org/extension/ublock/filters/4.txt",
255
- "supportURL": "https://github.com/AdguardTeam/AdguardFilters#adguard-filters",
256
- "instructionURL": "https://kb.adguard.com/en/general/adguard-ad-filters"
257
- },
258
249
  "adguard-cookies": {
259
250
  "content": "filters",
260
251
  "group": "annoyances",
261
- "parent": "AdGuard – Annoyances|AdGuard/uBO – Cookie Notices",
252
+ "group2": "cookies",
253
+ "parent": "AdGuard/uBO – Cookie Notices",
262
254
  "off": true,
263
255
  "title": "AdGuard – Cookie Notices",
264
256
  "tags": "annoyances cookies",
@@ -269,10 +261,51 @@
269
261
  "ublock-cookies-adguard": {
270
262
  "content": "filters",
271
263
  "group": "annoyances",
272
- "parent": "AdGuard – Annoyances|AdGuard/uBO – Cookie Notices",
264
+ "group2": "cookies",
265
+ "parent": "AdGuard/uBO – Cookie Notices",
266
+ "off": true,
267
+ "title": "uBlock filters – Cookie Notices",
268
+ "tags": "annoyances cookies",
269
+ "contentURL": "https://ublockorigin.github.io/uAssets/filters/annoyances-cookies.txt",
270
+ "cdnURLs": [
271
+ "https://ublockorigin.github.io/uAssetsCDN/filters/annoyances-cookies.txt",
272
+ "https://ublockorigin.pages.dev/filters/annoyances-cookies.txt",
273
+ "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/annoyances-cookies.txt",
274
+ "https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/annoyances-cookies.txt"
275
+ ],
276
+ "supportURL": "https://github.com/uBlockOrigin/uAssets"
277
+ },
278
+ "fanboy-cookiemonster": {
279
+ "content": "filters",
280
+ "group": "annoyances",
281
+ "group2": "cookies",
282
+ "parent": "EasyList/uBO – Cookie Notices",
283
+ "off": true,
284
+ "title": "EasyList – Cookie Notices",
285
+ "tags": "annoyances cookies",
286
+ "preferred": true,
287
+ "contentURL": [
288
+ "https://ublockorigin.github.io/uAssets/thirdparties/easylist-cookies.txt",
289
+ "https://secure.fanboy.co.nz/fanboy-cookiemonster_ubo.txt"
290
+ ],
291
+ "cdnURLs": [
292
+ "https://ublockorigin.github.io/uAssetsCDN/thirdparties/easylist-cookies.txt",
293
+ "https://ublockorigin.pages.dev/thirdparties/easylist-cookies.txt",
294
+ "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/thirdparties/easylist-cookies.txt",
295
+ "https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/thirdparties/easylist-cookies.txt",
296
+ "https://secure.fanboy.co.nz/fanboy-cookiemonster_ubo.txt"
297
+ ],
298
+ "supportURL": "https://github.com/easylist/easylist#fanboy-lists"
299
+ },
300
+ "ublock-cookies-easylist": {
301
+ "content": "filters",
302
+ "group": "annoyances",
303
+ "group2": "cookies",
304
+ "parent": "EasyList/uBO – Cookie Notices",
273
305
  "off": true,
274
306
  "title": "uBlock filters – Cookie Notices",
275
307
  "tags": "annoyances cookies",
308
+ "preferred": true,
276
309
  "contentURL": "https://ublockorigin.github.io/uAssets/filters/annoyances-cookies.txt",
277
310
  "cdnURLs": [
278
311
  "https://ublockorigin.github.io/uAssetsCDN/filters/annoyances-cookies.txt",
@@ -282,6 +315,50 @@
282
315
  ],
283
316
  "supportURL": "https://github.com/uBlockOrigin/uAssets"
284
317
  },
318
+ "adguard-social": {
319
+ "content": "filters",
320
+ "group": "annoyances",
321
+ "group2": "social",
322
+ "parent": null,
323
+ "off": true,
324
+ "title": "AdGuard – Social Widgets",
325
+ "tags": "annoyances social",
326
+ "contentURL": "https://filters.adtidy.org/extension/ublock/filters/4.txt",
327
+ "supportURL": "https://github.com/AdguardTeam/AdguardFilters#adguard-filters",
328
+ "instructionURL": "https://kb.adguard.com/en/general/adguard-ad-filters"
329
+ },
330
+ "fanboy-social": {
331
+ "content": "filters",
332
+ "group": "annoyances",
333
+ "group2": "social",
334
+ "parent": null,
335
+ "off": true,
336
+ "title": "EasyList – Social Widgets",
337
+ "tags": "annoyances social",
338
+ "preferred": true,
339
+ "contentURL": [
340
+ "https://ublockorigin.github.io/uAssets/thirdparties/easylist-social.txt",
341
+ "https://secure.fanboy.co.nz/fanboy-social_ubo.txt"
342
+ ],
343
+ "cdnURLs": [
344
+ "https://ublockorigin.github.io/uAssetsCDN/thirdparties/easylist-social.txt",
345
+ "https://ublockorigin.pages.dev/thirdparties/easylist-social.txt",
346
+ "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/thirdparties/easylist-social.txt",
347
+ "https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/thirdparties/easylist-social.txt",
348
+ "https://secure.fanboy.co.nz/fanboy-social_ubo.txt"
349
+ ],
350
+ "supportURL": "https://easylist.to/"
351
+ },
352
+ "fanboy-thirdparty_social": {
353
+ "content": "filters",
354
+ "group": "annoyances",
355
+ "group2": "social",
356
+ "off": true,
357
+ "title": "Fanboy – Anti-Facebook",
358
+ "tags": "privacy",
359
+ "contentURL": "https://secure.fanboy.co.nz/fanboy-antifacebook.txt",
360
+ "supportURL": "https://github.com/ryanbr/fanboy-adblock/issues"
361
+ },
285
362
  "adguard-popup-overlays": {
286
363
  "content": "filters",
287
364
  "group": "annoyances",
@@ -326,15 +403,6 @@
326
403
  "supportURL": "https://github.com/AdguardTeam/AdguardFilters#adguard-filters",
327
404
  "instructionURL": "https://kb.adguard.com/en/general/adguard-ad-filters"
328
405
  },
329
- "fanboy-thirdparty_social": {
330
- "content": "filters",
331
- "group": "annoyances",
332
- "off": true,
333
- "title": "Fanboy – Anti-Facebook",
334
- "tags": "privacy",
335
- "contentURL": "https://secure.fanboy.co.nz/fanboy-antifacebook.txt",
336
- "supportURL": "https://github.com/ryanbr/fanboy-adblock/issues"
337
- },
338
406
  "easylist-annoyances": {
339
407
  "content": "filters",
340
408
  "group": "annoyances",
@@ -342,6 +410,7 @@
342
410
  "off": true,
343
411
  "title": "EasyList – Other Annoyances",
344
412
  "tags": "annoyances",
413
+ "preferred": true,
345
414
  "contentURL": "https://ublockorigin.github.io/uAssets/thirdparties/easylist-annoyances.txt",
346
415
  "cdnURLs": [
347
416
  "https://ublockorigin.github.io/uAssetsCDN/thirdparties/easylist-annoyances.txt",
@@ -358,6 +427,7 @@
358
427
  "off": true,
359
428
  "title": "EasyList – Chat Widgets",
360
429
  "tags": "annoyances",
430
+ "preferred": true,
361
431
  "contentURL": "https://ublockorigin.github.io/uAssets/thirdparties/easylist-chat.txt",
362
432
  "cdnURLs": [
363
433
  "https://ublockorigin.github.io/uAssetsCDN/thirdparties/easylist-chat.txt",
@@ -367,42 +437,6 @@
367
437
  ],
368
438
  "supportURL": "https://github.com/easylist/easylist#fanboy-lists"
369
439
  },
370
- "fanboy-cookiemonster": {
371
- "content": "filters",
372
- "group": "annoyances",
373
- "parent": "EasyList – Annoyances|EasyList/uBO – Cookie Notices",
374
- "off": true,
375
- "title": "EasyList – Cookie Notices",
376
- "tags": "annoyances cookies",
377
- "contentURL": [
378
- "https://ublockorigin.github.io/uAssets/thirdparties/easylist-cookies.txt",
379
- "https://secure.fanboy.co.nz/fanboy-cookiemonster_ubo.txt"
380
- ],
381
- "cdnURLs": [
382
- "https://ublockorigin.github.io/uAssetsCDN/thirdparties/easylist-cookies.txt",
383
- "https://ublockorigin.pages.dev/thirdparties/easylist-cookies.txt",
384
- "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/thirdparties/easylist-cookies.txt",
385
- "https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/thirdparties/easylist-cookies.txt",
386
- "https://secure.fanboy.co.nz/fanboy-cookiemonster_ubo.txt"
387
- ],
388
- "supportURL": "https://github.com/easylist/easylist#fanboy-lists"
389
- },
390
- "ublock-cookies-easylist": {
391
- "content": "filters",
392
- "group": "annoyances",
393
- "parent": "EasyList – Annoyances|EasyList/uBO – Cookie Notices",
394
- "off": true,
395
- "title": "uBlock filters – Cookie Notices",
396
- "tags": "annoyances cookies",
397
- "contentURL": "https://ublockorigin.github.io/uAssets/filters/annoyances-cookies.txt",
398
- "cdnURLs": [
399
- "https://ublockorigin.github.io/uAssetsCDN/filters/annoyances-cookies.txt",
400
- "https://ublockorigin.pages.dev/filters/annoyances-cookies.txt",
401
- "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/annoyances-cookies.txt",
402
- "https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/annoyances-cookies.txt"
403
- ],
404
- "supportURL": "https://github.com/uBlockOrigin/uAssets"
405
- },
406
440
  "easylist-newsletters": {
407
441
  "content": "filters",
408
442
  "group": "annoyances",
@@ -410,6 +444,7 @@
410
444
  "off": true,
411
445
  "title": "EasyList – Newsletter Notices",
412
446
  "tags": "annoyances",
447
+ "preferred": true,
413
448
  "contentURL": [
414
449
  "https://ublockorigin.github.io/uAssets/thirdparties/easylist-newsletters.txt"
415
450
  ],
@@ -428,6 +463,7 @@
428
463
  "off": true,
429
464
  "title": "EasyList – Notifications",
430
465
  "tags": "annoyances",
466
+ "preferred": true,
431
467
  "contentURL": [
432
468
  "https://ublockorigin.github.io/uAssets/thirdparties/easylist-notifications.txt"
433
469
  ],
@@ -439,26 +475,6 @@
439
475
  ],
440
476
  "supportURL": "https://easylist.to/"
441
477
  },
442
- "fanboy-social": {
443
- "content": "filters",
444
- "group": "annoyances",
445
- "parent": "EasyList – Annoyances",
446
- "off": true,
447
- "title": "EasyList – Social Widgets",
448
- "tags": "annoyances social",
449
- "contentURL": [
450
- "https://ublockorigin.github.io/uAssets/thirdparties/easylist-social.txt",
451
- "https://secure.fanboy.co.nz/fanboy-social_ubo.txt"
452
- ],
453
- "cdnURLs": [
454
- "https://ublockorigin.github.io/uAssetsCDN/thirdparties/easylist-social.txt",
455
- "https://ublockorigin.pages.dev/thirdparties/easylist-social.txt",
456
- "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/thirdparties/easylist-social.txt",
457
- "https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/thirdparties/easylist-social.txt",
458
- "https://secure.fanboy.co.nz/fanboy-social_ubo.txt"
459
- ],
460
- "supportURL": "https://easylist.to/"
461
- },
462
478
  "ublock-annoyances": {
463
479
  "content": "filters",
464
480
  "group": "annoyances",
@@ -490,6 +506,7 @@
490
506
  "updateAfter": 13,
491
507
  "title": "Peter Lowe’s Ad and tracking server list",
492
508
  "tags": "ads privacy security",
509
+ "preferred": true,
493
510
  "contentURL": [
494
511
  "https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext",
495
512
  "assets/thirdparties/pgl.yoyo.org/as/serverlist.txt",
@@ -22,11 +22,11 @@
22
22
  web page context.
23
23
  */
24
24
 
25
+ /* eslint no-prototype-builtins: 0 */
26
+
25
27
  // Externally added to the private namespace in which scriptlets execute.
26
28
  /* global scriptletGlobals */
27
29
 
28
- 'use strict';
29
-
30
30
  export const builtinScriptlets = [];
31
31
 
32
32
  /*******************************************************************************
@@ -424,7 +424,8 @@ function abortCurrentScriptCore(
424
424
  if ( e instanceof HTMLScriptElement === false ) { return; }
425
425
  if ( e === thisScript ) { return; }
426
426
  if ( context !== '' && reContext.test(e.src) === false ) {
427
- if ( debug === 'nomatch' || debug === 'all' ) { debugger; } // jshint ignore: line
427
+ // eslint-disable-next-line no-debugger
428
+ if ( debug === 'nomatch' || debug === 'all' ) { debugger; }
428
429
  return;
429
430
  }
430
431
  if ( safe.logLevel > 1 && context !== '' ) {
@@ -432,17 +433,20 @@ function abortCurrentScriptCore(
432
433
  }
433
434
  const scriptText = getScriptText(e);
434
435
  if ( reNeedle.test(scriptText) === false ) {
435
- if ( debug === 'nomatch' || debug === 'all' ) { debugger; } // jshint ignore: line
436
+ // eslint-disable-next-line no-debugger
437
+ if ( debug === 'nomatch' || debug === 'all' ) { debugger; }
436
438
  return;
437
439
  }
438
440
  if ( safe.logLevel > 1 ) {
439
441
  safe.uboLog(logPrefix, `Matched text\n${scriptText}`);
440
442
  }
441
- if ( debug === 'match' || debug === 'all' ) { debugger; } // jshint ignore: line
443
+ // eslint-disable-next-line no-debugger
444
+ if ( debug === 'match' || debug === 'all' ) { debugger; }
442
445
  safe.uboLog(logPrefix, 'Aborted');
443
446
  throw new ReferenceError(exceptionToken);
444
447
  };
445
- if ( debug === 'install' ) { debugger; } // jshint ignore: line
448
+ // eslint-disable-next-line no-debugger
449
+ if ( debug === 'install' ) { debugger; }
446
450
  try {
447
451
  Object.defineProperty(owner, prop, {
448
452
  get: function() {
@@ -861,14 +865,33 @@ function objectFindOwnerFn(
861
865
  return modified;
862
866
  }
863
867
  const prop = chain.slice(0, pos);
868
+ const next = chain.slice(pos + 1);
869
+ let found = false;
870
+ if ( prop === '[-]' && Array.isArray(owner) ) {
871
+ let i = owner.length;
872
+ while ( i-- ) {
873
+ if ( objectFindOwnerFn(owner[i], next) === false ) { continue; }
874
+ owner.splice(i, 1);
875
+ found = true;
876
+ }
877
+ return found;
878
+ }
879
+ if ( prop === '{-}' && owner instanceof Object ) {
880
+ for ( const key of Object.keys(owner) ) {
881
+ if ( objectFindOwnerFn(owner[key], next) === false ) { continue; }
882
+ delete owner[key];
883
+ found = true;
884
+ }
885
+ return found;
886
+ }
864
887
  if (
865
888
  prop === '[]' && Array.isArray(owner) ||
889
+ prop === '{}' && owner instanceof Object ||
866
890
  prop === '*' && owner instanceof Object
867
891
  ) {
868
- const next = chain.slice(pos + 1);
869
- let found = false;
870
892
  for ( const key of Object.keys(owner) ) {
871
- found = objectFindOwnerFn(owner[key], next, prune) || found;
893
+ if (objectFindOwnerFn(owner[key], next, prune) === false ) { continue; }
894
+ found = true;
872
895
  }
873
896
  return found;
874
897
  }
@@ -876,7 +899,6 @@ function objectFindOwnerFn(
876
899
  owner = owner[prop];
877
900
  chain = chain.slice(pos + 1);
878
901
  }
879
- return true;
880
902
  }
881
903
 
882
904
  /******************************************************************************/
@@ -947,6 +969,16 @@ function setCookieFn(
947
969
  path = '',
948
970
  options = {},
949
971
  ) {
972
+ // https://datatracker.ietf.org/doc/html/rfc2616#section-2.2
973
+ // https://github.com/uBlockOrigin/uBlock-issues/issues/2777
974
+ if ( trusted === false && /[^!#$%&'*+\-.0-9A-Z[\]^_`a-z|~]/.test(name) ) {
975
+ name = encodeURIComponent(name);
976
+ }
977
+ // https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1
978
+ if ( /[^!#-+\--:<-[\]-~]/.test(value) ) {
979
+ value = encodeURIComponent(value);
980
+ }
981
+
950
982
  const cookieBefore = getCookieFn(name);
951
983
  if ( cookieBefore !== undefined && options.dontOverwrite ) { return; }
952
984
  if ( cookieBefore === value && options.reload ) { return; }
@@ -1198,10 +1230,10 @@ function jsonPruneFetchResponseFn(
1198
1230
  const extraArgs = safe.getExtraArgs(Array.from(arguments), 2);
1199
1231
  const propNeedles = parsePropertiesToMatch(extraArgs.propsToMatch, 'url');
1200
1232
  const stackNeedle = safe.initPattern(extraArgs.stackToMatch || '', { canNegate: true });
1233
+ const logall = rawPrunePaths === '';
1201
1234
  const applyHandler = function(target, thisArg, args) {
1202
1235
  const fetchPromise = Reflect.apply(target, thisArg, args);
1203
- if ( rawPrunePaths === '' ) { return fetchPromise; }
1204
- let outcome = 'match';
1236
+ let outcome = logall ? 'nomatch' : 'match';
1205
1237
  if ( propNeedles.size !== 0 ) {
1206
1238
  const objs = [ args[0] instanceof Object ? args[0] : { url: args[0] } ];
1207
1239
  if ( objs[0] instanceof Request ) {
@@ -1218,14 +1250,18 @@ function jsonPruneFetchResponseFn(
1218
1250
  outcome = 'nomatch';
1219
1251
  }
1220
1252
  }
1221
- if ( outcome === 'nomatch' ) { return fetchPromise; }
1222
- if ( safe.logLevel > 1 ) {
1253
+ if ( logall === false && outcome === 'nomatch' ) { return fetchPromise; }
1254
+ if ( safe.logLevel > 1 && outcome !== 'nomatch' && propNeedles.size !== 0 ) {
1223
1255
  safe.uboLog(logPrefix, `Matched optional "propsToMatch"\n${extraArgs.propsToMatch}`);
1224
1256
  }
1225
1257
  return fetchPromise.then(responseBefore => {
1226
1258
  const response = responseBefore.clone();
1227
1259
  return response.json().then(objBefore => {
1228
1260
  if ( typeof objBefore !== 'object' ) { return responseBefore; }
1261
+ if ( logall ) {
1262
+ safe.uboLog(logPrefix, safe.JSON_stringify(objBefore, null, 2));
1263
+ return responseBefore;
1264
+ }
1229
1265
  const objAfter = objectPruneFn(
1230
1266
  objBefore,
1231
1267
  rawPrunePaths,
@@ -1621,7 +1657,7 @@ function addEventListenerDefuser(
1621
1657
  const matchesEither = matchesType || matchesHandler;
1622
1658
  const matchesBoth = matchesType && matchesHandler;
1623
1659
  if ( debug === 1 && matchesBoth || debug === 2 && matchesEither ) {
1624
- debugger; // jshint ignore:line
1660
+ debugger; // eslint-disable-line no-debugger
1625
1661
  }
1626
1662
  if ( matchesBoth && targetSelector !== undefined ) {
1627
1663
  if ( elementMatches(thisArg) === false ) { return false; }
@@ -3415,7 +3451,7 @@ function hrefSanitizer(
3415
3451
  return elem.textContent
3416
3452
  .replace(/^[^\x21-\x7e]+/, '') // remove leading invalid characters
3417
3453
  .replace(/[^\x21-\x7e]+$/, '') // remove trailing invalid characters
3418
- ;
3454
+ ;
3419
3455
  }
3420
3456
  return '';
3421
3457
  };
@@ -3455,7 +3491,7 @@ function hrefSanitizer(
3455
3491
  if ( shouldSanitize ) { break; }
3456
3492
  }
3457
3493
  if ( shouldSanitize === false ) { return; }
3458
- timer = self.requestAnimationFrame(( ) => {
3494
+ timer = self.requestIdleCallback(( ) => {
3459
3495
  timer = undefined;
3460
3496
  sanitize();
3461
3497
  });
@@ -3555,6 +3591,7 @@ function spoofCSS(
3555
3591
  const logPrefix = safe.makeLogPrefix('spoof-css', selector, ...args);
3556
3592
  const canDebug = scriptletGlobals.canDebug;
3557
3593
  const shouldDebug = canDebug && propToValueMap.get('debug') || 0;
3594
+ const instanceProperties = [ 'cssText', 'length', 'parentRule' ];
3558
3595
  const spoofStyle = (prop, real) => {
3559
3596
  const normalProp = toCamelCase(prop);
3560
3597
  const shouldSpoof = propToValueMap.has(normalProp);
@@ -3564,9 +3601,15 @@ function spoofCSS(
3564
3601
  }
3565
3602
  return value;
3566
3603
  };
3604
+ const cloackFunc = (fn, thisArg, name) => {
3605
+ const trap = fn.bind(thisArg);
3606
+ Object.defineProperty(trap, 'name', { value: name });
3607
+ return trap;
3608
+ };
3567
3609
  self.getComputedStyle = new Proxy(self.getComputedStyle, {
3568
3610
  apply: function(target, thisArg, args) {
3569
- if ( shouldDebug !== 0 ) { debugger; } // jshint ignore: line
3611
+ // eslint-disable-next-line no-debugger
3612
+ if ( shouldDebug !== 0 ) { debugger; }
3570
3613
  const style = Reflect.apply(target, thisArg, args);
3571
3614
  const targetElements = new WeakSet(document.querySelectorAll(selector));
3572
3615
  if ( targetElements.has(args[0]) === false ) { return style; }
@@ -3574,11 +3617,14 @@ function spoofCSS(
3574
3617
  get(target, prop, receiver) {
3575
3618
  if ( typeof target[prop] === 'function' ) {
3576
3619
  if ( prop === 'getPropertyValue' ) {
3577
- return (function(prop) {
3620
+ return cloackFunc(function(prop) {
3578
3621
  return spoofStyle(prop, target[prop]);
3579
- }).bind(target);
3622
+ }, target, 'getPropertyValue');
3580
3623
  }
3581
- return target[prop].bind(target);
3624
+ return cloackFunc(target[prop], target, prop);
3625
+ }
3626
+ if ( instanceProperties.includes(prop) ) {
3627
+ return Reflect.get(target, prop);
3582
3628
  }
3583
3629
  return spoofStyle(prop, Reflect.get(target, prop, receiver));
3584
3630
  },
@@ -3605,7 +3651,8 @@ function spoofCSS(
3605
3651
  });
3606
3652
  Element.prototype.getBoundingClientRect = new Proxy(Element.prototype.getBoundingClientRect, {
3607
3653
  apply: function(target, thisArg, args) {
3608
- if ( shouldDebug !== 0 ) { debugger; } // jshint ignore: line
3654
+ // eslint-disable-next-line no-debugger
3655
+ if ( shouldDebug !== 0 ) { debugger; }
3609
3656
  const rect = Reflect.apply(target, thisArg, args);
3610
3657
  const targetElements = new WeakSet(document.querySelectorAll(selector));
3611
3658
  if ( targetElements.has(thisArg) === false ) { return rect; }
@@ -3676,7 +3723,6 @@ function setCookie(
3676
3723
  if ( name === '' ) { return; }
3677
3724
  const safe = safeSelf();
3678
3725
  const logPrefix = safe.makeLogPrefix('set-cookie', name, value, path);
3679
- name = encodeURIComponent(name);
3680
3726
 
3681
3727
  const validValues = [
3682
3728
  'accept', 'reject',
@@ -3697,7 +3743,7 @@ function setCookie(
3697
3743
  if ( validValues.includes(unquoted) === false ) {
3698
3744
  if ( /^\d+$/.test(unquoted) === false ) { return; }
3699
3745
  const n = parseInt(value, 10);
3700
- if ( n > 15 ) { return; }
3746
+ if ( n > 32767 ) { return; }
3701
3747
  }
3702
3748
 
3703
3749
  const done = setCookieFn(