@browserless.io/browserless 2.37.1 → 2.38.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 (286) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/build/browsers/index.js +6 -1
  3. package/extensions/ublocklite/_locales/ar/messages.json +5 -5
  4. package/extensions/ublocklite/_locales/de/messages.json +1 -1
  5. package/extensions/ublocklite/_locales/fa/messages.json +8 -8
  6. package/extensions/ublocklite/_locales/hu/messages.json +5 -5
  7. package/extensions/ublocklite/_locales/nb/messages.json +7 -7
  8. package/extensions/ublocklite/_locales/pt_PT/messages.json +9 -9
  9. package/extensions/ublocklite/_locales/ro/messages.json +32 -32
  10. package/extensions/ublocklite/_locales/sq/messages.json +4 -4
  11. package/extensions/ublocklite/js/background.js +19 -2
  12. package/extensions/ublocklite/js/mode-manager.js +7 -9
  13. package/extensions/ublocklite/js/scripting/css-api.js +33 -0
  14. package/extensions/ublocklite/js/scripting/css-generic.js +3 -13
  15. package/extensions/ublocklite/js/scripting/css-procedural-api.js +1 -9
  16. package/extensions/ublocklite/js/scripting/css-procedural.js +1 -5
  17. package/extensions/ublocklite/js/scripting/css-specific.js +1 -5
  18. package/extensions/ublocklite/js/scripting-manager.js +11 -8
  19. package/extensions/ublocklite/js/troubleshooting.js +3 -0
  20. package/extensions/ublocklite/js/utils.js +15 -13
  21. package/extensions/ublocklite/manifest.json +2 -1
  22. package/extensions/ublocklite/rulesets/generic-details.json +4 -2
  23. package/extensions/ublocklite/rulesets/main/adguard-mobile.json +4 -5
  24. package/extensions/ublocklite/rulesets/main/adguard-spyware-url.json +12 -7
  25. package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +21 -17
  26. package/extensions/ublocklite/rulesets/main/annoyances-notifications.json +2 -1
  27. package/extensions/ublocklite/rulesets/main/annoyances-others.json +3 -2
  28. package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +4 -3
  29. package/extensions/ublocklite/rulesets/main/chn-0.json +23 -15
  30. package/extensions/ublocklite/rulesets/main/deu-0.json +4 -4
  31. package/extensions/ublocklite/rulesets/main/dpollock-0.json +2 -1
  32. package/extensions/ublocklite/rulesets/main/easylist.json +37 -91
  33. package/extensions/ublocklite/rulesets/main/easyprivacy.json +22 -8
  34. package/extensions/ublocklite/rulesets/main/est-0.json +2 -1
  35. package/extensions/ublocklite/rulesets/main/fra-0.json +6 -4
  36. package/extensions/ublocklite/rulesets/main/hrv-0.json +6 -3
  37. package/extensions/ublocklite/rulesets/main/hun-0.json +5 -2
  38. package/extensions/ublocklite/rulesets/main/idn-0.json +1 -1
  39. package/extensions/ublocklite/rulesets/main/ind-0.json +36 -34
  40. package/extensions/ublocklite/rulesets/main/isr-0.json +1 -1
  41. package/extensions/ublocklite/rulesets/main/ita-0.json +4 -3
  42. package/extensions/ublocklite/rulesets/main/jpn-1.json +25 -16
  43. package/extensions/ublocklite/rulesets/main/kor-1.json +5 -3
  44. package/extensions/ublocklite/rulesets/main/mkd-0.json +2 -1
  45. package/extensions/ublocklite/rulesets/main/nld-0.json +3 -1
  46. package/extensions/ublocklite/rulesets/main/nor-0.json +15 -1
  47. package/extensions/ublocklite/rulesets/main/pgl.json +16 -20
  48. package/extensions/ublocklite/rulesets/main/pol-0.json +1 -1
  49. package/extensions/ublocklite/rulesets/main/rus-0.json +14 -13
  50. package/extensions/ublocklite/rulesets/main/rus-1.json +4 -2
  51. package/extensions/ublocklite/rulesets/main/spa-1.json +8 -3
  52. package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +11287 -12041
  53. package/extensions/ublocklite/rulesets/main/swe-1.json +21 -19
  54. package/extensions/ublocklite/rulesets/main/tur-0.json +13 -4
  55. package/extensions/ublocklite/rulesets/main/ublock-badware.json +28 -3
  56. package/extensions/ublocklite/rulesets/main/ublock-filters.json +73 -70
  57. package/extensions/ublocklite/rulesets/main/ukr-0.json +2 -2
  58. package/extensions/ublocklite/rulesets/main/urlhaus-full.json +3496 -291
  59. package/extensions/ublocklite/rulesets/main/vie-1.json +52 -47
  60. package/extensions/ublocklite/rulesets/regex/block-lan.json +16 -0
  61. package/extensions/ublocklite/rulesets/regex/chn-0.json +3 -2
  62. package/extensions/ublocklite/rulesets/regex/jpn-1.json +2 -3
  63. package/extensions/ublocklite/rulesets/regex/rus-0.json +2 -1
  64. package/extensions/ublocklite/rulesets/regex/ublock-badware.json +5 -4
  65. package/extensions/ublocklite/rulesets/regex/ublock-filters.json +22 -15
  66. package/extensions/ublocklite/rulesets/ruleset-details.json +219 -219
  67. package/extensions/ublocklite/rulesets/scripting/generic/adguard-mobile.js +2 -2
  68. package/extensions/ublocklite/rulesets/scripting/generic/alb-0.js +1 -1
  69. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +3 -3
  70. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-notifications.js +2 -2
  71. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-others.js +2 -2
  72. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-overlays.js +2 -2
  73. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +3 -3
  74. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-widgets.js +1 -1
  75. package/extensions/ublocklite/rulesets/scripting/generic/bgr-0.js +2 -2
  76. package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +2 -2
  77. package/extensions/ublocklite/rulesets/scripting/generic/cze-0.js +2 -2
  78. package/extensions/ublocklite/rulesets/scripting/generic/deu-0.js +2 -2
  79. package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +3 -3
  80. package/extensions/ublocklite/rulesets/scripting/generic/easyprivacy.js +1 -1
  81. package/extensions/ublocklite/rulesets/scripting/generic/est-0.js +2 -2
  82. package/extensions/ublocklite/rulesets/scripting/generic/fin-0.js +2 -2
  83. package/extensions/ublocklite/rulesets/scripting/generic/fra-0.js +2 -2
  84. package/extensions/ublocklite/rulesets/scripting/generic/grc-0.js +2 -2
  85. package/extensions/ublocklite/rulesets/scripting/generic/hrv-0.js +2 -2
  86. package/extensions/ublocklite/rulesets/scripting/generic/hun-0.js +2 -2
  87. package/extensions/ublocklite/rulesets/scripting/generic/idn-0.js +2 -2
  88. package/extensions/ublocklite/rulesets/scripting/generic/ind-0.js +1 -1
  89. package/extensions/ublocklite/rulesets/scripting/generic/irn-0.js +2 -2
  90. package/extensions/ublocklite/rulesets/scripting/generic/isr-0.js +2 -2
  91. package/extensions/ublocklite/rulesets/scripting/generic/ita-0.js +2 -2
  92. package/extensions/ublocklite/rulesets/scripting/generic/jpn-1.js +2 -2
  93. package/extensions/ublocklite/rulesets/scripting/generic/kor-1.js +2 -2
  94. package/extensions/ublocklite/rulesets/scripting/generic/ltu-0.js +1 -1
  95. package/extensions/ublocklite/rulesets/scripting/generic/lva-0.js +1 -1
  96. package/extensions/ublocklite/rulesets/scripting/generic/mkd-0.js +2 -2
  97. package/extensions/ublocklite/rulesets/scripting/generic/nld-0.js +2 -2
  98. package/extensions/ublocklite/rulesets/scripting/generic/nor-0.js +2 -2
  99. package/extensions/ublocklite/rulesets/scripting/generic/pol-0.js +2 -2
  100. package/extensions/ublocklite/rulesets/scripting/generic/rou-1.js +2 -2
  101. package/extensions/ublocklite/rulesets/scripting/generic/rus-0.js +2 -2
  102. package/extensions/ublocklite/rulesets/scripting/generic/rus-1.js +2 -2
  103. package/extensions/ublocklite/rulesets/scripting/generic/spa-0.js +2 -2
  104. package/extensions/ublocklite/rulesets/scripting/generic/spa-1.js +2 -2
  105. package/extensions/ublocklite/rulesets/scripting/generic/svn-0.js +1 -1
  106. package/extensions/ublocklite/rulesets/scripting/generic/swe-1.js +2 -2
  107. package/extensions/ublocklite/rulesets/scripting/generic/tha-0.js +1 -1
  108. package/extensions/ublocklite/rulesets/scripting/generic/tur-0.js +2 -2
  109. package/extensions/ublocklite/rulesets/scripting/generic/ublock-badware.js +1 -1
  110. package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +3 -3
  111. package/extensions/ublocklite/rulesets/scripting/generic/ubol-tests.js +2 -2
  112. package/extensions/ublocklite/rulesets/scripting/generic/ukr-0.js +3 -3
  113. package/extensions/ublocklite/rulesets/scripting/generic/vie-1.js +3 -3
  114. package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +3 -5
  115. package/extensions/ublocklite/rulesets/scripting/generichigh/easylist.css +4 -0
  116. package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +4 -0
  117. package/extensions/ublocklite/rulesets/scripting/generichigh/rus-0.css +1 -1
  118. package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +3 -3
  119. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +3 -3
  120. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-others.js +1 -1
  121. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-overlays.js +3 -3
  122. package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +1 -1
  123. package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
  124. package/extensions/ublocklite/rulesets/scripting/procedural/fin-0.js +1 -1
  125. package/extensions/ublocklite/rulesets/scripting/procedural/fra-0.js +1 -1
  126. package/extensions/ublocklite/rulesets/scripting/procedural/ind-0.js +3 -3
  127. package/extensions/ublocklite/rulesets/scripting/procedural/irn-0.js +3 -3
  128. package/extensions/ublocklite/rulesets/scripting/procedural/isr-0.js +3 -3
  129. package/extensions/ublocklite/rulesets/scripting/procedural/jpn-1.js +3 -3
  130. package/extensions/ublocklite/rulesets/scripting/procedural/kor-1.js +3 -3
  131. package/extensions/ublocklite/rulesets/scripting/procedural/rou-1.js +3 -3
  132. package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
  133. package/extensions/ublocklite/rulesets/scripting/procedural/rus-1.js +3 -3
  134. package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +3 -3
  135. package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
  136. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-experimental.js +42 -0
  137. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
  138. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.remove-node-text.js +1 -1
  139. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
  140. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +2 -2
  141. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-session-storage-item.js +2 -2
  142. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +5 -2
  143. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-replace-node-text.js +2 -2
  144. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +2 -2
  145. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.set-constant.js +2 -2
  146. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.set-cookie.js +2 -2
  147. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-current-script.js +2 -2
  148. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-on-stack-trace.js +2 -2
  149. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +1 -1
  150. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setTimeout.js +1 -1
  151. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-attr.js +2 -2
  152. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-class.js +2 -2
  153. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-node-text.js +2 -2
  154. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +2 -2
  155. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-click-element.js +3 -0
  156. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-replace-argument.js +14 -7
  157. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +2 -2
  158. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +1 -1
  159. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.set-constant.js +1 -1
  160. package/extensions/ublocklite/rulesets/scripting/scriptlet/{vie-1.addEventListener-defuser.js → chn-0.set-cookie.js} +133 -193
  161. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.set-constant.js +2 -2
  162. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.href-sanitizer.js +4 -22
  163. package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-fetch.js +1 -1
  164. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.adjust-setInterval.js +2 -2
  165. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.href-sanitizer.js +6 -24
  166. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.json-prune.js +2 -2
  167. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.abort-current-script.js +2 -2
  168. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.addEventListener-defuser.js +2 -2
  169. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-fetch.js +2 -2
  170. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setTimeout.js +2 -2
  171. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-xhr.js +2 -2
  172. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.remove-cookie.js +2 -2
  173. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.remove-node-text.js +2 -2
  174. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-constant.js +2 -2
  175. package/extensions/ublocklite/rulesets/scripting/scriptlet/{nld-0.json-prune-fetch-response.js → kor-1.set-local-storage-item.js} +86 -275
  176. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-write.js +2 -2
  177. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-stack-trace.js +2 -2
  178. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +2 -2
  179. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.href-sanitizer.js +6 -24
  180. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-attr.js +2 -2
  181. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
  182. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-cookie.js +2 -2
  183. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.set-local-storage-item.js +399 -0
  184. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.href-sanitizer.js +4 -22
  185. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.noeval-if.js +1 -1
  186. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setTimeout.js +2 -2
  187. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.remove-node-text.js +2 -2
  188. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.href-sanitizer.js +4 -22
  189. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +2 -2
  190. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.trusted-replace-argument.js +14 -7
  191. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-json-edit-xhr-request.js +1 -1
  192. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-replace-node-text.js +1 -1
  193. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +3 -3
  194. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +1 -1
  195. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-write.js +1 -1
  196. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +3 -3
  197. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +2 -2
  198. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +1 -1
  199. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.js +2 -2
  200. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.href-sanitizer.js +5 -23
  201. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-fetch-response.js +2 -2
  202. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-xhr-response.js +3 -3
  203. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune.js +2 -2
  204. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +2 -2
  205. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +2 -2
  206. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +1 -1
  207. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +3 -3
  208. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +3 -3
  209. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +2 -2
  210. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +1 -1
  211. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-attr.js +2 -2
  212. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-cookie.js +2 -2
  213. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +3 -3
  214. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
  215. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-click-element.js +3 -0
  216. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-create-html.js +2 -2
  217. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +16 -9
  218. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +3 -3
  219. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +2 -2
  220. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-attr.js +2 -2
  221. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +2 -2
  222. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +2 -2
  223. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +2 -2
  224. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.set-constant.js +2 -2
  225. package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
  226. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
  227. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-notifications.js +3 -3
  228. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +3 -3
  229. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
  230. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
  231. package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
  232. package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
  233. package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
  234. package/extensions/ublocklite/rulesets/scripting/specific/est-0.js +3 -3
  235. package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
  236. package/extensions/ublocklite/rulesets/scripting/specific/fra-0.js +3 -3
  237. package/extensions/ublocklite/rulesets/scripting/specific/grc-0.js +3 -3
  238. package/extensions/ublocklite/rulesets/scripting/specific/hrv-0.js +3 -3
  239. package/extensions/ublocklite/rulesets/scripting/specific/hun-0.js +3 -3
  240. package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
  241. package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
  242. package/extensions/ublocklite/rulesets/scripting/specific/isr-0.js +3 -3
  243. package/extensions/ublocklite/rulesets/scripting/specific/ita-0.js +3 -3
  244. package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
  245. package/extensions/ublocklite/rulesets/scripting/specific/kor-1.js +2 -2
  246. package/extensions/ublocklite/rulesets/scripting/specific/nor-0.js +3 -3
  247. package/extensions/ublocklite/rulesets/scripting/specific/rou-1.js +3 -3
  248. package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
  249. package/extensions/ublocklite/rulesets/scripting/specific/spa-1.js +3 -3
  250. package/extensions/ublocklite/rulesets/scripting/specific/swe-1.js +3 -3
  251. package/extensions/ublocklite/rulesets/scripting/specific/tur-0.js +3 -3
  252. package/extensions/ublocklite/rulesets/scripting/specific/ublock-badware.js +1 -1
  253. package/extensions/ublocklite/rulesets/scripting/specific/ublock-filters.js +3 -3
  254. package/extensions/ublocklite/rulesets/scripting/specific/ukr-0.js +3 -3
  255. package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
  256. package/extensions/ublocklite/rulesets/scriptlet-details.json +154 -124
  257. package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +13 -28
  258. package/extensions/ublocklite/rulesets/strictblock/annoyances-cookies.json +1 -0
  259. package/extensions/ublocklite/rulesets/strictblock/annoyances-widgets.json +1 -0
  260. package/extensions/ublocklite/rulesets/strictblock/chn-0.json +200 -246
  261. package/extensions/ublocklite/rulesets/strictblock/deu-0.json +1 -0
  262. package/extensions/ublocklite/rulesets/strictblock/dpollock-0.json +2 -1
  263. package/extensions/ublocklite/rulesets/strictblock/easylist.json +1 -1
  264. package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +30 -2
  265. package/extensions/ublocklite/rulesets/strictblock/fra-0.json +102 -41
  266. package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +187 -179
  267. package/extensions/ublocklite/rulesets/strictblock/pgl.json +16 -20
  268. package/extensions/ublocklite/rulesets/strictblock/pol-0.json +3 -1
  269. package/extensions/ublocklite/rulesets/strictblock/spa-1.json +1 -0
  270. package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +11287 -12041
  271. package/extensions/ublocklite/rulesets/strictblock/swe-1.json +0 -1
  272. package/extensions/ublocklite/rulesets/strictblock/tur-0.json +1 -0
  273. package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +671 -655
  274. package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +1 -1
  275. package/extensions/ublocklite/rulesets/strictblock/ukr-0.json +1 -0
  276. package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +3496 -291
  277. package/extensions/ublocklite/rulesets/strictblock/vie-1.json +5 -1
  278. package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +59 -1
  279. package/extensions/ublocklite/ublock.zip +0 -0
  280. package/package.json +17 -17
  281. package/src/browsers/index.ts +8 -1
  282. package/static/docs/swagger.json +2 -2
  283. package/static/docs/swagger.min.json +1 -1
  284. package/static/function/client.js +58 -14
  285. package/static/function/index.html +58 -14
  286. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-request.js +0 -941
package/CHANGELOG.md CHANGED
@@ -1,6 +1,30 @@
1
- # [Latest](https://github.com/browserless/chrome/compare/v2.37.0...main)
1
+ # [Latest](https://github.com/browserless/chrome/compare/v2.38.0...main)
2
+
3
+ # [v2.38.0](https://github.com/browserless/chrome/compare/v2.37.1...v2.38.0)
4
+
5
+ - Dependency updates.
6
+ - Supports the following libraries and browsers:
7
+ - puppeteer-core: `24.26.1`
8
+ - playwright-core: `1.56.1`, `1.55.1`, `1.54.2`, `1.53.2`, and `1.52.0`.
9
+ - Chromium: `141.0.7390.37`
10
+ - Chrome: `141.0.7390.123` (amd64 only)
11
+ - Firefox: `142.0.1`
12
+ - Webkit: `26.0`
13
+ - Edge: `141.0.3537.99` (amd64 only)
14
+
15
+ # [v2.37.1](https://github.com/browserless/chrome/compare/v2.37.1...v2.37.0)
2
16
 
3
17
  - Dependency updates.
18
+ - Handling of `ignoreHTTPSErrors` to `acceptInsecureCerts`.
19
+ - Smaller fixes, testing updates, and graceful shutdown handling.
20
+ - Supports the following libraries and browsers:
21
+ - puppeteer-core: `24.23.0`
22
+ - playwright-core: `1.55.1`, `1.54.2`, `1.53.2`, `1.52.0`, and `1.51.1`.
23
+ - Chromium: `140.0.7339.16`
24
+ - Chrome: `141.0.7390.66` (amd64 only)
25
+ - Firefox: `141.0`
26
+ - Webkit: `26.0`
27
+ - Edge: `141.0.3537.57` (amd64 only)
4
28
 
5
29
  # [v2.37.0](https://github.com/browserless/chrome/compare/v2.36.0...v2.37.0)
6
30
 
@@ -299,7 +299,12 @@ export class BrowserManager {
299
299
  // Handle browser re-connects here
300
300
  if (this.reconnectionPatterns.some((p) => req.parsed.pathname.includes(p))) {
301
301
  const sessions = Array.from(this.browsers);
302
- const id = req.parsed.pathname.split('/').pop();
302
+ const pathParts = req.parsed.pathname.split('/');
303
+ // The last part of the path is the browser ID, or the second last part in case the path ends with "/"
304
+ const id = pathParts.pop() || pathParts.pop();
305
+ if (!id) {
306
+ throw new NotFound(`Couldn't locate browser ID from path "${req.parsed.pathname}"`);
307
+ }
303
308
  const found = sessions.find(([b]) => b.wsEndpoint()?.includes(id));
304
309
  if (found) {
305
310
  const [browser, session] = found;
@@ -264,15 +264,15 @@
264
264
  "description": "Short description for a checkbox in the options page"
265
265
  },
266
266
  "settingsBackupRestoreLabel": {
267
- "message": "Backup",
267
+ "message": "النسخ الاحتياطي",
268
268
  "description": "The header text for the back up/restore section"
269
269
  },
270
270
  "settingsBackupRestoreSummary": {
271
- "message": "Back up your custom settings to a file, or restore your custom settings from a file.",
271
+ "message": "قم بنسخ الإعدادات المخصصة احتياطيًا إلى ملف، أو استعادة الإعدادات المخصصة من ملف.",
272
272
  "description": "A summary description of the back up/restore section."
273
273
  },
274
274
  "settingsBackupRestoreLegend": {
275
- "message": "Restoring will overwrite all your current custom settings.",
275
+ "message": "ستؤدي عملية الاستعادة إلى استبدال جميع إعداداتك المخصصة الحالية.",
276
276
  "description": "Important information about the back up/restore section."
277
277
  },
278
278
  "findListsPlaceholder": {
@@ -376,11 +376,11 @@
376
376
  "description": "Text for buttons used to export content"
377
377
  },
378
378
  "backupButton": {
379
- "message": "Back up…",
379
+ "message": "نسخ احتياطي…",
380
380
  "description": "Text for buttons used to back up content"
381
381
  },
382
382
  "restoreButton": {
383
- "message": "Restore…",
383
+ "message": "استعادة…",
384
384
  "description": "Text for buttons used to restore content"
385
385
  },
386
386
  "dnrRulesWarning": {
@@ -264,7 +264,7 @@
264
264
  "description": "Short description for a checkbox in the options page"
265
265
  },
266
266
  "settingsBackupRestoreLabel": {
267
- "message": "Sichern und wiederherstellen",
267
+ "message": "Sicherung",
268
268
  "description": "The header text for the back up/restore section"
269
269
  },
270
270
  "settingsBackupRestoreSummary": {
@@ -132,7 +132,7 @@
132
132
  "description": "First paragraph of 'Filter issues' section in Support pane"
133
133
  },
134
134
  "supportS5H": {
135
- "message": "Troubleshooting information",
135
+ "message": "اطلاعات مشکل‌گشایی",
136
136
  "description": "Label of 'Troubleshooting information' section in 'Report a filter issue' page"
137
137
  },
138
138
  "supportS6P1S1": {
@@ -144,7 +144,7 @@
144
144
  "description": "A clickable link in the filter issue reporter section"
145
145
  },
146
146
  "supportS6URL": {
147
- "message": "Address of the webpage:",
147
+ "message": "آدرس صفحه‌ی وب:",
148
148
  "description": "Label for the URL of the page"
149
149
  },
150
150
  "supportS6Select1": {
@@ -152,15 +152,15 @@
152
152
  "description": "Label for widget to select type of issue"
153
153
  },
154
154
  "supportS6Select1Option0": {
155
- "message": "-- Pick an entry --",
155
+ "message": "-- یک گزینه را انتخاب کنید --",
156
156
  "description": "An entry in the widget used to select the type of issue"
157
157
  },
158
158
  "supportS6Select1Option1": {
159
- "message": "Shows ads or ad leftovers",
159
+ "message": "تبلیغات یا باقی‌مانده‌هایی از آن نشان می‌دهد",
160
160
  "description": "An entry in the widget used to select the type of issue"
161
161
  },
162
162
  "supportS6Select1Option2": {
163
- "message": "Has overlays or other nuisances",
163
+ "message": "دارای لایه‌های اضافی یا مشکلات مزاحم دیگر",
164
164
  "description": "An entry in the widget used to select the type of issue"
165
165
  },
166
166
  "supportS6Select1Option3": {
@@ -168,7 +168,7 @@
168
168
  "description": "An entry in the widget used to select the type of issue"
169
169
  },
170
170
  "supportS6Select1Option4": {
171
- "message": "Has privacy-related issues",
171
+ "message": "دارای ایراد مربوط به حریم خصوصی است",
172
172
  "description": "An entry in the widget used to select the type of issue"
173
173
  },
174
174
  "supportS6Select1Option5": {
@@ -176,11 +176,11 @@
176
176
  "description": "An entry in the widget used to select the type of issue"
177
177
  },
178
178
  "supportS6Select1Option6": {
179
- "message": "Opens unwanted tabs or windows",
179
+ "message": "تب یا پنجره‌ی ناخواسته باز می‌کند",
180
180
  "description": "An entry in the widget used to select the type of issue"
181
181
  },
182
182
  "supportS6Select1Option7": {
183
- "message": "Leads to badware, phishing",
183
+ "message": "منجر به بدافزار یا فیشینگ می‌شود",
184
184
  "description": "An entry in the widget used to select the type of issue"
185
185
  },
186
186
  "supportS6Checkbox1": {
@@ -264,15 +264,15 @@
264
264
  "description": "Short description for a checkbox in the options page"
265
265
  },
266
266
  "settingsBackupRestoreLabel": {
267
- "message": "Backup",
267
+ "message": "Biztonsági mentés",
268
268
  "description": "The header text for the back up/restore section"
269
269
  },
270
270
  "settingsBackupRestoreSummary": {
271
- "message": "Back up your custom settings to a file, or restore your custom settings from a file.",
271
+ "message": "Egyéni beállítások fájlbamentése, vagy az egyéni beállítások helyreállítása egy fájlból.",
272
272
  "description": "A summary description of the back up/restore section."
273
273
  },
274
274
  "settingsBackupRestoreLegend": {
275
- "message": "Restoring will overwrite all your current custom settings.",
275
+ "message": "A helyreállítás felülírja a jelenlegi egyéni beállításokat.",
276
276
  "description": "Important information about the back up/restore section."
277
277
  },
278
278
  "findListsPlaceholder": {
@@ -376,11 +376,11 @@
376
376
  "description": "Text for buttons used to export content"
377
377
  },
378
378
  "backupButton": {
379
- "message": "Back up…",
379
+ "message": "Biztonsági mentés…",
380
380
  "description": "Text for buttons used to back up content"
381
381
  },
382
382
  "restoreButton": {
383
- "message": "Restore…",
383
+ "message": "Helyreállítás…",
384
384
  "description": "Text for buttons used to restore content"
385
385
  },
386
386
  "dnrRulesWarning": {
@@ -44,7 +44,7 @@
44
44
  "description": "Label in the popup panel for the local tools section"
45
45
  },
46
46
  "popupTipReport": {
47
- "message": "Rapporter et problem på dette nettstedet",
47
+ "message": "Rapporter et problem",
48
48
  "description": "Tooltip used for the 'chat' icon in the panel"
49
49
  },
50
50
  "popupTipDashboard": {
@@ -72,7 +72,7 @@
72
72
  "description": "Header for a ruleset section in 'Filter lists pane'"
73
73
  },
74
74
  "3pGroupMalware": {
75
- "message": "Domener med skadelig programvare",
75
+ "message": "Beskyttelse mot skadelig programvare, sikkerhet",
76
76
  "description": "Header for a ruleset section in 'Filter lists pane'"
77
77
  },
78
78
  "3pGroupAnnoyances": {
@@ -264,15 +264,15 @@
264
264
  "description": "Short description for a checkbox in the options page"
265
265
  },
266
266
  "settingsBackupRestoreLabel": {
267
- "message": "Backup",
267
+ "message": "Sikkerhetskopi",
268
268
  "description": "The header text for the back up/restore section"
269
269
  },
270
270
  "settingsBackupRestoreSummary": {
271
- "message": "Back up your custom settings to a file, or restore your custom settings from a file.",
271
+ "message": "Sikkerhetskopier dine egendefinerte regler, eller gjenopprett dine egendefinerte regler fra en fil.",
272
272
  "description": "A summary description of the back up/restore section."
273
273
  },
274
274
  "settingsBackupRestoreLegend": {
275
- "message": "Restoring will overwrite all your current custom settings.",
275
+ "message": "Gjenoppretting vil overskrive dine nåværende egendefinerte regler.",
276
276
  "description": "Important information about the back up/restore section."
277
277
  },
278
278
  "findListsPlaceholder": {
@@ -376,11 +376,11 @@
376
376
  "description": "Text for buttons used to export content"
377
377
  },
378
378
  "backupButton": {
379
- "message": "Back up…",
379
+ "message": "Sikkerhetskopier…",
380
380
  "description": "Text for buttons used to back up content"
381
381
  },
382
382
  "restoreButton": {
383
- "message": "Restore…",
383
+ "message": "Gjenopprett…",
384
384
  "description": "Text for buttons used to restore content"
385
385
  },
386
386
  "dnrRulesWarning": {
@@ -20,7 +20,7 @@
20
20
  "description": "appears as tab name in dashboard"
21
21
  },
22
22
  "customFiltersPageName": {
23
- "message": "Custom filters",
23
+ "message": "Filtros personalizados",
24
24
  "description": "appears as tab name in dashboard"
25
25
  },
26
26
  "developPageName": {
@@ -88,11 +88,11 @@
88
88
  "description": "Header for a ruleset section in 'Filter lists pane'"
89
89
  },
90
90
  "customFiltersImportExportLabel": {
91
- "message": "Import / Export",
91
+ "message": "Importar / Exportar",
92
92
  "description": "Text label heading the import/export area of custom filters"
93
93
  },
94
94
  "customFiltersImportTextareaPlaceholder": {
95
- "message": "Paste here specific cosmetic filters to add",
95
+ "message": "Cole aqui filtros cosméticos específicos a adicionar",
96
96
  "description": "Placeholder text which describes the purpose of the textarea widget"
97
97
  },
98
98
  "aboutChangelog": {
@@ -264,15 +264,15 @@
264
264
  "description": "Short description for a checkbox in the options page"
265
265
  },
266
266
  "settingsBackupRestoreLabel": {
267
- "message": "Backup",
267
+ "message": "Cópia de segurança",
268
268
  "description": "The header text for the back up/restore section"
269
269
  },
270
270
  "settingsBackupRestoreSummary": {
271
- "message": "Back up your custom settings to a file, or restore your custom settings from a file.",
271
+ "message": "Faça uma cópia de segurança das suas definições personalizadas num ficheiro ou restaure as suas definições personalizadas a partir de um ficheiro.",
272
272
  "description": "A summary description of the back up/restore section."
273
273
  },
274
274
  "settingsBackupRestoreLegend": {
275
- "message": "Restoring will overwrite all your current custom settings.",
275
+ "message": "A restauração substituirá todas as suas definições personalizadas atuais.",
276
276
  "description": "Important information about the back up/restore section."
277
277
  },
278
278
  "findListsPlaceholder": {
@@ -364,7 +364,7 @@
364
364
  "description": "Text for buttons used to revert changes"
365
365
  },
366
366
  "addButton": {
367
- "message": "Add",
367
+ "message": "Adicionar",
368
368
  "description": "Text for buttons used to add content"
369
369
  },
370
370
  "importAndAppendButton": {
@@ -376,11 +376,11 @@
376
376
  "description": "Text for buttons used to export content"
377
377
  },
378
378
  "backupButton": {
379
- "message": "Back up…",
379
+ "message": "Criar cópia…",
380
380
  "description": "Text for buttons used to back up content"
381
381
  },
382
382
  "restoreButton": {
383
- "message": "Restore…",
383
+ "message": "Restaurar…",
384
384
  "description": "Text for buttons used to restore content"
385
385
  },
386
386
  "dnrRulesWarning": {
@@ -20,11 +20,11 @@
20
20
  "description": "appears as tab name in dashboard"
21
21
  },
22
22
  "customFiltersPageName": {
23
- "message": "Custom filters",
23
+ "message": "Filtre proprii",
24
24
  "description": "appears as tab name in dashboard"
25
25
  },
26
26
  "developPageName": {
27
- "message": "Develop",
27
+ "message": "Dezvoltă",
28
28
  "description": "appears as tab name in dashboard. Inspired from 'Develop' menu in Safari, see https://developer.apple.com/documentation/safari-developer-tools/develop-menu"
29
29
  },
30
30
  "aboutPageName": {
@@ -40,7 +40,7 @@
40
40
  "description": "Label in the popup panel for the current filtering mode"
41
41
  },
42
42
  "popupLocalToolsLabel": {
43
- "message": "On this website",
43
+ "message": "Pe acest website",
44
44
  "description": "Label in the popup panel for the local tools section"
45
45
  },
46
46
  "popupTipReport": {
@@ -88,11 +88,11 @@
88
88
  "description": "Header for a ruleset section in 'Filter lists pane'"
89
89
  },
90
90
  "customFiltersImportExportLabel": {
91
- "message": "Import / Export",
91
+ "message": "Importă / Exportă",
92
92
  "description": "Text label heading the import/export area of custom filters"
93
93
  },
94
94
  "customFiltersImportTextareaPlaceholder": {
95
- "message": "Paste here specific cosmetic filters to add",
95
+ "message": "Lipește aici filtre cosmetice specifice",
96
96
  "description": "Placeholder text which describes the purpose of the textarea widget"
97
97
  },
98
98
  "aboutChangelog": {
@@ -132,7 +132,7 @@
132
132
  "description": "First paragraph of 'Filter issues' section in Support pane"
133
133
  },
134
134
  "supportS5H": {
135
- "message": "Troubleshooting information",
135
+ "message": "Informații depanare",
136
136
  "description": "Label of 'Troubleshooting information' section in 'Report a filter issue' page"
137
137
  },
138
138
  "supportS6P1S1": {
@@ -256,11 +256,11 @@
256
256
  "description": "Short description for a checkbox in the options page"
257
257
  },
258
258
  "developerModeLabel": {
259
- "message": "Developer mode",
259
+ "message": "Mod dezvoltator",
260
260
  "description": "Label for a checkbox in the options page"
261
261
  },
262
262
  "developerModeLegend": {
263
- "message": "Enables access to features suitable for technical users.",
263
+ "message": "Permite accesul la funcții adecvate pentru utilizatorii tehnici.",
264
264
  "description": "Short description for a checkbox in the options page"
265
265
  },
266
266
  "settingsBackupRestoreLabel": {
@@ -268,11 +268,11 @@
268
268
  "description": "The header text for the back up/restore section"
269
269
  },
270
270
  "settingsBackupRestoreSummary": {
271
- "message": "Back up your custom settings to a file, or restore your custom settings from a file.",
271
+ "message": "Copiați setările personalizate într-un fișier sau restaurați setările personalizate dintr-un fișier.",
272
272
  "description": "A summary description of the back up/restore section."
273
273
  },
274
274
  "settingsBackupRestoreLegend": {
275
- "message": "Restoring will overwrite all your current custom settings.",
275
+ "message": "Restaurarea va suprascrie toate setările personalizate actuale.",
276
276
  "description": "Important information about the back up/restore section."
277
277
  },
278
278
  "findListsPlaceholder": {
@@ -316,63 +316,63 @@
316
316
  "description": "A button to navigate to the blocked page"
317
317
  },
318
318
  "zapperTipEnter": {
319
- "message": "Remove an element",
319
+ "message": "Elimina unui element",
320
320
  "description": "Tooltip for the button used to enter zapper mode"
321
321
  },
322
322
  "zapperTipQuit": {
323
- "message": "Exit element zapper mode",
323
+ "message": "Ieșire din modul zapper element",
324
324
  "description": "Tooltip for the button used to exit zapper mode"
325
325
  },
326
326
  "pickerTipEnter": {
327
- "message": "Create a custom filter",
327
+ "message": "Creați un filtru personalizat",
328
328
  "description": "Label for the menu entry to create cosmetic filters"
329
329
  },
330
330
  "unpickerTipEnter": {
331
- "message": "Remove a custom filter",
331
+ "message": "Șterge un filtru personalizat",
332
332
  "description": "Label for the menu entry to delete cosmetic filters"
333
333
  },
334
334
  "developDropdownLabel": {
335
- "message": "View:",
335
+ "message": "Vezi:",
336
336
  "description": "A label of a dropdown list"
337
337
  },
338
338
  "developOptionFilteringModeDetails": {
339
- "message": "Filtering mode details",
339
+ "message": "Detalii privind modul de filtrare",
340
340
  "description": "An option in a dropdown list"
341
341
  },
342
342
  "developOptionCustomDnrRules": {
343
- "message": "Custom DNR rules",
343
+ "message": "Reguli DNR personalizate",
344
344
  "description": "An option in a dropdown list"
345
345
  },
346
346
  "developOptionDnrRulesOf": {
347
- "message": "DNR rules of …",
347
+ "message": "Regulile DNR privind …",
348
348
  "description": "A section header in a dropdown list"
349
349
  },
350
350
  "developOptionDynamicRuleset": {
351
- "message": "Dynamic ruleset",
351
+ "message": "Set de reguli dinamice",
352
352
  "description": "An option in a dropdown list"
353
353
  },
354
354
  "developOptionSessionRuleset": {
355
- "message": "Session ruleset",
355
+ "message": "Set de reguli pentru sesiune",
356
356
  "description": "An option in a dropdown list"
357
357
  },
358
358
  "saveButton": {
359
- "message": "Save",
359
+ "message": "Salvați",
360
360
  "description": "Text for buttons used to save changes"
361
361
  },
362
362
  "revertButton": {
363
- "message": "Revert",
363
+ "message": "Reveniţi",
364
364
  "description": "Text for buttons used to revert changes"
365
365
  },
366
366
  "addButton": {
367
- "message": "Add",
367
+ "message": "Adaugă",
368
368
  "description": "Text for buttons used to add content"
369
369
  },
370
370
  "importAndAppendButton": {
371
- "message": "Import and append…",
371
+ "message": "Importați și adăugați…",
372
372
  "description": "Text for buttons used to import and append content"
373
373
  },
374
374
  "exportButton": {
375
- "message": "Export",
375
+ "message": "Exportă…",
376
376
  "description": "Text for buttons used to export content"
377
377
  },
378
378
  "backupButton": {
@@ -380,31 +380,31 @@
380
380
  "description": "Text for buttons used to back up content"
381
381
  },
382
382
  "restoreButton": {
383
- "message": "Restore…",
383
+ "message": "Restaurați…",
384
384
  "description": "Text for buttons used to restore content"
385
385
  },
386
386
  "dnrRulesWarning": {
387
- "message": "Do not add content from untrusted sources",
387
+ "message": "Nu adăugați conținut din surse nesigure",
388
388
  "description": "Short description of the DNR rules editor pane"
389
389
  },
390
390
  "dnrRulesCountInfo": {
391
- "message": "Number of registered rules: {count}",
391
+ "message": "Număr de reguli înregistrate: {count}",
392
392
  "description": "Short sentence to report the number of currently registered DNR rules"
393
393
  },
394
394
  "pickerSliderLabel": {
395
- "message": "Move the slider to select the best match",
395
+ "message": "Mutați cursorul pentru a selecta cea mai bună potrivire",
396
396
  "description": "Label to describe the purpose of the slider"
397
397
  },
398
398
  "pickerPick": {
399
- "message": "Pick",
399
+ "message": "Alege",
400
400
  "description": "Text for the button to re-enter element-picking mode"
401
401
  },
402
402
  "pickerPreview": {
403
- "message": "Preview",
403
+ "message": "Previzualizare",
404
404
  "description": "Text for the button to activate preview mode"
405
405
  },
406
406
  "pickerCreate": {
407
- "message": "Create",
407
+ "message": "Creează",
408
408
  "description": "Text for the button to create the filter"
409
409
  },
410
410
  "unpickerUsage": {
@@ -264,15 +264,15 @@
264
264
  "description": "Short description for a checkbox in the options page"
265
265
  },
266
266
  "settingsBackupRestoreLabel": {
267
- "message": "Rezervoj",
267
+ "message": "Kopja rezervë",
268
268
  "description": "The header text for the back up/restore section"
269
269
  },
270
270
  "settingsBackupRestoreSummary": {
271
- "message": "Krijoni kopje rezervë të parametrave personalizuara një skedar ose restauroni parametrat e personalizuara nga një skedar.",
271
+ "message": "Mbani një kopje rezervë të parametrave keni personalizuar ose riktheni parametrat e mëparshëm.",
272
272
  "description": "A summary description of the back up/restore section."
273
273
  },
274
274
  "settingsBackupRestoreLegend": {
275
- "message": "Restaurimi do të mbishkruajë gjitha parametrat tuaja aktuale të personalizuara.",
275
+ "message": "Rikthimi do të fshijë gjithë parametrat keni personalizuar.",
276
276
  "description": "Important information about the back up/restore section."
277
277
  },
278
278
  "findListsPlaceholder": {
@@ -380,7 +380,7 @@
380
380
  "description": "Text for buttons used to back up content"
381
381
  },
382
382
  "restoreButton": {
383
- "message": "Rivendos…",
383
+ "message": "Rikthej…",
384
384
  "description": "Text for buttons used to restore content"
385
385
  },
386
386
  "dnrRulesWarning": {
@@ -154,6 +154,17 @@ async function onPermissionsAdded(permissions) {
154
154
  }
155
155
  }
156
156
 
157
+ async function onPermissionsChanged(op, permissions) {
158
+ await isFullyInitialized;
159
+ const { pending } = onPermissionsChanged;
160
+ await Promise.all(pending);
161
+ const promise = op === 'removed'
162
+ ? onPermissionsRemoved()
163
+ : onPermissionsAdded(permissions);
164
+ pending.push(promise);
165
+ }
166
+ onPermissionsChanged.pending = [];
167
+
157
168
  /******************************************************************************/
158
169
 
159
170
  function setDeveloperMode(state) {
@@ -337,6 +348,12 @@ function onMessage(request, sender, callback) {
337
348
  });
338
349
  return true;
339
350
 
351
+ case 'hasBroadHostPermissions':
352
+ hasBroadHostPermissions().then(result => {
353
+ callback(result);
354
+ });
355
+ return true;
356
+
340
357
  case 'setAutoReload':
341
358
  rulesetConfig.autoReload = request.state && true || false;
342
359
  saveRulesetConfig().then(( ) => {
@@ -692,13 +709,13 @@ runtime.onMessage.addListener((request, sender, callback) => {
692
709
 
693
710
  browser.permissions.onRemoved.addListener((...args) => {
694
711
  isFullyInitialized.then(( ) => {
695
- onPermissionsRemoved(...args);
712
+ onPermissionsChanged('removed', ...args);
696
713
  });
697
714
  });
698
715
 
699
716
  browser.permissions.onAdded.addListener((...args) => {
700
717
  isFullyInitialized.then(( ) => {
701
- onPermissionsAdded(...args);
718
+ onPermissionsChanged('added', ...args);
702
719
  });
703
720
  });
704
721
 
@@ -365,17 +365,15 @@ export async function syncWithBrowserPermissions() {
365
365
  if ( afterMode > MODE_BASIC ) { return afterMode !== beforeMode; }
366
366
  const filteringModes = await getFilteringModeDetails();
367
367
  if ( allowedHostnames.has('all-urls') === false ) {
368
- const { optimal, complete } = filteringModes;
369
- for ( const hn of optimal ) {
370
- if ( allowedHostnames.has(hn) ) { continue; }
371
- if ( isDescendantHostnameOfIter(hn, allowedHostnames) ) { continue; }
372
- optimal.delete(hn);
368
+ const { none, basic, optimal, complete } = filteringModes;
369
+ for ( const hn of new Set([ ...optimal, ...complete ]) ) {
370
+ applyFilteringMode(filteringModes, hn, afterMode);
373
371
  modified = true;
374
372
  }
375
- for ( const hn of complete ) {
376
- if ( allowedHostnames.has(hn) ) { continue; }
377
- if ( isDescendantHostnameOfIter(hn, allowedHostnames) ) { continue; }
378
- complete.delete(hn);
373
+ for ( const hn of allowedHostnames ) {
374
+ if ( optimal.has(hn) || complete.has(hn) ) { continue; }
375
+ if ( basic.has(hn) || none.has(hn) ) { continue; }
376
+ applyFilteringMode(filteringModes, hn, MODE_OPTIMAL);
379
377
  modified = true;
380
378
  }
381
379
  if ( modified ) {
@@ -0,0 +1,33 @@
1
+ /*******************************************************************************
2
+
3
+ uBlock Origin Lite - a comprehensive, MV3-compliant content blocker
4
+ Copyright (C) 2025-present Raymond Hill
5
+
6
+ This program is free software: you can redistribute it and/or modify
7
+ it under the terms of the GNU General Public License as published by
8
+ the Free Software Foundation, either version 3 of the License, or
9
+ (at your option) any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with this program. If not, see {http://www.gnu.org/licenses/}.
18
+
19
+ Home: https://github.com/gorhill/uBlock
20
+ */
21
+
22
+ (api => {
23
+ if ( typeof api === 'object' ) { return; }
24
+ self.cssAPI = {
25
+ insert(css) {
26
+ chrome.runtime.sendMessage({
27
+ what: 'insertCSS',
28
+ css,
29
+ }).catch(( ) => {
30
+ });
31
+ },
32
+ };
33
+ })(self.cssAPI);