@browserless.io/browserless 2.23.0 → 2.24.0-beta-1

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 (118) hide show
  1. package/build/routes/chrome/http/pdf.post.body.json +8 -8
  2. package/build/routes/chrome/http/scrape.post.body.json +8 -8
  3. package/build/routes/chrome/http/screenshot.post.body.json +8 -8
  4. package/build/routes/chromium/http/pdf.post.body.json +8 -8
  5. package/build/routes/chromium/http/screenshot.post.body.json +8 -8
  6. package/docker/multi/Dockerfile +2 -1
  7. package/docker/webkit/Dockerfile +2 -1
  8. package/extensions/ublock/_locales/ar/messages.json +5 -1
  9. package/extensions/ublock/_locales/az/messages.json +4 -0
  10. package/extensions/ublock/_locales/be/messages.json +5 -1
  11. package/extensions/ublock/_locales/bg/messages.json +4 -0
  12. package/extensions/ublock/_locales/bn/messages.json +4 -0
  13. package/extensions/ublock/_locales/br_FR/messages.json +4 -0
  14. package/extensions/ublock/_locales/bs/messages.json +4 -0
  15. package/extensions/ublock/_locales/ca/messages.json +4 -0
  16. package/extensions/ublock/_locales/cs/messages.json +6 -2
  17. package/extensions/ublock/_locales/cv/messages.json +4 -0
  18. package/extensions/ublock/_locales/cy/messages.json +15 -11
  19. package/extensions/ublock/_locales/da/messages.json +4 -0
  20. package/extensions/ublock/_locales/de/messages.json +8 -4
  21. package/extensions/ublock/_locales/el/messages.json +4 -0
  22. package/extensions/ublock/_locales/en/messages.json +4 -0
  23. package/extensions/ublock/_locales/en_GB/messages.json +4 -0
  24. package/extensions/ublock/_locales/eo/messages.json +4 -0
  25. package/extensions/ublock/_locales/es/messages.json +5 -1
  26. package/extensions/ublock/_locales/et/messages.json +4 -0
  27. package/extensions/ublock/_locales/eu/messages.json +4 -0
  28. package/extensions/ublock/_locales/fa/messages.json +14 -10
  29. package/extensions/ublock/_locales/fi/messages.json +7 -3
  30. package/extensions/ublock/_locales/fil/messages.json +4 -0
  31. package/extensions/ublock/_locales/fr/messages.json +5 -1
  32. package/extensions/ublock/_locales/fy/messages.json +4 -0
  33. package/extensions/ublock/_locales/gl/messages.json +4 -0
  34. package/extensions/ublock/_locales/gu/messages.json +4 -0
  35. package/extensions/ublock/_locales/he/messages.json +4 -0
  36. package/extensions/ublock/_locales/hi/messages.json +4 -0
  37. package/extensions/ublock/_locales/hr/messages.json +4 -0
  38. package/extensions/ublock/_locales/hu/messages.json +4 -0
  39. package/extensions/ublock/_locales/hy/messages.json +4 -0
  40. package/extensions/ublock/_locales/id/messages.json +4 -0
  41. package/extensions/ublock/_locales/it/messages.json +4 -0
  42. package/extensions/ublock/_locales/ja/messages.json +6 -2
  43. package/extensions/ublock/_locales/ka/messages.json +5 -1
  44. package/extensions/ublock/_locales/kk/messages.json +4 -0
  45. package/extensions/ublock/_locales/kn/messages.json +4 -0
  46. package/extensions/ublock/_locales/ko/messages.json +5 -1
  47. package/extensions/ublock/_locales/lt/messages.json +4 -0
  48. package/extensions/ublock/_locales/lv/messages.json +4 -0
  49. package/extensions/ublock/_locales/mk/messages.json +4 -0
  50. package/extensions/ublock/_locales/ml/messages.json +4 -0
  51. package/extensions/ublock/_locales/mr/messages.json +4 -0
  52. package/extensions/ublock/_locales/ms/messages.json +4 -0
  53. package/extensions/ublock/_locales/nb/messages.json +4 -0
  54. package/extensions/ublock/_locales/nl/messages.json +4 -0
  55. package/extensions/ublock/_locales/no/messages.json +4 -0
  56. package/extensions/ublock/_locales/oc/messages.json +4 -0
  57. package/extensions/ublock/_locales/pa/messages.json +5 -1
  58. package/extensions/ublock/_locales/pl/messages.json +4 -0
  59. package/extensions/ublock/_locales/pt_BR/messages.json +4 -0
  60. package/extensions/ublock/_locales/pt_PT/messages.json +4 -0
  61. package/extensions/ublock/_locales/ro/messages.json +4 -0
  62. package/extensions/ublock/_locales/ru/messages.json +5 -1
  63. package/extensions/ublock/_locales/si/messages.json +4 -0
  64. package/extensions/ublock/_locales/sk/messages.json +4 -0
  65. package/extensions/ublock/_locales/sl/messages.json +4 -0
  66. package/extensions/ublock/_locales/so/messages.json +4 -0
  67. package/extensions/ublock/_locales/sq/messages.json +4 -0
  68. package/extensions/ublock/_locales/sr/messages.json +4 -0
  69. package/extensions/ublock/_locales/sv/messages.json +5 -1
  70. package/extensions/ublock/_locales/sw/messages.json +4 -0
  71. package/extensions/ublock/_locales/ta/messages.json +4 -0
  72. package/extensions/ublock/_locales/te/messages.json +4 -0
  73. package/extensions/ublock/_locales/th/messages.json +4 -0
  74. package/extensions/ublock/_locales/tr/messages.json +4 -0
  75. package/extensions/ublock/_locales/uk/messages.json +7 -3
  76. package/extensions/ublock/_locales/ur/messages.json +4 -0
  77. package/extensions/ublock/_locales/vi/messages.json +4 -0
  78. package/extensions/ublock/_locales/zh_CN/messages.json +4 -0
  79. package/extensions/ublock/_locales/zh_TW/messages.json +4 -0
  80. package/extensions/ublock/assets/assets.json +14 -14
  81. package/extensions/ublock/assets/resources/run-at.js +80 -0
  82. package/extensions/ublock/assets/resources/safe-self.js +218 -0
  83. package/extensions/ublock/assets/resources/scriptlets.js +461 -538
  84. package/extensions/ublock/assets/resources/set-attr.js +201 -0
  85. package/extensions/ublock/assets/thirdparties/easylist/easylist.txt +4002 -11582
  86. package/extensions/ublock/assets/thirdparties/easylist/easyprivacy.txt +257 -83
  87. package/extensions/ublock/assets/thirdparties/pgl.yoyo.org/as/serverlist +22 -38
  88. package/extensions/ublock/assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat +102 -110
  89. package/extensions/ublock/assets/thirdparties/urlhaus-filter/urlhaus-filter-online.txt +2776 -3613
  90. package/extensions/ublock/assets/ublock/badware.min.txt +581 -382
  91. package/extensions/ublock/assets/ublock/filters.min.txt +997 -990
  92. package/extensions/ublock/assets/ublock/privacy.min.txt +145 -26
  93. package/extensions/ublock/assets/ublock/quick-fixes.min.txt +134 -83
  94. package/extensions/ublock/assets/ublock/unbreak.min.txt +69 -46
  95. package/extensions/ublock/css/document-blocked.css +28 -1
  96. package/extensions/ublock/document-blocked.html +9 -7
  97. package/extensions/ublock/js/assets.js +15 -11
  98. package/extensions/ublock/js/benchmarks.js +13 -9
  99. package/extensions/ublock/js/biditrie.js +1 -1
  100. package/extensions/ublock/js/document-blocked.js +41 -5
  101. package/extensions/ublock/js/hntrie.js +1 -1
  102. package/extensions/ublock/js/i18n.js +2 -4
  103. package/extensions/ublock/js/pagestore.js +61 -43
  104. package/extensions/ublock/js/s14e-serializer.js +47 -22
  105. package/extensions/ublock/js/scriptlet-filtering.js +21 -18
  106. package/extensions/ublock/js/scriptlets/load-large-media-interactive.js +61 -48
  107. package/extensions/ublock/js/scriptlets/should-inject-contentscript.js +1 -3
  108. package/extensions/ublock/js/static-dnr-filtering.js +9 -7
  109. package/extensions/ublock/js/static-filtering-parser.js +87 -54
  110. package/extensions/ublock/js/static-net-filtering.js +118 -42
  111. package/extensions/ublock/js/traffic.js +37 -18
  112. package/extensions/ublock/js/vapi-background-ext.js +21 -49
  113. package/extensions/ublock/js/vapi-background.js +8 -0
  114. package/extensions/ublock/manifest.json +1 -1
  115. package/extensions/ublock/web_accessible_resources/googlesyndication_adsbygoogle.js +3 -1
  116. package/package.json +15 -15
  117. package/static/docs/swagger.json +1 -1
  118. package/static/docs/swagger.min.json +1 -1
@@ -1,16 +1,16 @@
1
1
  ! Title: uBlock filters – Unbreak
2
2
  ! Expires: 5 days
3
- ! Last modified: Thu, 26 Sep 2024 11:53:16 +0000
3
+ ! Last modified: Thu, 14 Nov 2024 10:47:30 +0000
4
4
  ! Diff-Path: %diffpath%#ublock-unbreak
5
5
  ! Diff-Expires: 317 minutes
6
6
  ! License: https://github.com/uBlockOrigin/uAssets/blob/master/LICENSE
7
7
  ! *** uAssets:filters/unbreak.txt ***
8
- ! START: Email trackings
8
+ ! START: Bounce/Click trackings
9
9
  ! password reset link broken on coindesk.com
10
10
  @@||awstrack.me/*auth.coindesk.com$doc,popup
11
11
  ! swagbucks.com - restore inactive
12
12
  @@||awstrack.me/*cmd=ac-inactive-restore$doc,popup
13
- ! END: Email trackings
13
+ ! END: Bounce/Click trackings
14
14
  ||2mdn.net/instream/video/client.js$script,redirect=noopjs,domain=video.foxnews.com
15
15
  ||cdn.krxd.net^$script,redirect=noopjs,domain=video.foxnews.com
16
16
  @@||akamaihd.net/player/*/akamai/amp/prebid/*$script,domain=static.foxnews.com
@@ -289,8 +289,6 @@ warszawawpigulce.pl##.eklama
289
289
  @@||search.spotxchange.com^$xhr,domain=bloomberg.*
290
290
  @@||sourcepointcmp.bloomberg.com/ccpa.js$script,domain=bloomberg.*
291
291
  @@||go.com/disneyid/responder$frame,1p
292
- ! linkdrop.net broken (no captcha)
293
- @@||ajax.googleapis.com^$script,domain=linkdrop.net
294
292
  @@||connect.facebook.*/*/AudienceNetworkPrebid.js$script,domain=cbssports.com
295
293
  @@||javmost.com/ad*.php$frame,1p
296
294
  @@||javpost.net^$frame,domain=javmost.com
@@ -314,9 +312,6 @@ tubewolf.com##.bnnr
314
312
  @@||securepubads.g.doubleclick.net/gpt/pubads_impl$script,domain=pitchfork.com
315
313
  @@||pub.247-inc.net/psp/platform/*$frame,domain=bbystatic.com
316
314
  ||admost.com^$script,important,domain=sahadan.com
317
- |https://$3p,image,script,domain=damimage.com|imagedecode.com|imageteam.org,badfilter
318
- @@||imgview.pw^$ghide
319
- @@||imgdew.com/js/*$script,domain=imgdew.pw
320
315
  pasteboard.co##+js(set, nads.createAd, trueFunc)
321
316
  go.com#@#.has-ad
322
317
  @@||edgedatg.com/aws/assets/cp/web/assets/js/*/AppMeasurement.js$script,domain=disneynow.go.com
@@ -326,7 +321,6 @@ go.com#@#.has-ad
326
321
  ||computerworld.com/*/gpt_includes.js$script,redirect-rule=googletagservices_gpt.js
327
322
  @@||adverts.ie/css/$css,1p
328
323
  riderplanet-usa.com#@##ad_1
329
- adproceed.com#@#.single-ad
330
324
  @@||imasdk.googleapis.com/js/sdkloader/ima3.js$script,domain=wwm.rtl.de
331
325
  hwupgrade.it#@#a[href^="https://www.amazon."][href*="tag="]
332
326
  hdblog.it#@#a[href^="https://www.amazon."][href*="tag="]
@@ -348,7 +342,6 @@ hdblog.it#@#a[href^="https://www.amazon."][href*="tag="]
348
342
  @@||vidtodo.com^$css,image,domain=vidtudu.com
349
343
  @@||art19.com^$xhr,domain=merriam-webster.com
350
344
  @@||graph.facebook.com^$xhr,domain=merriam-webster.com
351
- tomsguide.com#@#.widget-ads
352
345
  @@||static.sunmedia.tv/integrations/*$script,domain=api.gooru.live|elespanol.com|periodistadigital.tv
353
346
  *$3p,script,redirect=noopjs,domain=lolalytics.com
354
347
  @@||dev.visualwebsiteoptimizer.com^$script,domain=cars.usnews.com
@@ -367,7 +360,6 @@ tomsguide.com#@#.widget-ads
367
360
  hawaiitribune-herald.com,thegardenisland.com,westhawaiitoday.com#@#.header-ad
368
361
  @@||vshare.eu/$popup,domain=putlockers.fm
369
362
  @@||adobedtm.com^*/satellitelib-$script,domain=virginmobile.ca
370
- dday.it#@#.sponsored
371
363
  @@||europarl.europa.eu/website/webanalytics/*$script,1p
372
364
  @@||code.adsales.snidigital.com/conf/ads-config.js$script,domain=travelchannel.com
373
365
  ||tailtarget.com/profiles.js$script,redirect=noopjs,domain=superesportes.com.br,important
@@ -465,6 +457,10 @@ calgaryherald.com#@#.local-branding
465
457
  @@*$csp,domain=activistpost.com
466
458
  @@||d24n15hnbwhuhn.cloudfront.net/libs/amplitude-$script,domain=gethuman.com
467
459
  @@||cdnjs.cloudflare.com/ajax/libs/videojs-contrib-ads/*/videojs.ads.css$stylesheet,domain=abcya.com
460
+ ||px.moatads.com/pixel.gif$image,domain=abcya.com,redirect=1x1.gif
461
+ *$script,domain=abcya.com,redirect-rule=noopjs
462
+ ||imasdk.googleapis.com/js/sdkloader/ima3.js^$script,redirect=google-ima.js:5,domain=abcya.com
463
+ abcya.com##+js(nano-stb, t++, 500)
468
464
  @@||hyundaiusa.com/js/analytics/analytics.js$script,1p
469
465
  @@||appspot.com/api/*/feed/tag$xhr,domain=apnews.com
470
466
  apnews.com##html[data-header-hasleaderboard]:remove-attr(data-header-hasleaderboard)
@@ -665,6 +661,7 @@ reuters.com##ul[class^="cluster__stories"] > li[class^="cluster__cluster-hub"][c
665
661
  ||t.eloqua.com^$badfilter
666
662
  ||t.eloqua.com^$3p
667
663
  @@||t.eloqua.com^$xhr,domain=natera.com
664
+ @@||t.eloqua.com/e/$xhr,frame,3p
668
665
  @@||google-analytics.com/ga.js$script,domain=bimi.jorudan.co.jp
669
666
  ! broken videos at telegraph.co.uk the videos are behind a paywall
670
667
  ! example https://www.telegraph.co.uk/news/2020/06/18/like-churchill-de-gaulle-1940-britain-france-united-against/
@@ -691,8 +688,6 @@ viu.com##.banner_ad_label
691
688
  viu.com##+js(no-xhr-if, mobileanalytics)
692
689
  @@||ak.sail-horizon.com/spm/spm$script,domain=watch.wwe.com
693
690
  @@||aliexpress.com^*?af=$3p,popup,domain=umidigi.com
694
- qqcinema21.com#@#.headads
695
- qqcinema21.com##a[rel="nofollow"]:has(img)
696
691
  begadistrictnews.com.au,bendigoadvertiser.com.au,goulburnpost.com.au,maitlandmercury.com.au,newcastleherald.com.au##.subscribe-article .subscriber-hider:style(display:block!important)
697
692
  begadistrictnews.com.au,bendigoadvertiser.com.au,goulburnpost.com.au,maitlandmercury.com.au,newcastleherald.com.au##.subscribe-article .subscribe-truncate:style(max-height:unset!important;order:unset!important;)
698
693
  begadistrictnews.com.au,bendigoadvertiser.com.au,goulburnpost.com.au,maitlandmercury.com.au,newcastleherald.com.au##.subscribe-article .subscribe-truncate::before:style(background:none!important;)
@@ -718,7 +713,7 @@ nowgoal.com##[href^="/ad/"]
718
713
  @@||securepubads.g.doubleclick.net^$script,domain=bearteach.com
719
714
  bearteach.com###externalinject-gpt-passback-iframe
720
715
  ! broken pages / videos due to blocking recoco
721
- @@||recoco.it^$image,xhr,domain=heavy-r.com|porngo.com|showbiz.cz|tostreamit.com|vumoo.to|bodysize.org
716
+ @@||recoco.it^$image,xhr,domain=heavy-r.com|porngo.com|showbiz.cz|bodysize.org
722
717
  ! as suggested https://www.reddit.com/r/uBlockOrigin/comments/esv7pe/servicehotelscom_not_working_properly_with_ublock/
723
718
  @@||travel-assets.com/datacapture/$script,domain=service.hotels.com
724
719
  @@||google-analytics.com/analytics.js$script,domain=payment.mts.ru
@@ -735,7 +730,6 @@ bearteach.com###externalinject-gpt-passback-iframe
735
730
  @@||4strokemedia.com^$xhr,script,domain=ilmeteo.it
736
731
  ||imasdk.googleapis.com/js/sdkloader/ima3.js^$script,redirect=noopjs,domain=ilmeteo.it
737
732
  dziennikbaltycki.pl,dzienniklodzki.pl,dziennikpolski24.pl,dziennikzachodni.pl,echodnia.eu,expressbydgoski.pl,expressilustrowany.pl,gazetakrakowska.pl,gazetalubuska.pl,gazetawroclawska.pl,gk24.pl,gloswielkopolski.pl,gol24.pl,gp24.pl,gra.pl,gs24.pl,kurierlubelski.pl,motofakty.pl,naszemiasto.pl,nowiny24.pl,nowosci.com.pl,nto.pl,polskatimes.pl,pomorska.pl,poranny.pl,sportowy24.pl,strefaagro.pl,strefabiznesu.pl,stronakobiet.pl,telemagazyn.pl,to.com.pl,wspolczesna.pl#@#+js(set-constant, pp_adblock_is_off, trueFunc)
738
- ||px.moatads.com/pixel.gif$image,domain=abcya.com,redirect-rule=1x1.gif
739
733
  ! netaffiliation .com Peter Lowe's
740
734
  ||metaffiliation.com^$badfilter
741
735
  ||metaffiliation.com^$3p,domain=~netaffiliation.com
@@ -958,7 +952,6 @@ nfmovies.com#@#+js(aopr, $myui)
958
952
  |https://$xhr,3p,domain=cloudvideo.tv,badfilter
959
953
  |https://$css,3p,domain=cloudvideo.tv,badfilter
960
954
  @@||cdn.plyr.io/*/plyr.svg$xhr,domain=mp4upload.com
961
- arthromed.de#@##ad_3
962
955
  ! broken video on cookinggames .com
963
956
  @@||bitent.com/lock_html5/adPlayer/v*/adPlayer.js$script,domain=cookinggames.com
964
957
  ! unbreak saltspringexchange .com
@@ -1569,11 +1562,9 @@ abczdrowie.pl#@#+js(aost, WP.prebid, onLoad)
1569
1562
  ||dan-ball.jp/*.gif$image,redirect-rule=1x1.gif
1570
1563
  @@||cdn.stat-rock.com/player.js$script,domain=autofaucet.dutchycorp.space
1571
1564
  @@||api.thingiverse.com/banner/*/pageAd$xhr,1p
1572
- idnes.cz#@#+js(abort-current-script, String.fromCharCode)
1573
1565
  cyberstumble.com##.td-animation-stack-type0-1:style(opacity:1 !important)
1574
1566
  pearsonclinical.com##.aligner
1575
1567
  *$image,domain=asfan.as.com,redirect-rule=1x1.gif
1576
- #@##banner_ad
1577
1568
  ! mpsconline. gov.in breakage
1578
1569
  @@||mpsconline.gov.in^$ghide
1579
1570
  ||booking.rm.dk/selvbooking/*/analytics/*$xhr,1p,redirect-rule=nooptext
@@ -1726,14 +1717,10 @@ factable.com##+js(set, googletag.cmd, {})
1726
1717
  factable.com##.puicontainer
1727
1718
  factable.com##.pohcontainer
1728
1719
  @@/prebid-ads/adsensebase.js$script,redirect-rule=prebid-ads.js,domain=darkreading.com
1729
- ! cname unlocking stream https://www.streamonfoot.xyz/77-rmc-en-ligne.html
1730
- @@||streaming.adswizz.com^$media,domain=streamonfoot.xyz
1731
1720
  ! affiliate.rakuten.co.jp broken
1732
1721
  ||ba.afl.rakuten.co.jp^$badfilter
1733
1722
  ||ba.afl.rakuten.co.jp^$3p
1734
1723
  beckershospitalreview.com##html,body:style(overflow: auto !important)
1735
- *$frame,domain=mcrypto.club|luckydice.net,redirect-rule=noopframe
1736
- ||cryptocoinsad.com/ads/show.php$frame,redirect-rule=noop.html
1737
1724
  thequint.com#@#._4xQrn
1738
1725
  thequint.com##._4xQrn:style(max-height:0px)
1739
1726
  thequint.com##span:has-text(ADVERTISEMENT)
@@ -1763,7 +1750,6 @@ scanurl.net##.adsbygoogle
1763
1750
  ||assets.springserve.com^$media,domain=app.plex.tv,redirect=noopmp3-0.1s
1764
1751
  @@||holidaypark.de/sites/default/files/public/google_tag/*$script,1p
1765
1752
  @@||googletagmanager.com/gtm.js$script,domain=holidaypark.de
1766
- mitula.com.br#@#.adsList
1767
1753
  @@||mpsnare.iesnare.com/snare.js$script,domain=lenovo.com
1768
1754
  dpp.org.tw#@#.ad_url
1769
1755
  @@||media.sailthru.com/composer/images$image,domain=link.square-enix-games.com
@@ -1882,7 +1868,8 @@ gloucestershirelive.co.uk##+js(set, chameleonVideo.adDisabledRequested, true)
1882
1868
  @@||google.com/adsense/search/ads.js$script,domain=diigo.com
1883
1869
  ||join.megaphonetv.com^$3p,badfilter
1884
1870
  @@||video.qq.com/getvinfo$script,1p
1885
- ||arcgis.com/apps/instant/node_modules/templates-common-library/structuralFunctionality/telemetry/AppMeasurement.js$script,1p,redirect-rule=noopjs
1871
+ ||arcgis.com/apps/instant/node_modules/templates-common-library/structuralFunctionality/telemetry/AppMeasurement.js^$script,1p,redirect=noopjs
1872
+ ||noaa.maps.arcgis.com/apps/instant/*/AppMeasurement.js$1p,important
1886
1873
  /google-tag-manager.min.js$script,domain=511tactical.com,redirect-rule=googletagmanager_gtm.js
1887
1874
  ! herz-fuer-tiere.de images hidden
1888
1875
  @@||herz-fuer-tiere.de^$cname
@@ -1978,6 +1965,10 @@ jacksonguitars.com##+js(set, analytics, {})
1978
1965
  @@/@trinitymirrordigital/withnail/*prebid$script,xhr,1p
1979
1966
  @@||bcp.crwdcntrl.net/*/data$xhr
1980
1967
  @@||tags.crwdcntrl.net^$script,domain=dailystar.co.uk|liverpoolecho.co.uk|football.london|devonlive.com|buzz.ie|inyourarea.co.uk|cornwalllive.com|coventrytelegraph.net|dublinlive.ie|glasgowlive.co.uk|kentlive.news|essexlive.news|lincolnshirelive.co.uk|insider.co.uk|bathchronicle.co.uk|birminghammail.co.uk|cheshire-live.co.uk|corkbeo.ie|crewechronicle.co.uk|croydonadvertiser.co.uk|dailypost.co.uk|dailyrecord.co.uk|derbytelegraph.co.uk|edinburghlive.co.uk|examinerlive.co.uk|gazettelive.co.uk|getreading.co.uk|getsurrey.co.uk|grimsbytelegraph.co.uk|hampshirelive.news|hulldailymail.co.uk|irishmirror.ie|liverpool.com|mylondon.news|nottinghampost.com|rossendalefreepress.co.uk|southportvisiter.co.uk|staffordshire-live.co.uk|stokesentinel.co.uk|walesonline.co.uk
1968
+ @@||micro.rubiconproject.com/prebid/dynamic/$script,domain=dailypost.co.uk|dailystar.co.uk|mirror.co.uk
1969
+ dailypost.co.uk,dailystar.co.uk,mirror.co.uk##+js(nano-stb, native code, 15000, 0.001)
1970
+ dailypost.co.uk,dailystar.co.uk,mirror.co.uk##+js(nano-stb, (null), 5000, 0.001)
1971
+ ||jwpcdn.com/player/plugins/googima/*/googima.js^$script,redirect=google-ima.js,domain=dailystar.co.uk
1981
1972
  ||googleadservices.com/pagead/conversion.js$script,redirect=noop.js,domain=ncsoft.jp,important
1982
1973
  @@||matomo.paizo.com/piwik.js$1p
1983
1974
  ||imasdk.googleapis.com/js/sdkloader/ima3.js$script,domain=doubtnut.com,redirect=google-ima.js,important
@@ -2177,7 +2168,6 @@ metastats.net###page-wrapper > div.row:nth-of-type(1)
2177
2168
  @@||4chan.org/adv/$image,domain=boards.4channel.org
2178
2169
  ! To counter `siteintercept.qualtrics.com` in PL list
2179
2170
  ||siteintercept.qualtrics.com^$badfilter
2180
- *$script,domain=abcya.com,redirect-rule=noopjs
2181
2171
  ||googletagmanager.com/gtag/js$script,redirect-rule=noop.js:10,domain=scobel.pasaz24.pl
2182
2172
  goku.sx##.st-hidden:remove-class(st-hidden)
2183
2173
  goku.sx##.st-btn:not(.st-first):style(display: inline-block !important; min-width: 50px !important; width: 50px !important;)
@@ -2245,12 +2235,6 @@ kcra.com,wcvb.com##+js(set, google.ima.settings.setDisableFlashAds, noopFunc)
2245
2235
  @@||ads.pubmatic.com/AdServer/js/pwt/*/pwt.js$script,domain=wionews.com
2246
2236
  wionews.com##^link[rel="canonical"]:not([href^="https://www.wionews.com/videos/"]) ~ script#pwt_script
2247
2237
  @@||securepubads.g.doubleclick.net/pagead/managed/js/gpt/*$script,domain=moviepilot.de
2248
- @@||securepubads.g.doubleclick.net/tag/js/gpt.js$script,domain=filmstarts.de
2249
- @@||securepubads.g.doubleclick.net/pagead/managed/js/gpt/*/pubads_impl.js$script,domain=filmstarts.de
2250
- @@||securepubads.g.doubleclick.net/gampad/ads$xhr,domain=filmstarts.de
2251
- @@||cdn.lib.getjad.io/library/*$script,domain=filmstarts.de
2252
- @@||cdn.lib.getjad.io/prebid/*$script,domain=filmstarts.de
2253
- @@||amazon-adsystem.com/*/apstag.js$script,redirect-rule=amazon_apstag.js:5,domain=filmstarts.de
2254
2238
  @@||hs.eloqua.com^$frame,domain=anthology.com
2255
2239
  @@||mindbodygreen.com/ads-leaderboard-ad-$script,domain=www.mindbodygreen.com
2256
2240
  ! browsing-topics breakages
@@ -2384,14 +2368,11 @@ help.cashctrl.com##+js(set, Origami.fastclick, noopFunc)
2384
2368
  @@||moviesandtv.myvi.in/videojs/videojs-contrib-ads.min.js$script,domain=moviesandtv.myvi.in
2385
2369
  ! getjad-issue sites
2386
2370
  ||imasdk.googleapis.com/js/sdkloader/ima3.js$script,redirect=google-ima.js,domain=dailymotion.com,important
2387
- @@||cdn.lib.getjad.io/library/$script,3p,domain=gry-online.pl|le10sport.com|ozap.com|purepeople.com|vidaextra.com
2388
- @@||cdn.lib.getjad.io/prebid/$script,3p,domain=gry-online.pl|le10sport.com|ozap.com|purepeople.com|vidaextra.com
2389
- @@||securepubads.g.doubleclick.net/tag/js/gpt.js$script,3p,domain=gry-online.pl|le10sport.com|ozap.com|purepeople.com|vidaextra.com
2390
- @@||securepubads.g.doubleclick.net/pagead/managed/js/gpt/*/pubads_impl.js^$script,3p,domain=gry-online.pl|le10sport.com|ozap.com|purepeople.com|vidaextra.com
2391
- @@||amazon-adsystem.com/*/apstag.js$script,3p,redirect-rule,domain=gry-online.pl|le10sport.com|ozap.com|purepeople.com|vidaextra.com
2392
- @@||vidaextra.com^$ghide
2393
- gry-online.pl,le10sport.com,ozap.com,purepeople.com,vidaextra.com##+js(no-fetch-if, /gampad/ads)
2394
- vidaextra.com##.ad:style(height: 0px !important; min-height: 0px !important; padding: 0px !important; margin: 0px !important; visibility: collapse !important;)
2371
+ purepeople.com##+js(trusted-replace-argument, document.querySelector, 0, {"value": ".ad-placement-interstitial"}, condition, .easyAdsBox)
2372
+ gry-online.pl##+js(set, jad, undefined)
2373
+ ozap.com##+js(rpnt, script, WB.defer, 'window.wbads={public:{getDailymotionAdsParamsForScript:function(a,b){b("")},setTargetingOnPosition:function(a,b){return}}};WB.defer', condition, wbads.public.setTargetingOnPosition)
2374
+ vidaextra.com##+js(set, hasAdblocker, true)
2375
+ vidaextra.com##.base-asset-video:remove-class(base-asset-video)
2395
2376
  www.reddit.com,new.reddit.com##.subredditvars-r-ublockorigin [role="dialog"]>div:style(width: auto !important)
2396
2377
  www.reddit.com,sh.reddit.com##community-highlight-card[subreddit-prefixed-name="r/uBlockOrigin"][src]:remove-attr(src)
2397
2378
  @@||static.knowledgehub.com/global/images/ping.gif?$xhr,1p
@@ -2411,7 +2392,7 @@ lumens.com##+js(set, _satellite.track, noopFunc)
2411
2392
  ||inmobi.com^$badfilter
2412
2393
  @@||twinkie.xyz/cdn-cgi/apps/$script,1p
2413
2394
  ! Override EasyList Germany exceptions
2414
- ||imasdk.googleapis.com/js/sdkloader/ima3.js$script,important,redirect=google-ima.js,domain=atv.at|autobild.de|chip.de|computerbild.de|gentside.de|oe24.at|ohmymag.de|phonostar.de|schwaebische.de|spielaffe.de|sport.sky.de|wetteronline.de
2395
+ ||imasdk.googleapis.com/js/sdkloader/ima3.js$script,important,redirect=google-ima.js,domain=atv.at|autobild.de|chip.de|computerbild.de|gentside.de|kibagames.com|oe24.at|ohmymag.de|phonostar.de|schwaebische.de|spielaffe.de|sport.sky.de|wetteronline.de
2415
2396
  ||jsrdn.com^$badfilter
2416
2397
  ! cname https://github.com/uBlockOrigin/uAssets/issues/21297#issuecomment-1848938391
2417
2398
  @@||geo.dailymotion.com^$cname
@@ -2581,7 +2562,6 @@ optimum.net##+js(set, s.tl, noopFunc)
2581
2562
  ! Page issue, but annoying so fixing it here
2582
2563
  emailnator.com##[style^="width: 15px; height: 15px; overflow: scroll; visibility: hidden; color: rgb(calc(var(--x2)"]
2583
2564
  mediaite.com##+js(set-cookie, am-sub, 1)
2584
- @@||track.adtraction.com/*www.gog.com$popup,3p,domain=isthereanydeal.com
2585
2565
  @@||netshoes.com.br/webanalytics/*$xhr,1p
2586
2566
  ||imasdk.googleapis.com/js/sdkloader/ima3.js$script,domain=tabii.com,redirect=google-ima.js
2587
2567
  ||imasdk.googleapis.com/js/sdkloader/ima3_dai.js$script,domain=tabii.com,redirect=noopjs
@@ -2614,14 +2594,13 @@ user.guancha.cn##+js(set, sensors.init, noopFunc)
2614
2594
  ||imasdk.googleapis.com/pal/sdkloader/pal.js^$script,3p,redirect=noopjs,domain=fox5sandiego.com
2615
2595
  ||imasdk.googleapis.com/js/sdkloader/ima3.js$script,3p,redirect=google-ima.js,domain=kraloyun.com
2616
2596
  flygbussarna.se##+js(no-fetch-if, /piwik-)
2617
- @@||www.*/esm/assets/js/analytics/gaAnalytics.js?v=$xhr,1p,strict1p,method=get,domain=com|org
2618
- @@||www.*/esm/assets/js/analytics/chartbeat.js?v=$xhr,1p,strict1p,method=get,domain=com|org
2597
+ @@||www.realclear*/esm/assets/js/analytics/gaAnalytics.js?v=$xhr,1p,strict1p,method=get,domain=com|org
2598
+ @@||www.realclear*/esm/assets/js/analytics/chartbeat.js?v=$xhr,1p,strict1p,method=get,domain=com|org
2619
2599
  ||maps.arcgis.com/apps/instant/lookup/app/utilites/telemetry/appmeasurement.js$1p,redirect=noopjs,important
2620
2600
  jprime.jp##+js(trusted-rpnt, script, var ISMLIB, !function(){const o={apply:(o\,n\,r)=>(new Error).stack.includes("refreshad")?0:Reflect.apply(o\,n\,r)};window.Math.floor=new Proxy(window.Math.floor\,o)}();var ISMLIB)
2621
2601
  @@||js.datadome.co/tags.js$script,domain=account.samsung.com
2622
2602
  @@||fundingchoicesmessages.google.com^$script,domain=hurriyet.com.tr
2623
2603
  @@||googletagmanager.com/gtm.js$script,3p,domain=eu.community.samsung.com
2624
- @@||t.eloqua.com/e/$xhr,domain=fortinet.com
2625
2604
  ||g.doubleclick.net/gampad/ads?env=$xmlhttprequest,domain=wunderground.com,important
2626
2605
  ||pagead2.googlesyndication.com/tag/js/gpt.js$script,domain=wunderground.com,important
2627
2606
  ||pagead2.googlesyndication.com/pagead/managed/js/gpt/*/pubads_impl.js?$script,domain=wunderground.com,important
@@ -2683,12 +2662,56 @@ topgear.com##+js(set, _sp_.config.events.onSPPMObjectReady, noopFunc)
2683
2662
  @@||worldsurfleague.com/js/videojs8/nuevo/plugins/videojs-contrib-ads.min.js^$script,1p
2684
2663
  @@||micro.rubiconproject.com/prebid/dynamic/$script,domain=worldsurfleague.com
2685
2664
  @@||securepubads.g.doubleclick.net/pagead/ima_ppub_config$xhr,domain=worldsurfleague.com
2665
+ !#if env_firefox
2666
+ imasdk.googleapis.com##+js(no-xhr-if, worldsurfleague.com, war:noop-vmap1.0.xml)
2667
+ !#else
2686
2668
  ||pubads.g.doubleclick.net/gampad/ads?*www.worldsurfleague.com$xhr,redirect=noop-vmap1.0.xml:5,domain=imasdk.googleapis.com
2669
+ !#endif
2687
2670
  eservice.directauto.com##+js(set, gtm, {})
2688
2671
  eservice.directauto.com##+js(set, gtm.trackEvent, noopFunc)
2689
2672
  ||imasdk.googleapis.com/js/sdkloader/ima3_debug.js$script,redirect=google-ima.js,domain=mais.sbt.com.br,important
2690
2673
  ||wpfc.ml^$image,redirect=1x1.gif,domain=ht-instruments.de
2691
2674
  ||trycloudflare.com^$badfilter
2692
- @@||track.adtraction.com/*&url=https://www.gog.com/$popup,domain=gamingonlinux.com|rpgcodex.net
2693
- ||track.adtraction.com/*&url=https://www.gog.com/$urlskip=?url
2694
2675
  gazzetta.gr###comment-section:style(display: block !important;)
2676
+ ||mparticle.com/js/v2/*/mparticle.js$script,domain=nbcsports.com,important
2677
+ nbcsports.com##+js(set, mParticle.Identity.getCurrentUser, noopFunc)
2678
+ ||api.omappapi.com/v3/geolocate/json$domain=seclore.com,important
2679
+ seclore.com##+js(trusted-set, _omapp.scripts.geolocation, '{"value": {"status":"loaded","object":null,"data":{"country":{"shortName":"","longName":""},"administrative_area_level_1":{"shortName":"","longName":""},"administrative_area_level_2":{"shortName":"","longName":""},"locality":{"shortName":"","longName":""},"original":{"ip":"","ip_decimal":null,"country":"","country_eu":false,"country_iso":"","city":"","latitude":null,"longitude":null,"user_agent":{"product":"","version":"","comment":"","raw_value":""},"zip_code":"","time_zone":""}},"error":""}}')
2680
+ ||marketing.unionpayintl.com/offer-promote/static/sensorsdata.min.js$script,1p,important
2681
+ unionpayintl.com##+js(set, sensorsDataAnalytic201505, {})
2682
+ unionpayintl.com##+js(set, sensorsDataAnalytic201505.quick, noopFunc)
2683
+ ||qds.it/wp-content/plugins/digistream/digiplayer/js/videojs.ga.js?$script,1p,redirect=noopjs,important
2684
+ ||qds.it^$script,1p,redirect-rule=noopjs
2685
+ standard.co.uk##+js(set, JSGlobals.prebidEnabled, false)
2686
+ standard.co.uk##+js(nano-stb, [native code], 3000, 0.001)
2687
+ standard.co.uk##+js(nano-stb, 'i||(e(),i=!0)', 2500, 0.001)
2688
+ ||imasdk.googleapis.com/js/sdkloader/ima3.js$script,domain=cnnbrasil.com.br,redirect=google-ima.js,important
2689
+ @@||wurfl.io/wurfl.js$script,domain=cram.com
2690
+ ||pruefernavi.de/vendor/elasticsearch/elastic-apm-rum.umd.min.js$1p,important
2691
+ pruefernavi.de##+js(set, elasticApm, {})
2692
+ pruefernavi.de##+js(set, elasticApm.init, noopFunc)
2693
+ /analytics/analytics.js^$1p,script,redirect=noop.js
2694
+ ||assets.fyers.in/Lib/analytics/Analytics.js$1p,important
2695
+ ||lamycosphere.com/cdn/shop/*/assets/pixel.gif$image,1p,redirect=1x1.gif,important
2696
+ !#if !env_mobile
2697
+ steamidfinder.com###nn_bfa_wrapper + .container:style(margin-top: 50px !important;)
2698
+ !#endif
2699
+ steamidfinder.com##.section-advert-banner--top:remove()
2700
+ @@||segmentify.com^$domain=puma.com
2701
+ spotifydown.com#@#.semi-transparent
2702
+ spotifydown.com##.semi-transparent:has(ins.adsbygoogle[data-ad-slot])
2703
+ ||imasdk.googleapis.com/js/sdkloader/ima3.js$script,redirect=google-ima.js,domain=maxpreps.com,important
2704
+ @@||cdn.segment.com/*/analytics.min.js$script,domain=app.pandadoc.com
2705
+ pandadoc.com##+js(rmnt, script, adBlockEnabled)
2706
+ @@||b.cdnst.net/javascript/prebid*.min.js$script,3p,domain=www.speedtest.net
2707
+ 17track.net##+js(set, ga.sendGaEvent, noopFunc)
2708
+ @@||taplytics-umami.grubhub.com/jssdk/$script,1p
2709
+ ! unbreak Email and SMS solutions
2710
+ ||klclick1.com^$badfilter
2711
+ ||klclick1.com^$3p
2712
+ ||wurfl.io/wurfl.js$script,redirect=noopjs,domain=smartcharts.net,important
2713
+ smartcharts.net##+js(set, WURFL, {})
2714
+ /^https?:\/\/.*\.(jpg|jpeg|gif|png|svg|ico|js|txt|css|srt|vtt|webp)/$popup,from=123series.ru|19turanosephantasia.com|1movieshd.cc|4anime.gg|4stream.gg|5movies.fm|720pstream.nu|745mingiestblissfully.com|adblockstrtape.link|animepahe.ru|animesultra.net|asianembed.io|bato.to|batotoo.com|batotwo.com|bigclatterhomesguideservice.com|bormanga.online|bunnycdn.ru|clicknupload.to|cloudvideo.tv|dailyuploads.net|databasegdriveplayer.co|divicast.com|dood.la|dood.pm|dood.sh|dood.so|dood.to|dood.video|dood.watch|dood.ws|dood.yt|doodcdn.com|dopebox.to|dramacool.pk|eplayvid.com|eplayvid.net|europixhd.net|exey.io|extreme-down.plus|files.im|filmestorrents.net|flashx.net|fmovies.app|fmovies.ps|fmovies.world|fraudclatterflyingcar.com|gayforfans.com|gdtot.nl|go-stream.site|gogoanime.run|gogoanimes.to|gomovies.pics|gospeljingle.com|hexupload.net|hindilinks4u.cam|hindilinks4u.nl|housecardsummerbutton.com|kaiju-no8.com|kaisen-jujutsu.com|kimoitv.com|kissanimes.net|leveling-solo.org|lookmoviess.com|magusbridemanga.com|mixdrop.sx|mkvcage.site|mlbstream.me|mlsbd.shop|mlwbd.host|movierulz.cam|movies2watch.ru|movies2watch.tv|moviesrulz.net|mp4upload.com|myflixer.it|myflixer.pw|myflixer.today|myflixertv.to|nflstream.io|ngomik.net|nkiri.com|nswgame.com|olympicstreams.co|paidnaija.com|playemulator.online|primewire.today|prmovies.org|putlocker-website.com|putlocker.digital|racaty.io|racaty.net|record-ragnarok.com|redirect-ads.com|reputationsheriffkennethsand.com|sflix.to|shadowrangers.live|skidrow-games.com|skidrowcodex.net|sockshare.ac|sockshare1.com|solarmovies.movie|speedvideo.net|sportsbay.watch|steampiay.cc|stemplay.cc|streamani.net|streamsb.net|streamsport.icu|streamta.pe|streamtape.cc|streamtape.com|streamtape.net|streamz.ws|strikeout.cc|strikeout.nu|strtape.cloud|strtape.site|strtape.tech|strtapeadblock.me|strtpe.link|tapecontent.net|telerium.net|tinycat-voe-fashion.com|toxitabellaeatrebates306.com|turkish123.com|un-block-voe.net|upbam.org|uploadmaza.com|upmovies.net|upornia.com|uprot.net|upstream.to|upvid.co|v-o-e-unblock.com|vidbam.org|vidembed.cc|vidnext.net|vido.fun|vidsrc.me|vipbox.lc|vipleague.pm|viprow.nu|vipstand.pm|voe-un-block.com|voe-unblock.com|voe.sx|voeun-block.net|voeunbl0ck.com|voeunblck.com|voeunblk.com|voeunblock3.com|vumooo.vip|watchserieshd.tv|watchseriesstream.com|xmovies8.fun|xn--tream2watch-i9d.com|yesmovies.mn|youflix.site|youtube4kdownloader.com|ytanime.tv|yts-subs.com,badfilter
2715
+ @@||static.hentai.direct/hentai/*.jpg$popup,3p,domain=hentai2read.com
2716
+ @@||static.hentaicdn.com/hentai/*.jpg$popup,3p,domain=hentai2read.com
2717
+ forocoches.com#@#[align="center"]:has(div[id^="optidigital-adslot-"])
@@ -28,12 +28,18 @@ body {
28
28
  }
29
29
 
30
30
  #rootContainer {
31
- width: min(100vw, 640px);
31
+ width: min(100%, 640px);
32
32
  }
33
33
  #rootContainer > * {
34
34
  margin: 0 0 var(--default-gap-xxlarge) 0;
35
35
  }
36
+ :root.mobile #rootContainer > * {
37
+ margin-bottom: var(--default-gap-xlarge);
38
+ }
36
39
 
40
+ p {
41
+ margin: 0.5em 0;
42
+ }
37
43
  a {
38
44
  text-decoration: none;
39
45
  }
@@ -45,8 +51,12 @@ a {
45
51
  color: var(--accent-surface-1);
46
52
  fill: var(--accent-surface-1);
47
53
  font-size: 96px;
54
+ line-height: 1;
48
55
  width: 100%;
49
56
  }
57
+ :root.mobile #warningSign {
58
+ font-size: 64px;
59
+ }
50
60
  #theURL {
51
61
  color: var(--ink-2);
52
62
  padding: 0;
@@ -58,6 +68,14 @@ a {
58
68
  position: relative;
59
69
  z-index: 10;
60
70
  }
71
+ #theURL > p > span:first-of-type {
72
+ display: block;
73
+ max-height: 6lh;
74
+ overflow-y: auto;
75
+ }
76
+ :root.mobile #theURL > p > span:first-of-type {
77
+ max-height: 3lh;
78
+ }
61
79
  #theURL #toggleParse {
62
80
  background-color: transparent;
63
81
  top: 100%;
@@ -120,6 +138,15 @@ body[dir="rtl"] #toggleParse {
120
138
  padding-inline-start: var(--default-gap-xsmall);
121
139
  }
122
140
 
141
+ #urlskip a {
142
+ display: block;
143
+ overflow-y: auto;
144
+ word-break: break-all;
145
+ }
146
+ :root.mobile #urlskip a {
147
+ max-height: 3lh;
148
+ }
149
+
123
150
  #actionContainer {
124
151
  display: flex;
125
152
  justify-content: space-between;
@@ -33,6 +33,9 @@
33
33
  </div>
34
34
  </div>
35
35
 
36
+ <div id="urlskip" hidden>
37
+ </div>
38
+
36
39
  <div class="li">
37
40
  <label><span class="input checkbox"><input type="checkbox" id="disableWarning"><svg viewBox="0 0 24 24"><path d="M1.73,12.91 8.1,19.28 22.79,4.59"/></svg></span><span data-i18n="docblockedDontWarn">_</span></label>
38
41
  </div>
@@ -42,13 +45,12 @@
42
45
  <button id="bye" data-i18n="docblockedClose" type="button">_<span class="hover"></span></button>
43
46
  <button id="proceed" class="preferred" data-i18n="docblockedDisable" type="button"><span class="hover"></span></button>
44
47
  </div>
45
-
46
- <div id="templates" style="display: none;">
47
- <li class="filterList">
48
- <a class="filterListSource" href="asset-viewer.html?url=" target="_blank"></a>&nbsp;<!--
49
- --><a class="fa-icon filterListSupport hidden" href="#" target="_blank" rel="noopener noreferrer">home</a>
50
- </span>
51
- </div>
48
+ </div>
49
+ <div id="templates" style="display: none;">
50
+ <li class="filterList">
51
+ <a class="filterListSource" href="asset-viewer.html?url=" target="_blank"></a>&nbsp;<!--
52
+ --><a class="fa-icon filterListSupport hidden" href="#" target="_blank" rel="noopener noreferrer">home</a>
53
+ </span>
52
54
  </div>
53
55
 
54
56
  <script src="lib/hsluv/hsluv-0.1.0.min.js"></script>
@@ -19,18 +19,15 @@
19
19
  Home: https://github.com/gorhill/uBlock
20
20
  */
21
21
 
22
- 'use strict';
23
-
24
- /******************************************************************************/
22
+ import * as sfp from './static-filtering-parser.js';
25
23
 
26
- import µb from './background.js';
27
24
  import { broadcast } from './broadcast.js';
28
25
  import cacheStorage from './cachestorage.js';
29
- import { ubolog } from './console.js';
30
26
  import { i18n$ } from './i18n.js';
31
27
  import logger from './logger.js';
32
- import * as sfp from './static-filtering-parser.js';
33
- import { orphanizeString, } from './text-utils.js';
28
+ import { orphanizeString } from './text-utils.js';
29
+ import { ubolog } from './console.js';
30
+ import µb from './background.js';
34
31
 
35
32
  /******************************************************************************/
36
33
 
@@ -50,6 +47,9 @@ let remoteServerFriendly = false;
50
47
 
51
48
  /******************************************************************************/
52
49
 
50
+ const hasOwnProperty = (o, p) =>
51
+ Object.prototype.hasOwnProperty.call(o, p);
52
+
53
53
  const stringIsNotEmpty = s => typeof s === 'string' && s !== '';
54
54
 
55
55
  const parseExpires = s => {
@@ -107,8 +107,8 @@ const resourceTimeFromXhr = xhr => {
107
107
 
108
108
  const resourceTimeFromParts = (parts, time) => {
109
109
  const goodParts = parts.filter(part => typeof part === 'object');
110
- return goodParts.reduce((acc, part) =>
111
- ((part.resourceTime || 0) > acc ? part.resourceTime : acc),
110
+ return goodParts.reduce(
111
+ (acc, part) => ((part.resourceTime || 0) > acc ? part.resourceTime : acc),
112
112
  time
113
113
  );
114
114
  };
@@ -246,6 +246,7 @@ const fireNotification = function(topic, details) {
246
246
  assets.fetch = function(url, options = {}) {
247
247
  return new Promise((resolve, reject) => {
248
248
  // Start of executor
249
+ /* eslint-disable indent */
249
250
 
250
251
  const timeoutAfter = µb.hiddenSettings.assetFetchTimeout || 30;
251
252
  const xhr = new XMLHttpRequest();
@@ -322,6 +323,7 @@ assets.fetch = function(url, options = {}) {
322
323
  onErrorEvent.call(xhr);
323
324
  }
324
325
 
326
+ /* eslint-enable indent */
325
327
  // End of executor
326
328
  });
327
329
  };
@@ -733,7 +735,7 @@ async function assetCacheRead(assetKey, updateReadTime = false) {
733
735
  }
734
736
 
735
737
  if ( bin instanceof Object === false ) { return reportBack(''); }
736
- if ( bin.hasOwnProperty(internalKey) === false ) { return reportBack(''); }
738
+ if ( hasOwnProperty(bin, internalKey) === false ) { return reportBack(''); }
737
739
 
738
740
  const entry = assetCacheRegistry[assetKey];
739
741
  if ( entry === undefined ) { return reportBack(''); }
@@ -1277,7 +1279,9 @@ async function diffUpdater() {
1277
1279
  if ( data.status === 'needtext' ) {
1278
1280
  ubolog('Diff updater: need text for', data.assetKey);
1279
1281
  assetCacheRead(data.assetKey).then(result => {
1280
- data.text = result.content;
1282
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1929326#c9
1283
+ // Must never be set to undefined!
1284
+ data.text = result.content || '';
1281
1285
  data.status = undefined;
1282
1286
  checkAndCorrectDiffPath(data);
1283
1287
  bc.postMessage(data);
@@ -166,11 +166,11 @@ export async function benchmarkStaticNetFiltering(options = {}) {
166
166
  let allowCount = 0;
167
167
  let redirectCount = 0;
168
168
  let removeparamCount = 0;
169
+ let urlskipCount = 0;
169
170
  let cspCount = 0;
170
171
  let permissionsCount = 0;
171
172
  let replaceCount = 0;
172
- for ( let i = 0; i < requests.length; i++ ) {
173
- const request = requests[i];
173
+ for ( const request of requests ) {
174
174
  fctxt.setURL(request.url);
175
175
  if ( fctxt.getIPAddress() === '' ) {
176
176
  fctxt.setIPAddress('93.184.215.14\n2606:2800:21f:cb07:6820:80da:af6b:8b2c');
@@ -186,12 +186,15 @@ export async function benchmarkStaticNetFiltering(options = {}) {
186
186
  if ( sfne.transformRequest(fctxt) ) {
187
187
  redirectCount += 1;
188
188
  }
189
- if ( fctxt.redirectURL !== undefined && sfne.hasQuery(fctxt) ) {
190
- if ( sfne.filterQuery(fctxt, 'removeparam') ) {
189
+ if ( sfne.hasQuery(fctxt) ) {
190
+ if ( sfne.filterQuery(fctxt) ) {
191
191
  removeparamCount += 1;
192
192
  }
193
193
  }
194
- if ( fctxt.type === 'main_frame' || fctxt.type === 'sub_frame' ) {
194
+ if ( sfne.urlSkip(fctxt, false) ) {
195
+ urlskipCount += 1;
196
+ }
197
+ if ( fctxt.isDocument() ) {
195
198
  if ( sfne.matchAndFetchModifiers(fctxt, 'csp') ) {
196
199
  cspCount += 1;
197
200
  }
@@ -207,9 +210,9 @@ export async function benchmarkStaticNetFiltering(options = {}) {
207
210
  if ( sfne.redirectRequest(redirectEngine, fctxt) ) {
208
211
  redirectCount += 1;
209
212
  }
210
- }
211
- if ( fctxt.type === 'main_frame' ) {
212
- sfne.matchAndFetchModifiers(fctxt, 'urlskip');
213
+ if ( fctxt.isRootDocument() && sfne.urlSkip(fctxt, true) ) {
214
+ urlskipCount += 1;
215
+ }
213
216
  }
214
217
  }
215
218
  const t1 = performance.now();
@@ -217,13 +220,14 @@ export async function benchmarkStaticNetFiltering(options = {}) {
217
220
 
218
221
  const output = [
219
222
  'Benchmarked static network filtering engine:',
220
- `\tEvaluated ${matchCount} match calls in ${dur.toFixed(0)} ms`,
223
+ `\tEvaluated ${matchCount} requests in ${dur.toFixed(0)} ms`,
221
224
  `\tAverage: ${(dur / matchCount).toFixed(3)} ms per request`,
222
225
  `\tNot blocked: ${matchCount - blockCount - allowCount}`,
223
226
  `\tBlocked: ${blockCount}`,
224
227
  `\tUnblocked: ${allowCount}`,
225
228
  `\tredirect=: ${redirectCount}`,
226
229
  `\tremoveparam=: ${removeparamCount}`,
230
+ `\turlskip=: ${urlskipCount}`,
227
231
  `\tcsp=: ${cspCount}`,
228
232
  `\tpermissions=: ${permissionsCount}`,
229
233
  `\treplace=: ${replaceCount}`,
@@ -587,7 +587,7 @@ class BidiTrieContainer {
587
587
  }
588
588
 
589
589
  fromSelfie(selfie) {
590
- if ( selfie instanceof Object === false ) { return false; }
590
+ if ( typeof selfie !== 'object' || selfie === null ) { return false; }
591
591
  if ( selfie.buf32 instanceof Uint32Array === false ) { return false; }
592
592
  if ( selfie.checksum !== i32Checksum(selfie.buf32) ) { return false; }
593
593
  const byteLength = selfie.buf32.length << 2;
@@ -19,10 +19,8 @@
19
19
  Home: https://github.com/gorhill/uBlock
20
20
  */
21
21
 
22
- 'use strict';
23
-
24
- import { i18n, i18n$ } from './i18n.js';
25
22
  import { dom, qs$ } from './dom.js';
23
+ import { i18n, i18n$ } from './i18n.js';
26
24
 
27
25
  /******************************************************************************/
28
26
 
@@ -47,7 +45,7 @@ let details = {};
47
45
 
48
46
  let lists;
49
47
  for ( const rawFilter in response ) {
50
- if ( response.hasOwnProperty(rawFilter) ) {
48
+ if ( Object.prototype.hasOwnProperty.call(response, rawFilter) ) {
51
49
  lists = response[rawFilter];
52
50
  break;
53
51
  }
@@ -77,9 +75,47 @@ let details = {};
77
75
 
78
76
  /******************************************************************************/
79
77
 
80
- dom.text('#theURL > p > span:first-of-type', details.url);
78
+ const urlToFragment = raw => {
79
+ try {
80
+ const fragment = new DocumentFragment();
81
+ const url = new URL(raw);
82
+ const hn = url.hostname;
83
+ const i = raw.indexOf(hn);
84
+ const b = document.createElement('b');
85
+ b.append(hn);
86
+ fragment.append(raw.slice(0,i), b, raw.slice(i+hn.length));
87
+ return fragment;
88
+ } catch(_) {
89
+ }
90
+ return raw;
91
+ };
92
+
93
+ /******************************************************************************/
94
+
95
+ dom.clear('#theURL > p > span:first-of-type');
96
+ qs$('#theURL > p > span:first-of-type').append(urlToFragment(details.url));
81
97
  dom.text('#why', details.fs);
82
98
 
99
+ if ( typeof details.to === 'string' && details.to.length !== 0 ) {
100
+ const fragment = new DocumentFragment();
101
+ const text = i18n$('docblockedRedirectPrompt');
102
+ const linkPlaceholder = '{{url}}';
103
+ let pos = text.indexOf(linkPlaceholder);
104
+ if ( pos !== -1 ) {
105
+ const link = document.createElement('a');
106
+ link.href = details.to;
107
+ dom.cl.add(link, 'code');
108
+ link.append(urlToFragment(details.to));
109
+ fragment.append(
110
+ text.slice(0, pos),
111
+ link,
112
+ text.slice(pos + linkPlaceholder.length)
113
+ );
114
+ qs$('#urlskip').append(fragment);
115
+ dom.attr('#urlskip', 'hidden', null);
116
+ }
117
+ }
118
+
83
119
  /******************************************************************************/
84
120
 
85
121
  // https://github.com/gorhill/uBlock/issues/691
@@ -457,7 +457,7 @@ class HNTrieContainer {
457
457
  }
458
458
 
459
459
  fromSelfie(selfie) {
460
- if ( selfie instanceof Object === false ) { return false; }
460
+ if ( typeof selfie !== 'object' || selfie === null ) { return false; }
461
461
  if ( selfie.buf32 instanceof Uint32Array === false ) { return false; }
462
462
  if ( selfie.checksum !== i32Checksum(selfie.buf32) ) { return false; }
463
463
  this.needle = '';