@browserless.io/browserless 2.34.0 → 2.36.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 (451) hide show
  1. package/CHANGELOG.md +28 -1
  2. package/build/limiter.js +1 -1
  3. package/build/routes/chrome/http/content.post.body.json +90 -1
  4. package/build/routes/chrome/http/pdf.post.body.json +90 -1
  5. package/build/routes/chrome/http/scrape.post.body.json +90 -1
  6. package/build/routes/chrome/http/scrape.post.response.json +21 -22
  7. package/build/routes/chrome/http/screenshot.post.body.json +90 -1
  8. package/build/routes/chromium/http/content.post.body.json +90 -1
  9. package/build/routes/chromium/http/pdf.post.body.json +90 -1
  10. package/build/routes/chromium/http/scrape.post.body.json +90 -1
  11. package/build/routes/chromium/http/scrape.post.response.json +21 -22
  12. package/build/routes/chromium/http/screenshot.post.body.json +90 -1
  13. package/build/routes/chromium/tests/scrape.spec.js +41 -0
  14. package/build/routes/edge/http/content.post.body.json +90 -1
  15. package/build/routes/edge/http/pdf.post.body.json +90 -1
  16. package/build/routes/edge/http/scrape.post.body.json +90 -1
  17. package/build/routes/edge/http/scrape.post.response.json +21 -22
  18. package/build/routes/edge/http/screenshot.post.body.json +90 -1
  19. package/build/sdk-utils.js +1 -1
  20. package/build/shared/scrape.http.js +13 -3
  21. package/docker/base/Dockerfile +8 -8
  22. package/docker/chrome/Dockerfile +2 -2
  23. package/docker/chromium/Dockerfile +2 -2
  24. package/docker/edge/Dockerfile +2 -2
  25. package/docker/firefox/Dockerfile +2 -2
  26. package/docker/multi/Dockerfile +2 -2
  27. package/docker/sdk/Dockerfile +1 -1
  28. package/docker/webkit/Dockerfile +2 -2
  29. package/extensions/ublocklite/README.md +1 -1
  30. package/extensions/ublocklite/_locales/br_FR/messages.json +1 -1
  31. package/extensions/ublocklite/_locales/bs/messages.json +58 -58
  32. package/extensions/ublocklite/_locales/he/messages.json +2 -2
  33. package/extensions/ublocklite/_locales/hu/messages.json +1 -1
  34. package/extensions/ublocklite/_locales/pt_BR/messages.json +1 -1
  35. package/extensions/ublocklite/_locales/pt_PT/messages.json +1 -1
  36. package/extensions/ublocklite/_locales/ro/messages.json +1 -1
  37. package/extensions/ublocklite/_locales/sk/messages.json +6 -6
  38. package/extensions/ublocklite/_locales/sq/messages.json +17 -17
  39. package/extensions/ublocklite/_locales/sr/messages.json +28 -28
  40. package/extensions/ublocklite/_locales/th/messages.json +1 -1
  41. package/extensions/ublocklite/_locales/tr/messages.json +1 -1
  42. package/extensions/ublocklite/_locales/vi/messages.json +1 -1
  43. package/extensions/ublocklite/css/common.css +5 -3
  44. package/extensions/ublocklite/css/default.css +10 -0
  45. package/extensions/ublocklite/css/unpicker-ui.css +1 -0
  46. package/extensions/ublocklite/js/background.js +5 -3
  47. package/extensions/ublocklite/js/dnr-parser.js +1 -1
  48. package/extensions/ublocklite/js/fetch.js +1 -1
  49. package/extensions/ublocklite/js/filter-lists.js +1 -4
  50. package/extensions/ublocklite/js/filter-manager.js +45 -9
  51. package/extensions/ublocklite/js/popup.js +2 -2
  52. package/extensions/ublocklite/js/ruleset-manager.js +10 -126
  53. package/extensions/ublocklite/js/rw-dnr-editor.js +8 -4
  54. package/extensions/ublocklite/js/scripting/css-procedural.js +2 -0
  55. package/extensions/ublocklite/js/scripting/css-specific.js +2 -0
  56. package/extensions/ublocklite/js/scripting/tool-overlay.js +1 -0
  57. package/extensions/ublocklite/js/scripting-manager.js +2 -2
  58. package/extensions/ublocklite/js/settings.js +2 -1
  59. package/extensions/ublocklite/js/static-filtering-parser.js +25 -18
  60. package/extensions/ublocklite/js/ubo-parser.js +181 -65
  61. package/extensions/ublocklite/manifest.json +4 -4
  62. package/extensions/ublocklite/rulesets/generic-details.json +7 -17
  63. package/extensions/ublocklite/rulesets/main/adguard-mobile.json +25 -4
  64. package/extensions/ublocklite/rulesets/main/adguard-spyware-url.json +615 -1
  65. package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +21 -8
  66. package/extensions/ublocklite/rulesets/main/annoyances-others.json +5 -2
  67. package/extensions/ublocklite/rulesets/main/annoyances-overlays.json +22 -2
  68. package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +1 -1
  69. package/extensions/ublocklite/rulesets/main/chn-0.json +98 -29
  70. package/extensions/ublocklite/rulesets/main/cze-0.json +6 -1
  71. package/extensions/ublocklite/rulesets/main/deu-0.json +15 -11
  72. package/extensions/ublocklite/rulesets/main/dpollock-0.json +4 -0
  73. package/extensions/ublocklite/rulesets/main/easylist.json +146 -98
  74. package/extensions/ublocklite/rulesets/main/easyprivacy.json +149 -32
  75. package/extensions/ublocklite/rulesets/main/est-0.json +1 -1
  76. package/extensions/ublocklite/rulesets/main/fin-0.json +9 -0
  77. package/extensions/ublocklite/rulesets/main/fra-0.json +49 -9
  78. package/extensions/ublocklite/rulesets/main/hun-0.json +4 -1
  79. package/extensions/ublocklite/rulesets/main/idn-0.json +1 -1
  80. package/extensions/ublocklite/rulesets/main/ind-0.json +101 -155
  81. package/extensions/ublocklite/rulesets/main/irn-0.json +34 -11
  82. package/extensions/ublocklite/rulesets/main/isr-0.json +20 -2
  83. package/extensions/ublocklite/rulesets/main/ita-0.json +3 -1
  84. package/extensions/ublocklite/rulesets/main/jpn-1.json +69 -22
  85. package/extensions/ublocklite/rulesets/main/kor-1.json +39 -5
  86. package/extensions/ublocklite/rulesets/main/ltu-0.json +3 -1
  87. package/extensions/ublocklite/rulesets/main/lva-0.json +2 -1
  88. package/extensions/ublocklite/rulesets/main/nld-0.json +6 -1
  89. package/extensions/ublocklite/rulesets/main/nor-0.json +13 -4
  90. package/extensions/ublocklite/rulesets/main/pgl.json +8 -11
  91. package/extensions/ublocklite/rulesets/main/pol-0.json +13 -2
  92. package/extensions/ublocklite/rulesets/main/rou-1.json +17 -1
  93. package/extensions/ublocklite/rulesets/main/rus-0.json +104 -27
  94. package/extensions/ublocklite/rulesets/main/rus-1.json +114 -4
  95. package/extensions/ublocklite/rulesets/main/spa-1.json +43 -15
  96. package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +15832 -9032
  97. package/extensions/ublocklite/rulesets/main/swe-1.json +89 -52
  98. package/extensions/ublocklite/rulesets/main/tha-0.json +7 -1
  99. package/extensions/ublocklite/rulesets/main/tur-0.json +54 -6
  100. package/extensions/ublocklite/rulesets/main/ublock-badware.json +79 -106
  101. package/extensions/ublocklite/rulesets/main/ublock-filters.json +794 -111
  102. package/extensions/ublocklite/rulesets/main/ubol-tests.json +60 -0
  103. package/extensions/ublocklite/rulesets/main/ukr-0.json +20 -1
  104. package/extensions/ublocklite/rulesets/main/urlhaus-full.json +631 -676
  105. package/extensions/ublocklite/rulesets/main/vie-1.json +74 -59
  106. package/extensions/ublocklite/rulesets/regex/chn-0.json +8 -3
  107. package/extensions/ublocklite/rulesets/regex/deu-0.json +0 -1
  108. package/extensions/ublocklite/rulesets/regex/easylist.json +0 -2
  109. package/extensions/ublocklite/rulesets/regex/jpn-1.json +1 -1
  110. package/extensions/ublocklite/rulesets/regex/kor-1.json +1 -0
  111. package/extensions/ublocklite/rulesets/regex/pol-0.json +1 -0
  112. package/extensions/ublocklite/rulesets/regex/rus-0.json +1 -0
  113. package/extensions/ublocklite/rulesets/regex/rus-1.json +24 -0
  114. package/extensions/ublocklite/rulesets/regex/tur-0.json +2 -1
  115. package/extensions/ublocklite/rulesets/regex/ublock-badware.json +10 -8
  116. package/extensions/ublocklite/rulesets/regex/ublock-filters.json +28 -12
  117. package/extensions/ublocklite/rulesets/ruleset-details.json +252 -472
  118. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +3 -3
  119. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-notifications.js +1 -1
  120. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-overlays.js +1 -1
  121. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +1 -1
  122. package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +3 -3
  123. package/extensions/ublocklite/rulesets/scripting/generic/deu-0.js +2 -2
  124. package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +3 -3
  125. package/extensions/ublocklite/rulesets/scripting/generic/fra-0.js +1 -1
  126. package/extensions/ublocklite/rulesets/scripting/generic/idn-0.js +1 -1
  127. package/extensions/ublocklite/rulesets/scripting/generic/jpn-1.js +3 -3
  128. package/extensions/ublocklite/rulesets/scripting/generic/nld-0.js +1 -1
  129. package/extensions/ublocklite/rulesets/scripting/generic/nor-0.js +1 -1
  130. package/extensions/ublocklite/rulesets/scripting/generic/spa-1.js +3 -3
  131. package/extensions/ublocklite/rulesets/scripting/generic/swe-1.js +1 -1
  132. package/extensions/ublocklite/rulesets/scripting/generic/tur-0.js +3 -3
  133. package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +3 -3
  134. package/extensions/ublocklite/rulesets/scripting/generic/ukr-0.js +1 -1
  135. package/extensions/ublocklite/rulesets/scripting/generic/vie-1.js +2 -2
  136. package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +2 -9
  137. package/extensions/ublocklite/rulesets/scripting/generichigh/easylist.css +2 -13
  138. package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +4 -0
  139. package/extensions/ublocklite/rulesets/scripting/generichigh/rus-0.css +1 -0
  140. package/extensions/ublocklite/rulesets/scripting/generichigh/ublock-filters.css +0 -2
  141. package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +3 -3
  142. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +3 -3
  143. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-notifications.js +3 -3
  144. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-others.js +3 -3
  145. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-overlays.js +3 -3
  146. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-social.js +3 -3
  147. package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +3 -3
  148. package/extensions/ublocklite/rulesets/scripting/procedural/deu-0.js +3 -3
  149. package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
  150. package/extensions/ublocklite/rulesets/scripting/procedural/fra-0.js +3 -3
  151. package/extensions/ublocklite/rulesets/scripting/procedural/idn-0.js +3 -3
  152. package/extensions/ublocklite/rulesets/scripting/procedural/irn-0.js +3 -3
  153. package/extensions/ublocklite/rulesets/scripting/procedural/jpn-1.js +3 -3
  154. package/extensions/ublocklite/rulesets/scripting/procedural/kor-1.js +3 -3
  155. package/extensions/ublocklite/rulesets/scripting/procedural/nld-0.js +3 -3
  156. package/extensions/ublocklite/rulesets/scripting/procedural/rou-1.js +3 -3
  157. package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
  158. package/extensions/ublocklite/rulesets/scripting/procedural/rus-1.js +3 -3
  159. package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +3 -3
  160. package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
  161. package/extensions/ublocklite/rulesets/scripting/procedural/tur-0.js +3 -3
  162. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
  163. package/extensions/ublocklite/rulesets/scripting/procedural/vie-1.js +2 -2
  164. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.abort-on-property-read.js +2 -2
  165. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-constant.js +2 -2
  166. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-cookie-reload.js +1 -1
  167. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-cookie.js +2 -2
  168. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.trusted-replace-node-text.js +450 -0
  169. package/extensions/ublocklite/rulesets/scripting/scriptlet/{jpn-1.abort-on-property-write.js → adguard-mobile.trusted-set-attr.js} +107 -41
  170. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.prevent-requestAnimationFrame.js +407 -0
  171. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.remove-node-text.js +1 -1
  172. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
  173. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +2 -2
  174. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +2 -2
  175. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-replace-node-text.js +2 -2
  176. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +2 -2
  177. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-local-storage-item.js +2 -2
  178. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.addEventListener-defuser.js +1 -1
  179. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-current-script.js +1 -1
  180. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-on-stack-trace.js +2 -2
  181. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +2 -2
  182. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-fetch.js +9 -2
  183. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setInterval.js +2 -2
  184. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setTimeout.js +2 -2
  185. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-xhr.js +2 -2
  186. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-cookie.js +2 -2
  187. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +2 -2
  188. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-cookie.js +2 -2
  189. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-click-element.js +1 -1
  190. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-replace-outbound-text.js +427 -0
  191. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.abort-current-script.js +2 -2
  192. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.addEventListener-defuser.js +2 -2
  193. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.adjust-setTimeout.js +2 -2
  194. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.json-prune.js +1 -1
  195. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +9 -2
  196. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +2 -2
  197. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-window-open.js +1 -1
  198. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.set-constant.js +2 -2
  199. package/extensions/ublocklite/rulesets/scripting/scriptlet/{vie-1.m3u-prune.js → chn-0.spoof-css.js} +109 -148
  200. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.abort-current-script.js +1 -1
  201. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.prevent-fetch.js +7 -0
  202. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.set-constant.js +1 -1
  203. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.addEventListener-defuser.js +2 -2
  204. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.adjust-setTimeout.js +2 -2
  205. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-fetch.js +7 -0
  206. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setTimeout.js +2 -2
  207. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.set-constant.js +1 -1
  208. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.set-local-storage-item.js +2 -2
  209. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-fetch.js +7 -0
  210. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-current-script.js +2 -2
  211. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-fetch.js +7 -0
  212. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-window-open.js +1 -1
  213. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.remove-node-text.js +2 -2
  214. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-constant.js +2 -2
  215. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-session-storage-item.js +2 -2
  216. package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-fetch.js +7 -0
  217. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.abort-current-script.js +2 -2
  218. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.json-prune.js +2 -2
  219. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-fetch.js +7 -0
  220. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.remove-attr.js +1 -1
  221. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.set-cookie.js +442 -0
  222. package/extensions/ublocklite/rulesets/scripting/scriptlet/{ublock-filters.evaldata-prune.js → kor-1.json-prune-xhr-response.js} +227 -198
  223. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.json-prune.js +2 -2
  224. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-fetch.js +7 -0
  225. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setTimeout.js +2 -2
  226. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-constant.js +2 -2
  227. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-fetch.js +7 -0
  228. package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.prevent-fetch.js +7 -0
  229. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.abort-current-script.js +2 -2
  230. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.remove-node-text.js +1 -1
  231. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-read.js +2 -2
  232. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-write.js +2 -2
  233. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +3 -3
  234. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-fetch.js +10 -3
  235. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-setTimeout.js +2 -2
  236. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-xhr.js +1 -1
  237. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-cookie.js +3 -3
  238. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-node-text.js +3 -3
  239. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-attr.js +2 -2
  240. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
  241. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-local-storage-item.js +2 -2
  242. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.abort-on-property-read.js +3 -3
  243. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.addEventListener-defuser.js +1 -1
  244. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.json-prune.js +2 -2
  245. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-fetch.js +7 -0
  246. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.remove-cookie.js +4 -4
  247. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.set-constant.js +3 -3
  248. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-current-script.js +2 -2
  249. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-read.js +2 -2
  250. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +2 -2
  251. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.adjust-setInterval.js +1 -1
  252. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.json-prune.js +2 -2
  253. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.noeval-if.js +1 -1
  254. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +9 -2
  255. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-requestAnimationFrame.js +2 -2
  256. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setTimeout.js +2 -2
  257. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +1 -1
  258. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-constant.js +2 -2
  259. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.addEventListener-defuser.js +2 -2
  260. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.href-sanitizer.js +2 -2
  261. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-setTimeout.js +2 -2
  262. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-read.js +2 -2
  263. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-write.js +1 -1
  264. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.addEventListener-defuser.js +2 -2
  265. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.adjust-setInterval.js +2 -2
  266. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-fetch.js +7 -0
  267. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-setTimeout.js +2 -2
  268. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +1 -1
  269. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-attr.js +2 -2
  270. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-node-text.js +2 -2
  271. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +2 -2
  272. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-cookie.js +2 -2
  273. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.addEventListener-defuser.js +498 -0
  274. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-replace-node-text.js +450 -0
  275. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +3 -3
  276. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +3 -3
  277. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-write.js +2 -2
  278. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +3 -3
  279. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +3 -3
  280. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +3 -3
  281. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.js +3 -3
  282. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.disable-newtab-links.js +1 -1
  283. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.href-sanitizer.js +2 -2
  284. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit-fetch-response.js +927 -0
  285. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit-xhr-response.js +851 -0
  286. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-fetch-response.js +2 -2
  287. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-xhr-response.js +3 -3
  288. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune.js +3 -3
  289. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.m3u-prune.js +2 -2
  290. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +3 -3
  291. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.nowebrtc.js +2 -2
  292. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +10 -3
  293. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +2 -2
  294. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +2 -2
  295. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +3 -3
  296. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +3 -3
  297. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +3 -3
  298. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-attr.js +2 -2
  299. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-cookie.js +2 -2
  300. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +2 -2
  301. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-attr.js +2 -2
  302. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
  303. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-cookie.js +2 -2
  304. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-local-storage-item.js +2 -2
  305. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.spoof-css.js +2 -2
  306. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-click-element.js +1 -1
  307. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-create-html.js +2 -2
  308. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-override-element-method.js +1 -1
  309. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-fetch.js +7 -0
  310. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-xhr.js +1 -1
  311. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +2 -2
  312. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +3 -3
  313. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +2 -2
  314. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-xhr-response.js +1 -1
  315. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-constant.js +2 -2
  316. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-cookie.js +3 -3
  317. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-local-storage-item.js +2 -2
  318. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +1 -1
  319. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.xml-prune.js +2 -2
  320. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.prevent-fetch.js +7 -0
  321. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +2 -2
  322. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +2 -2
  323. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.json-prune.js +1 -1
  324. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-fetch.js +7 -0
  325. package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
  326. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
  327. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-notifications.js +3 -3
  328. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +3 -3
  329. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
  330. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
  331. package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
  332. package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
  333. package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
  334. package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
  335. package/extensions/ublocklite/rulesets/scripting/specific/fra-0.js +3 -3
  336. package/extensions/ublocklite/rulesets/scripting/specific/hun-0.js +3 -3
  337. package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
  338. package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
  339. package/extensions/ublocklite/rulesets/scripting/specific/irn-0.js +3 -3
  340. package/extensions/ublocklite/rulesets/scripting/specific/isr-0.js +3 -3
  341. package/extensions/ublocklite/rulesets/scripting/specific/ita-0.js +3 -3
  342. package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
  343. package/extensions/ublocklite/rulesets/scripting/specific/kor-1.js +3 -3
  344. package/extensions/ublocklite/rulesets/scripting/specific/nld-0.js +3 -3
  345. package/extensions/ublocklite/rulesets/scripting/specific/nor-0.js +3 -3
  346. package/extensions/ublocklite/rulesets/scripting/specific/pol-0.js +3 -3
  347. package/extensions/ublocklite/rulesets/scripting/specific/rou-1.js +3 -3
  348. package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
  349. package/extensions/ublocklite/rulesets/scripting/specific/rus-1.js +3 -3
  350. package/extensions/ublocklite/rulesets/scripting/specific/spa-1.js +3 -3
  351. package/extensions/ublocklite/rulesets/scripting/specific/swe-1.js +3 -3
  352. package/extensions/ublocklite/rulesets/scripting/specific/tha-0.js +3 -3
  353. package/extensions/ublocklite/rulesets/scripting/specific/tur-0.js +3 -3
  354. package/extensions/ublocklite/rulesets/scripting/specific/ublock-filters.js +3 -3
  355. package/extensions/ublocklite/rulesets/scripting/specific/ukr-0.js +3 -3
  356. package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
  357. package/extensions/ublocklite/rulesets/scriptlet-details.json +301 -173
  358. package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +11 -1
  359. package/extensions/ublocklite/rulesets/strictblock/annoyances-cookies.json +1 -0
  360. package/extensions/ublocklite/rulesets/strictblock/chn-0.json +398 -791
  361. package/extensions/ublocklite/rulesets/strictblock/dpollock-0.json +4 -0
  362. package/extensions/ublocklite/rulesets/strictblock/easylist.json +1 -1
  363. package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +76 -74
  364. package/extensions/ublocklite/rulesets/strictblock/fra-0.json +429 -49
  365. package/extensions/ublocklite/rulesets/strictblock/irn-0.json +2 -0
  366. package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +185 -176
  367. package/extensions/ublocklite/rulesets/strictblock/kor-1.json +6 -1
  368. package/extensions/ublocklite/rulesets/strictblock/nor-0.json +1 -1
  369. package/extensions/ublocklite/rulesets/strictblock/pgl.json +8 -11
  370. package/extensions/ublocklite/rulesets/strictblock/pol-0.json +2 -0
  371. package/extensions/ublocklite/rulesets/strictblock/rus-1.json +1 -0
  372. package/extensions/ublocklite/rulesets/strictblock/spa-1.json +1 -2
  373. package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +15832 -9032
  374. package/extensions/ublocklite/rulesets/strictblock/swe-1.json +2 -0
  375. package/extensions/ublocklite/rulesets/strictblock/tur-0.json +4 -0
  376. package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +636 -631
  377. package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +3 -2
  378. package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +631 -676
  379. package/extensions/ublocklite/rulesets/strictblock/vie-1.json +7 -8
  380. package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +30 -0
  381. package/extensions/ublocklite/ublock.zip +0 -0
  382. package/package.json +23 -21
  383. package/scripts/build-open-api.js +15 -1
  384. package/scripts/install-adblock.js +25 -4
  385. package/scripts/start.sh +1 -1
  386. package/scripts/test.sh +2 -2
  387. package/src/limiter.ts +1 -1
  388. package/src/routes/chromium/tests/scrape.spec.ts +48 -0
  389. package/src/sdk-utils.ts +1 -1
  390. package/src/shared/scrape.http.ts +17 -5
  391. package/static/docs/swagger.json +330 -102
  392. package/static/docs/swagger.min.json +329 -101
  393. package/static/function/client.js +273 -171
  394. package/static/function/index.html +273 -171
  395. package/extensions/ublocklite/rulesets/modify-headers/annoyances-overlays.json +0 -108
  396. package/extensions/ublocklite/rulesets/modify-headers/chn-0.json +0 -316
  397. package/extensions/ublocklite/rulesets/modify-headers/cze-0.json +0 -25
  398. package/extensions/ublocklite/rulesets/modify-headers/deu-0.json +0 -24
  399. package/extensions/ublocklite/rulesets/modify-headers/easylist.json +0 -14
  400. package/extensions/ublocklite/rulesets/modify-headers/easyprivacy.json +0 -48
  401. package/extensions/ublocklite/rulesets/modify-headers/fra-0.json +0 -215
  402. package/extensions/ublocklite/rulesets/modify-headers/irn-0.json +0 -45
  403. package/extensions/ublocklite/rulesets/modify-headers/isr-0.json +0 -50
  404. package/extensions/ublocklite/rulesets/modify-headers/rus-0.json +0 -41
  405. package/extensions/ublocklite/rulesets/modify-headers/rus-1.json +0 -22
  406. package/extensions/ublocklite/rulesets/modify-headers/swe-1.json +0 -46
  407. package/extensions/ublocklite/rulesets/modify-headers/ublock-filters.json +0 -53
  408. package/extensions/ublocklite/rulesets/modify-headers/ubol-tests.json +0 -25
  409. package/extensions/ublocklite/rulesets/modify-headers/vie-1.json +0 -162
  410. package/extensions/ublocklite/rulesets/redirect/adguard-mobile.json +0 -20
  411. package/extensions/ublocklite/rulesets/redirect/annoyances-overlays.json +0 -15
  412. package/extensions/ublocklite/rulesets/redirect/chn-0.json +0 -40
  413. package/extensions/ublocklite/rulesets/redirect/cze-0.json +0 -76
  414. package/extensions/ublocklite/rulesets/redirect/deu-0.json +0 -79
  415. package/extensions/ublocklite/rulesets/redirect/easylist.json +0 -103
  416. package/extensions/ublocklite/rulesets/redirect/easyprivacy.json +0 -137
  417. package/extensions/ublocklite/rulesets/redirect/fin-0.json +0 -121
  418. package/extensions/ublocklite/rulesets/redirect/fra-0.json +0 -35
  419. package/extensions/ublocklite/rulesets/redirect/hun-0.json +0 -38
  420. package/extensions/ublocklite/rulesets/redirect/irn-0.json +0 -73
  421. package/extensions/ublocklite/rulesets/redirect/isr-0.json +0 -17
  422. package/extensions/ublocklite/rulesets/redirect/jpn-1.json +0 -30
  423. package/extensions/ublocklite/rulesets/redirect/kor-1.json +0 -25
  424. package/extensions/ublocklite/rulesets/redirect/ltu-0.json +0 -33
  425. package/extensions/ublocklite/rulesets/redirect/nld-0.json +0 -79
  426. package/extensions/ublocklite/rulesets/redirect/nor-0.json +0 -132
  427. package/extensions/ublocklite/rulesets/redirect/pol-0.json +0 -15
  428. package/extensions/ublocklite/rulesets/redirect/rou-1.json +0 -53
  429. package/extensions/ublocklite/rulesets/redirect/rus-0.json +0 -21
  430. package/extensions/ublocklite/rulesets/redirect/rus-1.json +0 -118
  431. package/extensions/ublocklite/rulesets/redirect/spa-1.json +0 -27
  432. package/extensions/ublocklite/rulesets/redirect/swe-1.json +0 -14
  433. package/extensions/ublocklite/rulesets/redirect/tha-0.json +0 -78
  434. package/extensions/ublocklite/rulesets/redirect/tur-0.json +0 -24
  435. package/extensions/ublocklite/rulesets/redirect/ublock-badware.json +0 -18
  436. package/extensions/ublocklite/rulesets/redirect/ublock-filters.json +0 -556
  437. package/extensions/ublocklite/rulesets/redirect/ubol-tests.json +0 -22
  438. package/extensions/ublocklite/rulesets/redirect/ukr-0.json +0 -18
  439. package/extensions/ublocklite/rulesets/redirect/vie-1.json +0 -85
  440. package/extensions/ublocklite/rulesets/removeparam/adguard-spyware-url.json +0 -612
  441. package/extensions/ublocklite/rulesets/removeparam/annoyances-overlays.json +0 -27
  442. package/extensions/ublocklite/rulesets/removeparam/chn-0.json +0 -48
  443. package/extensions/ublocklite/rulesets/removeparam/est-0.json +0 -26
  444. package/extensions/ublocklite/rulesets/removeparam/fin-0.json +0 -52
  445. package/extensions/ublocklite/rulesets/removeparam/irn-0.json +0 -18
  446. package/extensions/ublocklite/rulesets/removeparam/kor-1.json +0 -26
  447. package/extensions/ublocklite/rulesets/removeparam/rus-0.json +0 -19
  448. package/extensions/ublocklite/rulesets/removeparam/rus-1.json +0 -98
  449. package/extensions/ublocklite/rulesets/removeparam/swe-1.json +0 -125
  450. package/extensions/ublocklite/rulesets/removeparam/ublock-filters.json +0 -63
  451. package/extensions/ublocklite/rulesets/removeparam/ukr-0.json +0 -49
@@ -20,7 +20,7 @@
20
20
  "description": "appears as tab name in dashboard"
21
21
  },
22
22
  "developPageName": {
23
- "message": "Develop",
23
+ "message": "Развити",
24
24
  "description": "appears as tab name in dashboard. Inspired from 'Develop' menu in Safari, see https://developer.apple.com/documentation/safari-developer-tools/develop-menu"
25
25
  },
26
26
  "aboutPageName": {
@@ -36,7 +36,7 @@
36
36
  "description": "Label in the popup panel for the current filtering mode"
37
37
  },
38
38
  "popupLocalToolsLabel": {
39
- "message": "On this website",
39
+ "message": "На овој веб страници",
40
40
  "description": "Label in the popup panel for the local tools section"
41
41
  },
42
42
  "popupTipReport": {
@@ -120,7 +120,7 @@
120
120
  "description": "First paragraph of 'Filter issues' section in Support pane"
121
121
  },
122
122
  "supportS5H": {
123
- "message": "Troubleshooting information",
123
+ "message": "Информације о решавању проблема",
124
124
  "description": "Label of 'Troubleshooting information' section in 'Report a filter issue' page"
125
125
  },
126
126
  "supportS6P1S1": {
@@ -244,11 +244,11 @@
244
244
  "description": "Short description for a checkbox in the options page"
245
245
  },
246
246
  "developerModeLabel": {
247
- "message": "Developer mode",
247
+ "message": "Режим за програмере",
248
248
  "description": "Label for a checkbox in the options page"
249
249
  },
250
250
  "developerModeLegend": {
251
- "message": "Enables access to features suitable for technical users.",
251
+ "message": "Омогућава приступ функцијама погодним за техничке кориснике.",
252
252
  "description": "Short description for a checkbox in the options page"
253
253
  },
254
254
  "findListsPlaceholder": {
@@ -264,11 +264,11 @@
264
264
  "description": "Sentence used in the strict-blocked page"
265
265
  },
266
266
  "strictblockReasonSentence1": {
267
- "message": "The page was blocked because of a matching filter in {{listname}}.",
267
+ "message": "Страница је блокирана због одговарајућег филтера у {{listname}}.",
268
268
  "description": "Text informing about what is causing the page to be blocked"
269
269
  },
270
270
  "strictblockRedirectSentence1": {
271
- "message": "The blocked page wants to redirect to another site. If you choose to proceed, you will navigate directly to: {{url}}",
271
+ "message": "Блокирана страница жели да преусмери на други сајт. Ако одлучите да наставите, бићете директно на: {{url}}",
272
272
  "description": "Text warning about an incoming redirect"
273
273
  },
274
274
  "strictblockNoParamsPrompt": {
@@ -292,87 +292,87 @@
292
292
  "description": "A button to navigate to the blocked page"
293
293
  },
294
294
  "zapperTipEnter": {
295
- "message": "Remove an element",
295
+ "message": "Уклоните елемент",
296
296
  "description": "Tooltip for the button used to enter zapper mode"
297
297
  },
298
298
  "zapperTipQuit": {
299
- "message": "Exit element zapper mode",
299
+ "message": "Изађи из режима за затварање елемената",
300
300
  "description": "Tooltip for the button used to exit zapper mode"
301
301
  },
302
302
  "pickerTipEnter": {
303
- "message": "Create a custom filter",
303
+ "message": "Направите прилагођени филтер",
304
304
  "description": "Label for the menu entry to create cosmetic filters"
305
305
  },
306
306
  "unpickerTipEnter": {
307
- "message": "Remove a custom filter",
307
+ "message": "Уклоните прилагођени филтер",
308
308
  "description": "Label for the menu entry to delete cosmetic filters"
309
309
  },
310
310
  "developDropdownLabel": {
311
- "message": "View:",
311
+ "message": "Приказ:",
312
312
  "description": "A label of a dropdown list"
313
313
  },
314
314
  "developOptionFilteringModeDetails": {
315
- "message": "Filtering mode details",
315
+ "message": "Детаљи режима филтрирања",
316
316
  "description": "An option in a dropdown list"
317
317
  },
318
318
  "developOptionCustomDnrRules": {
319
- "message": "Custom DNR rules",
319
+ "message": "Прилагођена правила за DNR",
320
320
  "description": "An option in a dropdown list"
321
321
  },
322
322
  "developOptionDnrRulesOf": {
323
- "message": "DNR rules of …",
323
+ "message": "ДНР правила …",
324
324
  "description": "A section header in a dropdown list"
325
325
  },
326
326
  "developOptionDynamicRuleset": {
327
- "message": "Dynamic ruleset",
327
+ "message": "Динамички скуп правила",
328
328
  "description": "An option in a dropdown list"
329
329
  },
330
330
  "developOptionSessionRuleset": {
331
- "message": "Session ruleset",
331
+ "message": "Скуп правила сесије",
332
332
  "description": "An option in a dropdown list"
333
333
  },
334
334
  "saveButton": {
335
- "message": "Save",
335
+ "message": "Сачувај",
336
336
  "description": "Text for buttons used to save changes"
337
337
  },
338
338
  "revertButton": {
339
- "message": "Revert",
339
+ "message": "Врати",
340
340
  "description": "Text for buttons used to revert changes"
341
341
  },
342
342
  "importAndAppendButton": {
343
- "message": "Import and append…",
343
+ "message": "Увези и додај…",
344
344
  "description": "Text for buttons used to import and append content"
345
345
  },
346
346
  "exportButton": {
347
- "message": "Export…",
347
+ "message": "Извоз…",
348
348
  "description": "Text for buttons used to export content"
349
349
  },
350
350
  "dnrRulesWarning": {
351
- "message": "Do not add content from untrusted sources",
351
+ "message": "Не додајте садржај из непоузданих извора",
352
352
  "description": "Short description of the DNR rules editor pane"
353
353
  },
354
354
  "dnrRulesCountInfo": {
355
- "message": "Number of registered rules: {count}",
355
+ "message": "Број регистрованих правила: {count}",
356
356
  "description": "Short sentence to report the number of currently registered DNR rules"
357
357
  },
358
358
  "pickerSliderLabel": {
359
- "message": "Move the slider to select the best match",
359
+ "message": "Померите клизач да бисте изабрали најбоље подударање",
360
360
  "description": "Label to describe the purpose of the slider"
361
361
  },
362
362
  "pickerPick": {
363
- "message": "Pick",
363
+ "message": "Изаберите",
364
364
  "description": "Text for the button to re-enter element-picking mode"
365
365
  },
366
366
  "pickerPreview": {
367
- "message": "Preview",
367
+ "message": "Прегледај",
368
368
  "description": "Text for the button to activate preview mode"
369
369
  },
370
370
  "pickerCreate": {
371
- "message": "Create",
371
+ "message": "Креирај",
372
372
  "description": "Text for the button to create the filter"
373
373
  },
374
374
  "unpickerUsage": {
375
- "message": "Select a filter below to highlight matching elements in the webpage. Click the trash can to remove a filter.",
375
+ "message": "Изаберите филтер испод да бисте истакли одговарајуће елементе на веб страници. Кликните на канту за смеће да бисте уклонили филтер.",
376
376
  "description": "Summary description on how to use the tool to remove custom filters"
377
377
  }
378
378
  }
@@ -68,7 +68,7 @@
68
68
  "description": "Header for a ruleset section in 'Filter lists pane'"
69
69
  },
70
70
  "3pGroupMalware": {
71
- "message": "Malware protection, security",
71
+ "message": "การป้องกันมัลแวร์ ความปลอดภัย",
72
72
  "description": "Header for a ruleset section in 'Filter lists pane'"
73
73
  },
74
74
  "3pGroupAnnoyances": {
@@ -248,7 +248,7 @@
248
248
  "description": "Label for a checkbox in the options page"
249
249
  },
250
250
  "developerModeLegend": {
251
- "message": "Teknik kullanıcılara uygun özelliklere erişime izin ver",
251
+ "message": "Teknik kullanıcılara uygun özelliklere erişime izin ver.",
252
252
  "description": "Short description for a checkbox in the options page"
253
253
  },
254
254
  "findListsPlaceholder": {
@@ -344,7 +344,7 @@
344
344
  "description": "Text for buttons used to import and append content"
345
345
  },
346
346
  "exportButton": {
347
- "message": "Xuất...",
347
+ "message": "Xuất",
348
348
  "description": "Text for buttons used to export content"
349
349
  },
350
350
  "dnrRulesWarning": {
@@ -80,7 +80,7 @@ button {
80
80
  appearance: none;
81
81
  -moz-appearance: none;
82
82
  -webkit-appearance: none;
83
- border: 0;
83
+ border: var(--button-border-size) solid var(--ink-1);
84
84
  border-radius: var(--button-border-radius);
85
85
  background-color: var(--button-surface);
86
86
  color: var(--button-ink);
@@ -193,7 +193,7 @@ label:hover .checkbox:not([disabled]) {
193
193
  height: 100%;
194
194
  margin: 0;
195
195
  min-width: var(--checkbox-size);
196
- opacity: 0;
196
+ opacity: var(--native-control-opacity);
197
197
  position: absolute;
198
198
  width: 100%;
199
199
  }
@@ -204,6 +204,7 @@ label:hover .checkbox:not([disabled]) {
204
204
  box-sizing: border-box;
205
205
  fill: none;
206
206
  height: 100%;
207
+ opacity: calc(1 - var(--native-control-opacity));
207
208
  pointer-events: none;
208
209
  position: absolute;
209
210
  stroke: none;
@@ -242,7 +243,7 @@ label:hover .checkbox:not([disabled]) {
242
243
  height: 100%;
243
244
  margin: 0;
244
245
  min-width: var(--checkbox-size);
245
- opacity: 0;
246
+ opacity: var(--native-control-opacity);
246
247
  position: absolute;
247
248
  width: 100%;
248
249
  }
@@ -250,6 +251,7 @@ label:hover .checkbox:not([disabled]) {
250
251
  background-color: transparent;
251
252
  box-sizing: border-box;
252
253
  height: 100%;
254
+ opacity: calc(1 - var(--native-control-opacity));
253
255
  pointer-events: none;
254
256
  position: absolute;
255
257
  width: 100%;
@@ -408,8 +408,11 @@
408
408
  --fieldset-header-surface: transparent;
409
409
  --fieldset-header-ink: var(--ink-2);
410
410
 
411
+ --native-control-opacity: 0;
412
+
411
413
  --button-ink: var(--ink-1);
412
414
  --button-surface: rgb(var(--button-surface-rgb));
415
+ --button-border-size: 0;
413
416
  --button-border-radius: 5px;
414
417
  --button-preferred-ink: var(--accent-ink-1);
415
418
  --button-preferred-surface: var(--accent-surface-1);
@@ -460,6 +463,13 @@
460
463
  --popup-ruleset-tool-shadow: transparent;
461
464
  }
462
465
 
466
+ @media (prefers-contrast: more) {
467
+ :root {
468
+ --native-control-opacity: 1;
469
+ --button-border-size: 1px;
470
+ }
471
+ }
472
+
463
473
  /*
464
474
  * Rule colors
465
475
  * */
@@ -29,6 +29,7 @@
29
29
 
30
30
  #ubol-unpicker #customFilters {
31
31
  font-family: monospace;
32
+ overflow: auto;
32
33
  }
33
34
  #ubol-unpicker .customFilter {
34
35
  display: flex;
@@ -186,12 +186,14 @@ function onMessage(request, sender, callback) {
186
186
 
187
187
  case 'insertCSS': {
188
188
  if ( frameId === false ) { return false; }
189
+ // https://bugs.webkit.org/show_bug.cgi?id=262491
190
+ if ( frameId !== 0 && webextFlavor === 'safari' ) { return false; }
189
191
  browser.scripting.insertCSS({
190
192
  css: request.css,
191
193
  origin: 'USER',
192
194
  target: { tabId, frameIds: [ frameId ] },
193
195
  }).catch(reason => {
194
- ubolErr(reason);
196
+ ubolErr(`insertCSS/${reason}`);
195
197
  });
196
198
  return false;
197
199
  }
@@ -203,7 +205,7 @@ function onMessage(request, sender, callback) {
203
205
  origin: 'USER',
204
206
  target: { tabId, frameIds: [ frameId ] },
205
207
  }).catch(reason => {
206
- ubolErr(reason);
208
+ ubolErr(`removeCSS/${reason}`);
207
209
  });
208
210
  return false;
209
211
  }
@@ -242,7 +244,7 @@ function onMessage(request, sender, callback) {
242
244
  target: { tabId, frameIds: [ frameId ] },
243
245
  injectImmediately: true,
244
246
  }).catch(reason => {
245
- ubolErr(reason);
247
+ ubolErr(`executeScript/${reason}`);
246
248
  }).then(( ) => {
247
249
  callback();
248
250
  });
@@ -515,7 +515,7 @@ export function rulesFromText(text) {
515
515
  if ( indices.length === 0 ) { continue; }
516
516
  const result = ruleFromLines(lines, indices);
517
517
  if ( result.bad ) {
518
- bad.push(...result.bad);
518
+ bad.push(...result.bad.slice(4));
519
519
  } else if ( result.rule ) {
520
520
  rules.push(result.rule);
521
521
  }
@@ -27,7 +27,7 @@ function fetchJSON(path) {
27
27
  return fetch(`${path}.json`).then(response =>
28
28
  response.json()
29
29
  ).catch(reason => {
30
- ubolErr(reason);
30
+ ubolErr(`fetchJSON/${reason}`);
31
31
  });
32
32
  }
33
33
 
@@ -94,10 +94,7 @@ function rulesetStats(rulesetId) {
94
94
  const rulesetDetails = rulesetMap.get(rulesetId);
95
95
  if ( rulesetDetails === undefined ) { return; }
96
96
  const { rules, filters } = rulesetDetails;
97
- let ruleCount = rules.plain + rules.regex;
98
- if ( cachedRulesetData.hasOmnipotence ) {
99
- ruleCount += rules.removeparam + rules.redirect + rules.modifyHeaders;
100
- }
97
+ const ruleCount = rules.plain + rules.regex;
101
98
  const filterCount = filters.accepted;
102
99
  return { ruleCount, filterCount };
103
100
  }
@@ -38,6 +38,10 @@ import { ubolErr } from './debug.js';
38
38
 
39
39
  /******************************************************************************/
40
40
 
41
+ const perSitePendingIO = new Map();
42
+
43
+ /******************************************************************************/
44
+
41
45
  export async function selectorsFromCustomFilters(hostname) {
42
46
  const promises = [];
43
47
  let hn = hostname;
@@ -81,7 +85,7 @@ export function startCustomFilters(tabId, frameId) {
81
85
  target: { tabId, frameIds: [ frameId ] },
82
86
  injectImmediately: true,
83
87
  }).catch(reason => {
84
- ubolErr(reason);
88
+ ubolErr(`startCustomFilters/${reason}`);
85
89
  })
86
90
  }
87
91
 
@@ -91,7 +95,7 @@ export function terminateCustomFilters(tabId, frameId) {
91
95
  target: { tabId, frameIds: [ frameId ] },
92
96
  injectImmediately: true,
93
97
  }).catch(reason => {
94
- ubolErr(reason);
98
+ ubolErr(`terminateCustomFilters/${reason}`);
95
99
  })
96
100
  }
97
101
 
@@ -109,7 +113,7 @@ export async function injectCustomFilters(tabId, frameId, hostname) {
109
113
  origin: 'USER',
110
114
  target: { tabId, frameIds: [ frameId ] },
111
115
  }).catch(reason => {
112
- ubolErr(reason);
116
+ ubolErr(`injectCustomFilters/insertCSS/${reason}`);
113
117
  })
114
118
  );
115
119
  }
@@ -121,7 +125,7 @@ export async function injectCustomFilters(tabId, frameId, hostname) {
121
125
  target: { tabId, frameIds: [ frameId ] },
122
126
  injectImmediately: true,
123
127
  }).catch(reason => {
124
- ubolErr(reason);
128
+ ubolErr(`injectCustomFilters/executeScript/${reason}`);
125
129
  })
126
130
  );
127
131
  }
@@ -132,6 +136,9 @@ export async function injectCustomFilters(tabId, frameId, hostname) {
132
136
  /******************************************************************************/
133
137
 
134
138
  export async function registerCustomFilters(context) {
139
+ if ( perSitePendingIO.size !== 0 ) {
140
+ await Promise.all(Array.from(perSitePendingIO.values()));
141
+ }
135
142
  const siteKeys = await getAllCustomFilterKeys();
136
143
  if ( siteKeys.length === 0 ) { return; }
137
144
 
@@ -168,6 +175,20 @@ export async function registerCustomFilters(context) {
168
175
  /******************************************************************************/
169
176
 
170
177
  export async function addCustomFilter(hostname, selector) {
178
+ const pending = perSitePendingIO.get(hostname);
179
+ const promise = pending
180
+ ? pending.then(( ) => addCustomFilterByHostname(hostname, selector))
181
+ : addCustomFilterByHostname(hostname, selector);
182
+ perSitePendingIO.set(hostname, promise);
183
+ promise.then(( ) => {
184
+ if ( promise !== perSitePendingIO.get(hostname) ) { return; }
185
+ perSitePendingIO.delete(hostname);
186
+ });
187
+ return promise;
188
+ }
189
+
190
+ async function addCustomFilterByHostname(hostname, selector) {
191
+ if ( hostname === '' ) { return false; }
171
192
  const key = `site.${hostname}`;
172
193
  const selectors = await localRead(key) || [];
173
194
  if ( selectors.includes(selector) ) { return false; }
@@ -183,9 +204,7 @@ export async function removeCustomFilter(hostname, selector) {
183
204
  const promises = [];
184
205
  let hn = hostname;
185
206
  while ( hn !== '' ) {
186
- promises.push(
187
- removeCustomFilterByKey(`site.${hn}`, selector).catch(( ) => false)
188
- );
207
+ promises.push(removeCustomFilterByHostname(hn, selector));
189
208
  const pos = hn.indexOf('.');
190
209
  if ( pos === -1 ) { break; }
191
210
  hn = hn.slice(pos + 1);
@@ -194,11 +213,28 @@ export async function removeCustomFilter(hostname, selector) {
194
213
  return results.some(a => a);
195
214
  }
196
215
 
216
+ async function removeCustomFilterByHostname(hostname, selector) {
217
+ const pending = perSitePendingIO.get(hostname);
218
+ const key = `site.${hostname}`;
219
+ const promise = pending
220
+ ? pending.then(( ) => removeCustomFilterByKey(key, selector))
221
+ : removeCustomFilterByKey(key, selector);
222
+ perSitePendingIO.set(hostname, promise);
223
+ promise.then(( ) => {
224
+ if ( promise !== perSitePendingIO.get(hostname) ) { return; }
225
+ perSitePendingIO.delete(hostname);
226
+ });
227
+ return promise;
228
+ }
229
+
197
230
  async function removeCustomFilterByKey(key, selector) {
198
231
  const selectors = await localRead(key);
199
232
  if ( selectors === undefined ) { return false; }
200
- const i = selectors.indexOf(selector);
201
- if ( i === -1 ) { return false; }
233
+ let i = selectors.indexOf(selector);
234
+ if ( i === -1 ) {
235
+ i = selectors.indexOf(`0${selector}`);
236
+ if ( i === -1 ) { return false; }
237
+ }
202
238
  selectors.splice(i, 1);
203
239
  if ( selectors.length !== 0 ) {
204
240
  await localWrite(key, selectors);
@@ -340,8 +340,6 @@ async function init() {
340
340
 
341
341
  dom.cl.toggle('#gotoUnpicker', 'enabled', popupPanelData.hasCustomFilters);
342
342
 
343
- dom.cl.remove(dom.body, 'loading');
344
-
345
343
  return true;
346
344
  }
347
345
 
@@ -350,6 +348,8 @@ async function tryInit() {
350
348
  await init();
351
349
  } catch {
352
350
  setTimeout(tryInit, 100);
351
+ } finally {
352
+ dom.cl.remove(dom.body, 'loading');
353
353
  }
354
354
  }
355
355