@browserless.io/browserless 2.33.0 → 2.34.0-beta-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 (503) hide show
  1. package/README.md +1 -1
  2. package/build/config.d.ts +1 -1
  3. package/build/config.js +1 -1
  4. package/build/http.d.ts +10 -0
  5. package/build/http.js +5 -0
  6. package/build/limiter.spec.js +1 -1
  7. package/build/routes/chrome/http/content.post.body.json +8 -8
  8. package/build/routes/chrome/http/pdf.post.body.json +8 -8
  9. package/build/routes/chrome/http/scrape.post.body.json +8 -8
  10. package/build/routes/chrome/http/screenshot.post.body.json +8 -8
  11. package/build/routes/chrome/tests/content.spec.js +12 -12
  12. package/build/routes/chrome/tests/page-websocket.spec.js +3 -3
  13. package/build/routes/chrome/tests/pdf.spec.js +13 -13
  14. package/build/routes/chrome/tests/performance.spec.js +4 -4
  15. package/build/routes/chrome/tests/scrape.spec.js +13 -13
  16. package/build/routes/chrome/tests/screenshot.spec.js +14 -14
  17. package/build/routes/chromium/http/content.post.body.json +8 -8
  18. package/build/routes/chromium/http/pdf.post.body.json +8 -8
  19. package/build/routes/chromium/http/scrape.post.body.json +8 -8
  20. package/build/routes/chromium/http/screenshot.post.body.json +8 -8
  21. package/build/routes/chromium/tests/content.spec.js +13 -13
  22. package/build/routes/chromium/tests/page-websocket.spec.js +3 -3
  23. package/build/routes/chromium/tests/pdf.spec.js +13 -13
  24. package/build/routes/chromium/tests/performance.spec.js +4 -4
  25. package/build/routes/chromium/tests/scrape.spec.js +13 -13
  26. package/build/routes/chromium/tests/screenshot.spec.js +14 -14
  27. package/build/routes/edge/http/content.post.body.json +8 -8
  28. package/build/routes/edge/http/pdf.post.body.json +8 -8
  29. package/build/routes/edge/http/scrape.post.body.json +8 -8
  30. package/build/routes/edge/http/screenshot.post.body.json +8 -8
  31. package/build/routes/edge/tests/content.spec.js +12 -12
  32. package/build/routes/edge/tests/page-websocket.spec.js +3 -3
  33. package/build/routes/edge/tests/pdf.spec.js +13 -13
  34. package/build/routes/edge/tests/performance.spec.js +4 -4
  35. package/build/routes/edge/tests/scrape.spec.js +13 -13
  36. package/build/routes/edge/tests/screenshot.spec.js +14 -14
  37. package/build/routes/management/http/kill.get.d.ts +1 -1
  38. package/build/routes/management/http/kill.get.query.json +0 -3
  39. package/build/routes/management/http/pressure.get.d.ts +1 -1
  40. package/build/routes/management/http/pressure.get.js +12 -4
  41. package/build/routes/management/http/sessions.get.d.ts +1 -1
  42. package/build/routes/management/http/sessions.get.query.json +0 -3
  43. package/build/routes/management/tests/management.spec.js +13 -13
  44. package/build/server.js +12 -4
  45. package/build/shim.d.ts +5 -0
  46. package/build/shim.js +13 -0
  47. package/build/shim.spec.js +28 -1
  48. package/build/types.d.ts +14 -0
  49. package/build/types.js +14 -0
  50. package/build/utils.js +1 -1
  51. package/extensions/ublocklite/_locales/ar/messages.json +8 -8
  52. package/extensions/ublocklite/_locales/be/messages.json +8 -8
  53. package/extensions/ublocklite/_locales/fi/messages.json +18 -18
  54. package/extensions/ublocklite/_locales/hi/messages.json +21 -21
  55. package/extensions/ublocklite/_locales/hu/messages.json +8 -8
  56. package/extensions/ublocklite/_locales/id/messages.json +15 -15
  57. package/extensions/ublocklite/_locales/ja/messages.json +23 -23
  58. package/extensions/ublocklite/_locales/nl/messages.json +1 -1
  59. package/extensions/ublocklite/_locales/pt_BR/messages.json +15 -15
  60. package/extensions/ublocklite/_locales/pt_PT/messages.json +18 -18
  61. package/extensions/ublocklite/_locales/th/messages.json +30 -30
  62. package/extensions/ublocklite/_locales/tr/messages.json +1 -1
  63. package/extensions/ublocklite/_locales/uk/messages.json +10 -10
  64. package/extensions/ublocklite/_locales/vi/messages.json +8 -8
  65. package/extensions/ublocklite/css/picker-ui.css +1 -1
  66. package/extensions/ublocklite/css/report.css +0 -8
  67. package/extensions/ublocklite/js/background.js +30 -6
  68. package/extensions/ublocklite/js/debug.js +8 -4
  69. package/extensions/ublocklite/js/develop.js +1 -1
  70. package/extensions/ublocklite/js/ext-compat.js +9 -2
  71. package/extensions/ublocklite/js/filter-lists.js +1 -2
  72. package/extensions/ublocklite/js/filter-manager.js +57 -23
  73. package/extensions/ublocklite/js/picker-ui.js +32 -41
  74. package/extensions/ublocklite/js/popup.js +10 -10
  75. package/extensions/ublocklite/js/redirect-resources.js +1 -0
  76. package/extensions/ublocklite/js/ro-dnr-editor.js +6 -1
  77. package/extensions/ublocklite/js/scripting/css-procedural-api.js +821 -0
  78. package/extensions/ublocklite/js/scripting/css-procedural.js +62 -718
  79. package/extensions/ublocklite/{rulesets/scripting/declarative/isr-0.js → js/scripting/css-user-terminate.js} +16 -13
  80. package/extensions/ublocklite/js/scripting/css-user.js +12 -1
  81. package/extensions/ublocklite/js/scripting/picker.js +46 -13
  82. package/extensions/ublocklite/js/scripting/tool-overlay.js +14 -8
  83. package/extensions/ublocklite/js/scripting/unpicker.js +5 -9
  84. package/extensions/ublocklite/js/scripting/zapper.js +1 -1
  85. package/extensions/ublocklite/js/scripting-manager.js +0 -65
  86. package/extensions/ublocklite/js/static-filtering-parser.js +2 -2
  87. package/extensions/ublocklite/js/tool-overlay-ui.js +1 -1
  88. package/extensions/ublocklite/js/unpicker-ui.js +16 -9
  89. package/extensions/ublocklite/js/zapper-ui.js +3 -2
  90. package/extensions/ublocklite/manifest.json +7 -2
  91. package/extensions/ublocklite/picker-ui.html +1 -1
  92. package/extensions/ublocklite/report.html +0 -1
  93. package/extensions/ublocklite/rulesets/generic-details.json +10 -14
  94. package/extensions/ublocklite/rulesets/main/adguard-mobile.json +3 -2
  95. package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +19 -10
  96. package/extensions/ublocklite/rulesets/main/annoyances-others.json +4 -3
  97. package/extensions/ublocklite/rulesets/main/annoyances-overlays.json +4 -4
  98. package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +1 -1
  99. package/extensions/ublocklite/rulesets/main/block-lan.json +2 -1
  100. package/extensions/ublocklite/rulesets/main/chn-0.json +22 -21
  101. package/extensions/ublocklite/rulesets/main/deu-0.json +6 -5
  102. package/extensions/ublocklite/rulesets/main/dpollock-0.json +5 -41
  103. package/extensions/ublocklite/rulesets/main/easylist.json +59 -35
  104. package/extensions/ublocklite/rulesets/main/easyprivacy.json +65 -12
  105. package/extensions/ublocklite/rulesets/main/fra-0.json +9 -11
  106. package/extensions/ublocklite/rulesets/main/hrv-0.json +5 -5
  107. package/extensions/ublocklite/rulesets/main/hun-0.json +1 -1
  108. package/extensions/ublocklite/rulesets/main/idn-0.json +8 -2
  109. package/extensions/ublocklite/rulesets/main/ind-0.json +30 -24
  110. package/extensions/ublocklite/rulesets/main/irn-0.json +44 -635
  111. package/extensions/ublocklite/rulesets/main/isr-0.json +1 -0
  112. package/extensions/ublocklite/rulesets/main/jpn-1.json +42 -26
  113. package/extensions/ublocklite/rulesets/main/kor-1.json +9 -4
  114. package/extensions/ublocklite/rulesets/main/mkd-0.json +1 -1
  115. package/extensions/ublocklite/rulesets/main/nld-0.json +2 -1
  116. package/extensions/ublocklite/rulesets/main/nor-0.json +14 -12
  117. package/extensions/ublocklite/rulesets/main/pgl.json +29 -12
  118. package/extensions/ublocklite/rulesets/main/pol-0.json +1 -1
  119. package/extensions/ublocklite/rulesets/main/rus-0.json +23 -30
  120. package/extensions/ublocklite/rulesets/main/rus-1.json +4 -2
  121. package/extensions/ublocklite/rulesets/main/spa-1.json +9 -32
  122. package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +13773 -14561
  123. package/extensions/ublocklite/rulesets/main/swe-1.json +39 -29
  124. package/extensions/ublocklite/rulesets/main/tur-0.json +39 -27
  125. package/extensions/ublocklite/rulesets/main/ublock-badware.json +63 -65
  126. package/extensions/ublocklite/rulesets/main/ublock-experimental.json +3 -0
  127. package/extensions/ublocklite/rulesets/main/ublock-filters.json +99 -41
  128. package/extensions/ublocklite/rulesets/main/ukr-0.json +5 -7
  129. package/extensions/ublocklite/rulesets/main/urlhaus-full.json +432 -1025
  130. package/extensions/ublocklite/rulesets/main/vie-1.json +50 -50
  131. package/extensions/ublocklite/rulesets/modify-headers/chn-0.json +3 -0
  132. package/extensions/ublocklite/rulesets/modify-headers/fra-0.json +1 -1
  133. package/extensions/ublocklite/rulesets/modify-headers/ublock-filters.json +3 -7
  134. package/extensions/ublocklite/rulesets/modify-headers/vie-1.json +1 -1
  135. package/extensions/ublocklite/rulesets/redirect/annoyances-overlays.json +1 -0
  136. package/extensions/ublocklite/rulesets/redirect/easyprivacy.json +16 -0
  137. package/extensions/ublocklite/rulesets/redirect/rus-0.json +2 -1
  138. package/extensions/ublocklite/rulesets/redirect/spa-1.json +1 -2
  139. package/extensions/ublocklite/rulesets/redirect/tur-0.json +0 -2
  140. package/extensions/ublocklite/rulesets/redirect/ublock-filters.json +17 -10
  141. package/extensions/ublocklite/rulesets/redirect/vie-1.json +5 -22
  142. package/extensions/ublocklite/rulesets/regex/chn-0.json +1 -1
  143. package/extensions/ublocklite/rulesets/regex/ita-0.json +1 -0
  144. package/extensions/ublocklite/rulesets/regex/jpn-1.json +1 -1
  145. package/extensions/ublocklite/rulesets/regex/tur-0.json +3 -1
  146. package/extensions/ublocklite/rulesets/regex/ublock-badware.json +1 -4
  147. package/extensions/ublocklite/rulesets/regex/ublock-filters.json +12 -9
  148. package/extensions/ublocklite/rulesets/regex/ukr-0.json +2 -2
  149. package/extensions/ublocklite/rulesets/removeparam/adguard-spyware-url.json +22 -11
  150. package/extensions/ublocklite/rulesets/removeparam/irn-0.json +27 -15
  151. package/extensions/ublocklite/rulesets/removeparam/rus-1.json +1 -1
  152. package/extensions/ublocklite/rulesets/removeparam/ublock-filters.json +1 -2
  153. package/extensions/ublocklite/rulesets/ruleset-details.json +281 -304
  154. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +3 -3
  155. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +2 -2
  156. package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +2 -2
  157. package/extensions/ublocklite/rulesets/scripting/generic/deu-0.js +1 -1
  158. package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +3 -3
  159. package/extensions/ublocklite/rulesets/scripting/generic/fra-0.js +2 -2
  160. package/extensions/ublocklite/rulesets/scripting/generic/hrv-0.js +1 -1
  161. package/extensions/ublocklite/rulesets/scripting/generic/idn-0.js +2 -2
  162. package/extensions/ublocklite/rulesets/scripting/generic/ind-0.js +2 -2
  163. package/extensions/ublocklite/rulesets/scripting/generic/irn-0.js +3 -3
  164. package/extensions/ublocklite/rulesets/scripting/generic/jpn-1.js +2 -2
  165. package/extensions/ublocklite/rulesets/scripting/generic/kor-1.js +2 -2
  166. package/extensions/ublocklite/rulesets/scripting/generic/nor-0.js +1 -1
  167. package/extensions/ublocklite/rulesets/scripting/generic/rou-1.js +2 -2
  168. package/extensions/ublocklite/rulesets/scripting/generic/swe-1.js +1 -1
  169. package/extensions/ublocklite/rulesets/scripting/generic/tur-0.js +1 -1
  170. package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +3 -3
  171. package/extensions/ublocklite/rulesets/scripting/generic/ukr-0.js +3 -3
  172. package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +2 -0
  173. package/extensions/ublocklite/rulesets/scripting/generichigh/easylist.css +3 -0
  174. package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +26 -0
  175. package/extensions/ublocklite/rulesets/scripting/generichigh/rus-0.css +2 -0
  176. package/extensions/ublocklite/rulesets/scripting/generichigh/tur-0.css +1 -0
  177. package/extensions/ublocklite/rulesets/scripting/generichigh/ublock-filters.css +0 -2
  178. package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +3 -3
  179. package/extensions/ublocklite/rulesets/scripting/procedural/alb-0.js +4 -4
  180. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +4 -4
  181. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-others.js +3 -3
  182. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-overlays.js +3 -3
  183. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-social.js +3 -3
  184. package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +3 -3
  185. package/extensions/ublocklite/rulesets/scripting/procedural/cze-0.js +3 -3
  186. package/extensions/ublocklite/rulesets/scripting/procedural/deu-0.js +1 -1
  187. package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
  188. package/extensions/ublocklite/rulesets/scripting/{declarative → procedural}/easyprivacy.js +5 -5
  189. package/extensions/ublocklite/rulesets/scripting/procedural/est-0.js +3 -3
  190. package/extensions/ublocklite/rulesets/scripting/procedural/fin-0.js +3 -3
  191. package/extensions/ublocklite/rulesets/scripting/procedural/fra-0.js +4 -4
  192. package/extensions/ublocklite/rulesets/scripting/procedural/grc-0.js +3 -3
  193. package/extensions/ublocklite/rulesets/scripting/procedural/hrv-0.js +3 -3
  194. package/extensions/ublocklite/rulesets/scripting/procedural/hun-0.js +3 -3
  195. package/extensions/ublocklite/rulesets/scripting/procedural/idn-0.js +3 -3
  196. package/extensions/ublocklite/rulesets/scripting/procedural/ind-0.js +3 -3
  197. package/extensions/ublocklite/rulesets/scripting/procedural/irn-0.js +3 -3
  198. package/extensions/ublocklite/rulesets/scripting/procedural/isl-0.js +1 -1
  199. package/extensions/ublocklite/rulesets/scripting/procedural/isr-0.js +3 -3
  200. package/extensions/ublocklite/rulesets/scripting/procedural/ita-0.js +1 -1
  201. package/extensions/ublocklite/rulesets/scripting/procedural/jpn-1.js +3 -3
  202. package/extensions/ublocklite/rulesets/scripting/procedural/kor-1.js +3 -3
  203. package/extensions/ublocklite/rulesets/scripting/procedural/ltu-0.js +3 -3
  204. package/extensions/ublocklite/rulesets/scripting/procedural/lva-0.js +1 -1
  205. package/extensions/ublocklite/rulesets/scripting/{declarative → procedural}/mkd-0.js +4 -4
  206. package/extensions/ublocklite/rulesets/scripting/procedural/nld-0.js +3 -3
  207. package/extensions/ublocklite/rulesets/scripting/procedural/nor-0.js +4 -4
  208. package/extensions/ublocklite/rulesets/scripting/procedural/pol-0.js +3 -3
  209. package/extensions/ublocklite/rulesets/scripting/procedural/rou-1.js +3 -3
  210. package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
  211. package/extensions/ublocklite/rulesets/scripting/procedural/rus-1.js +3 -3
  212. package/extensions/ublocklite/rulesets/scripting/procedural/spa-0.js +1 -1
  213. package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +4 -4
  214. package/extensions/ublocklite/rulesets/scripting/procedural/svn-0.js +1 -1
  215. package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
  216. package/extensions/ublocklite/rulesets/scripting/procedural/tha-0.js +1 -1
  217. package/extensions/ublocklite/rulesets/scripting/procedural/tur-0.js +4 -4
  218. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-badware.js +3 -3
  219. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
  220. package/extensions/ublocklite/rulesets/scripting/procedural/ubol-tests.js +1 -1
  221. package/extensions/ublocklite/rulesets/scripting/procedural/ukr-0.js +3 -3
  222. package/extensions/ublocklite/rulesets/scripting/procedural/vie-1.js +3 -3
  223. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.abort-current-script.js +4 -3
  224. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.abort-current-script.js +4 -3
  225. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.set-attr.js → annoyances-cookies.set-cookie-reload.js} +129 -108
  226. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
  227. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +2 -2
  228. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +2 -2
  229. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +2 -2
  230. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-local-storage-item.js +2 -2
  231. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-current-script.js +5 -4
  232. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +2 -2
  233. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setTimeout.js +2 -2
  234. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-window-open.js +1 -1
  235. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-node-text.js +2 -2
  236. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +2 -2
  237. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-cookie.js +2 -2
  238. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.abort-current-script.js +6 -5
  239. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.adjust-setTimeout.js +1 -1
  240. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.json-prune.js +3 -3
  241. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +2 -2
  242. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +2 -2
  243. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.set-constant.js +2 -2
  244. package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.abort-current-script.js +4 -3
  245. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.abort-current-script.js +5 -4
  246. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.set-local-storage-item.js +1 -1
  247. package/extensions/ublocklite/rulesets/scripting/scriptlet/fin-0.abort-current-script.js +4 -3
  248. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.abort-current-script.js +4 -3
  249. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.prevent-setTimeout.js → fra-0.prevent-requestAnimationFrame.js} +13 -49
  250. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setTimeout.js +2 -2
  251. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-window-open.js +1 -1
  252. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.remove-node-text.js → fra-0.remove-node-text.js} +3 -3
  253. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.abort-current-script.js +6 -5
  254. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.abort-on-property-read.js → hun-0.set-local-storage-item.js} +92 -62
  255. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.abort-current-script.js +7 -6
  256. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.abort-on-property-read.js +3 -3
  257. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.addEventListener-defuser.js +2 -2
  258. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-local-storage-item.js +2 -2
  259. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-session-storage-item.js +2 -2
  260. package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.abort-current-script.js +4 -3
  261. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.abort-current-script.js +6 -5
  262. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.addEventListener-defuser.js +2 -2
  263. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.adjust-setTimeout.js +1 -1
  264. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.href-sanitizer.js +2 -2
  265. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.remove-attr.js +2 -2
  266. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.remove-node-text.js +2 -2
  267. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.set-constant.js +2 -2
  268. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.abort-current-script.js +4 -3
  269. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-constant.js +2 -2
  270. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.abort-on-stack-trace.js → kor-1.spoof-css.js} +113 -112
  271. package/extensions/ublocklite/rulesets/scripting/scriptlet/ltu-0.abort-current-script.js +4 -3
  272. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.abort-current-script.js +4 -3
  273. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-setTimeout.js +2 -2
  274. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.prevent-xhr.js → nld-0.prevent-xhr.js} +3 -3
  275. package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.abort-current-script.js +4 -3
  276. package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.abort-current-script.js +4 -3
  277. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.abort-current-script.js +4 -3
  278. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setInterval.js +2 -2
  279. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setTimeout.js +2 -2
  280. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-window-open.js +2 -2
  281. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-current-script.js +5 -4
  282. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-read.js +2 -2
  283. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +3 -3
  284. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.adjust-setInterval.js +1 -1
  285. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.json-prune-fetch-response.js +2 -2
  286. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-fetch.js +3 -3
  287. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-node-text.js +2 -2
  288. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
  289. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-xhr.js +1 -1
  290. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-current-script.js +6 -5
  291. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-read.js +2 -2
  292. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-write.js +2 -2
  293. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +2 -2
  294. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.adjust-setTimeout.js +2 -2
  295. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +2 -2
  296. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setTimeout.js +2 -2
  297. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +1 -1
  298. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.remove-attr.js +2 -2
  299. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-constant.js +2 -2
  300. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-local-storage-item.js +1 -1
  301. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.abort-current-script.js +5 -4
  302. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.noeval-if.js +1 -1
  303. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.set-constant.js +1 -1
  304. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-current-script.js +4 -3
  305. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-read.js +1 -1
  306. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-write.js +2 -2
  307. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.adjust-setInterval.js +1 -1
  308. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.adjust-setTimeout.js → tur-0.adjust-setTimeout.js} +4 -4
  309. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.m3u-prune.js +2 -2
  310. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +1 -1
  311. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-attr.js +2 -2
  312. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +2 -2
  313. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.abort-current-script.js +4 -3
  314. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-json-edit-xhr-request.js +795 -0
  315. package/extensions/ublocklite/rulesets/scripting/scriptlet/{tur-0.set-attr.js → ublock-experimental.trusted-replace-node-text.js} +144 -119
  316. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +7 -6
  317. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +2 -2
  318. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-write.js +2 -2
  319. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +3 -3
  320. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +3 -3
  321. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +3 -3
  322. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.js +2 -2
  323. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.close-window.js +3 -3
  324. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.href-sanitizer.js +2 -2
  325. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-fetch-response.js +1 -1
  326. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune.js +2 -2
  327. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.jsonl-edit-xhr-response.js +2 -2
  328. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +2 -2
  329. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.nowebrtc.js +1 -1
  330. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.close-window.js → ublock-filters.prevent-canvas.js} +14 -21
  331. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +2 -2
  332. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +2 -2
  333. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +3 -3
  334. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +2 -2
  335. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +2 -2
  336. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +2 -2
  337. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-attr.js +2 -2
  338. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-cookie.js +2 -2
  339. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +3 -3
  340. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
  341. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-local-storage-item.js +2 -2
  342. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-session-storage-item.js +2 -2
  343. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-click-element.js +2 -2
  344. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-request.js +884 -0
  345. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-response.js +887 -0
  346. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-override-element-method.js +3 -3
  347. package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.prevent-fetch.js → ublock-filters.trusted-prevent-fetch.js} +7 -7
  348. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +2 -2
  349. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-fetch-response.js +2 -2
  350. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +3 -3
  351. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +3 -3
  352. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-attr.js +2 -2
  353. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-constant.js +4 -4
  354. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-cookie.js +3 -3
  355. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-local-storage-item.js +1 -1
  356. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +2 -2
  357. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.abort-current-script.js +4 -3
  358. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.abort-on-property-read.js +1 -1
  359. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +6 -5
  360. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +2 -2
  361. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.set-constant.js +1 -1
  362. package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
  363. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
  364. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +3 -3
  365. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
  366. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
  367. package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
  368. package/extensions/ublocklite/rulesets/scripting/specific/cze-0.js +1 -1
  369. package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
  370. package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
  371. package/extensions/ublocklite/rulesets/scripting/{declarative/ubol-tests.js → specific/easyprivacy.js} +7 -7
  372. package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
  373. package/extensions/ublocklite/rulesets/scripting/specific/fra-0.js +3 -3
  374. package/extensions/ublocklite/rulesets/scripting/specific/hrv-0.js +3 -3
  375. package/extensions/ublocklite/rulesets/scripting/specific/hun-0.js +3 -3
  376. package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
  377. package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
  378. package/extensions/ublocklite/rulesets/scripting/specific/irn-0.js +3 -3
  379. package/extensions/ublocklite/rulesets/scripting/specific/isr-0.js +3 -3
  380. package/extensions/ublocklite/rulesets/scripting/specific/ita-0.js +3 -3
  381. package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
  382. package/extensions/ublocklite/rulesets/scripting/specific/kor-1.js +3 -3
  383. package/extensions/ublocklite/rulesets/scripting/specific/nld-0.js +3 -3
  384. package/extensions/ublocklite/rulesets/scripting/specific/nor-0.js +3 -3
  385. package/extensions/ublocklite/rulesets/scripting/specific/pol-0.js +3 -3
  386. package/extensions/ublocklite/rulesets/scripting/specific/rou-1.js +3 -3
  387. package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
  388. package/extensions/ublocklite/rulesets/scripting/specific/spa-1.js +3 -3
  389. package/extensions/ublocklite/rulesets/scripting/specific/swe-1.js +3 -3
  390. package/extensions/ublocklite/rulesets/scripting/specific/tur-0.js +3 -3
  391. package/extensions/ublocklite/rulesets/scripting/specific/ublock-filters.js +3 -3
  392. package/extensions/ublocklite/rulesets/scripting/specific/ukr-0.js +3 -3
  393. package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
  394. package/extensions/ublocklite/rulesets/scriptlet-details.json +265 -553
  395. package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +6 -1
  396. package/extensions/ublocklite/rulesets/strictblock/annoyances-cookies.json +0 -1
  397. package/extensions/ublocklite/rulesets/strictblock/chn-0.json +235 -1
  398. package/extensions/ublocklite/rulesets/strictblock/dpollock-0.json +5 -41
  399. package/extensions/ublocklite/rulesets/strictblock/easylist.json +13 -14
  400. package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +53 -3
  401. package/extensions/ublocklite/rulesets/strictblock/fra-0.json +236 -31
  402. package/extensions/ublocklite/rulesets/strictblock/hun-0.json +1 -0
  403. package/extensions/ublocklite/rulesets/strictblock/irn-0.json +8 -251
  404. package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +174 -166
  405. package/extensions/ublocklite/rulesets/strictblock/kor-1.json +4 -0
  406. package/extensions/ublocklite/rulesets/strictblock/mkd-0.json +1 -0
  407. package/extensions/ublocklite/rulesets/strictblock/nor-0.json +1 -1
  408. package/extensions/ublocklite/rulesets/strictblock/pgl.json +29 -12
  409. package/extensions/ublocklite/rulesets/strictblock/pol-0.json +1 -0
  410. package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +13773 -14561
  411. package/extensions/ublocklite/rulesets/strictblock/swe-1.json +3 -55
  412. package/extensions/ublocklite/rulesets/strictblock/tur-0.json +0 -1
  413. package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +646 -641
  414. package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +1 -1
  415. package/extensions/ublocklite/rulesets/strictblock/ukr-0.json +1 -4
  416. package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +432 -1025
  417. package/extensions/ublocklite/rulesets/strictblock/vie-1.json +2 -2
  418. package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +60 -2
  419. package/extensions/ublocklite/ublock.zip +0 -0
  420. package/extensions/ublocklite/web_accessible_resources/fingerprint2.js +1 -1
  421. package/package.json +12 -12
  422. package/src/config.ts +1 -1
  423. package/src/http.ts +5 -0
  424. package/src/limiter.spec.ts +1 -1
  425. package/src/routes/chrome/tests/content.spec.ts +12 -12
  426. package/src/routes/chrome/tests/page-websocket.spec.ts +3 -3
  427. package/src/routes/chrome/tests/pdf.spec.ts +13 -13
  428. package/src/routes/chrome/tests/performance.spec.ts +4 -4
  429. package/src/routes/chrome/tests/scrape.spec.ts +13 -13
  430. package/src/routes/chrome/tests/screenshot.spec.ts +14 -14
  431. package/src/routes/chromium/tests/content.spec.ts +13 -13
  432. package/src/routes/chromium/tests/page-websocket.spec.ts +3 -3
  433. package/src/routes/chromium/tests/pdf.spec.ts +13 -13
  434. package/src/routes/chromium/tests/performance.spec.ts +4 -4
  435. package/src/routes/chromium/tests/scrape.spec.ts +13 -13
  436. package/src/routes/chromium/tests/screenshot.spec.ts +14 -14
  437. package/src/routes/edge/tests/content.spec.ts +12 -12
  438. package/src/routes/edge/tests/page-websocket.spec.ts +3 -3
  439. package/src/routes/edge/tests/pdf.spec.ts +13 -13
  440. package/src/routes/edge/tests/performance.spec.ts +4 -4
  441. package/src/routes/edge/tests/scrape.spec.ts +13 -13
  442. package/src/routes/edge/tests/screenshot.spec.ts +14 -14
  443. package/src/routes/management/http/kill.get.ts +1 -1
  444. package/src/routes/management/http/pressure.get.ts +15 -3
  445. package/src/routes/management/http/sessions.get.ts +1 -1
  446. package/src/routes/management/tests/management.spec.ts +13 -13
  447. package/src/server.ts +17 -3
  448. package/src/shim.spec.ts +40 -1
  449. package/src/shim.ts +17 -0
  450. package/src/types.ts +25 -0
  451. package/src/utils.ts +1 -1
  452. package/static/docs/swagger.json +247 -38
  453. package/static/docs/swagger.min.json +246 -37
  454. package/static/function/client.js +46 -8
  455. package/static/function/index.html +46 -8
  456. package/extensions/ublocklite/js/scripting/css-declarative.js +0 -116
  457. package/extensions/ublocklite/rulesets/modify-headers/irn-0.json +0 -45
  458. package/extensions/ublocklite/rulesets/redirect/irn-0.json +0 -73
  459. package/extensions/ublocklite/rulesets/regex/irn-0.json +0 -22
  460. package/extensions/ublocklite/rulesets/scripting/declarative/adguard-mobile.js +0 -42
  461. package/extensions/ublocklite/rulesets/scripting/declarative/alb-0.js +0 -42
  462. package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-cookies.js +0 -42
  463. package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-others.js +0 -42
  464. package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-overlays.js +0 -42
  465. package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-social.js +0 -42
  466. package/extensions/ublocklite/rulesets/scripting/declarative/chn-0.js +0 -42
  467. package/extensions/ublocklite/rulesets/scripting/declarative/cze-0.js +0 -42
  468. package/extensions/ublocklite/rulesets/scripting/declarative/easylist.js +0 -42
  469. package/extensions/ublocklite/rulesets/scripting/declarative/est-0.js +0 -42
  470. package/extensions/ublocklite/rulesets/scripting/declarative/fin-0.js +0 -42
  471. package/extensions/ublocklite/rulesets/scripting/declarative/fra-0.js +0 -42
  472. package/extensions/ublocklite/rulesets/scripting/declarative/grc-0.js +0 -42
  473. package/extensions/ublocklite/rulesets/scripting/declarative/hrv-0.js +0 -42
  474. package/extensions/ublocklite/rulesets/scripting/declarative/hun-0.js +0 -42
  475. package/extensions/ublocklite/rulesets/scripting/declarative/idn-0.js +0 -42
  476. package/extensions/ublocklite/rulesets/scripting/declarative/irn-0.js +0 -42
  477. package/extensions/ublocklite/rulesets/scripting/declarative/jpn-1.js +0 -42
  478. package/extensions/ublocklite/rulesets/scripting/declarative/kor-1.js +0 -42
  479. package/extensions/ublocklite/rulesets/scripting/declarative/ltu-0.js +0 -42
  480. package/extensions/ublocklite/rulesets/scripting/declarative/nld-0.js +0 -42
  481. package/extensions/ublocklite/rulesets/scripting/declarative/nor-0.js +0 -42
  482. package/extensions/ublocklite/rulesets/scripting/declarative/pol-0.js +0 -42
  483. package/extensions/ublocklite/rulesets/scripting/declarative/rou-1.js +0 -42
  484. package/extensions/ublocklite/rulesets/scripting/declarative/rus-0.js +0 -42
  485. package/extensions/ublocklite/rulesets/scripting/declarative/rus-1.js +0 -42
  486. package/extensions/ublocklite/rulesets/scripting/declarative/spa-1.js +0 -42
  487. package/extensions/ublocklite/rulesets/scripting/declarative/swe-1.js +0 -42
  488. package/extensions/ublocklite/rulesets/scripting/declarative/tur-0.js +0 -42
  489. package/extensions/ublocklite/rulesets/scripting/declarative/ublock-badware.js +0 -42
  490. package/extensions/ublocklite/rulesets/scripting/declarative/ublock-filters.js +0 -42
  491. package/extensions/ublocklite/rulesets/scripting/declarative/ukr-0.js +0 -42
  492. package/extensions/ublocklite/rulesets/scripting/declarative/vie-1.js +0 -42
  493. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-fetch.js +0 -553
  494. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-current-script.js +0 -451
  495. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-on-property-write.js +0 -347
  496. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.addEventListener-defuser.js +0 -498
  497. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.adjust-setInterval.js +0 -332
  498. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.href-sanitizer.js +0 -541
  499. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.json-prune.js +0 -506
  500. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-window-open.js +0 -471
  501. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.remove-attr.js +0 -405
  502. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.remove-cookie.js +0 -376
  503. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-constant.js +0 -541
@@ -4,11 +4,11 @@
4
4
  "description": "extension name."
5
5
  },
6
6
  "extShortDesc": {
7
- "message": "ตัวบล็อกเนื้อหาที่ไม่ต้องขออนุญาต บล็อกโฆษณา ตัวติดตาม ตัวขุด และอื่น ๆ ทันทีหลังจากติดตั้ง",
7
+ "message": "ตัวบล็อกเนื้อหาที่มีประสิทธิภาพ บล็อกโฆษณา ตัวติดตาม ตัวขุดเหมือง และอื่นๆ ทันทีที่ติดตั้ง",
8
8
  "description": "this will be in the Chrome web store: must be 132 characters or less"
9
9
  },
10
10
  "perRulesetStats": {
11
- "message": "{{ruleCount}} เงื่อนไข, แปลงมาจาก {{filterCount}} ตัวกรองเครือข่าย",
11
+ "message": "{{ruleCount}} กฎ แปลงจาก {{filterCount}} ตัวกรองเครือข่าย",
12
12
  "description": "Appears aside each filter list in the _3rd-party filters_ pane"
13
13
  },
14
14
  "dashboardName": {
@@ -20,11 +20,11 @@
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": {
27
- "message": "เกี่ยวกับเรา",
27
+ "message": "เกี่ยวกับ",
28
28
  "description": "appears as tab name in dashboard"
29
29
  },
30
30
  "aboutPrivacyPolicy": {
@@ -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": {
@@ -108,7 +108,7 @@
108
108
  "description": "Link text to uBO's own filter lists repo"
109
109
  },
110
110
  "aboutDependencies": {
111
- "message": "External dependencies (GPLv3-compatible):",
111
+ "message": "การพึ่งพิงภายนอก (เข้ากันได้กับ GPLv3):",
112
112
  "description": "Shown in the About pane"
113
113
  },
114
114
  "supportS6H": {
@@ -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": {
@@ -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": "กฎ DNR ของ…",
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
  }
@@ -364,7 +364,7 @@
364
364
  "description": "Text for the button to re-enter element-picking mode"
365
365
  },
366
366
  "pickerPreview": {
367
- "message": "Önizle",
367
+ "message": "Ön İzle",
368
368
  "description": "Text for the button to activate preview mode"
369
369
  },
370
370
  "pickerCreate": {
@@ -304,31 +304,31 @@
304
304
  "description": "Label for the menu entry to create cosmetic filters"
305
305
  },
306
306
  "unpickerTipEnter": {
307
- "message": "Видалити власний фільтр",
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": "Правила DNR для…",
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": {
@@ -348,7 +348,7 @@
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": {
@@ -356,7 +356,7 @@
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": {
@@ -372,7 +372,7 @@
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
  }
@@ -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": "Trên trang web này",
40
40
  "description": "Label in the popup panel for the local tools section"
41
41
  },
42
42
  "popupTipReport": {
@@ -300,11 +300,11 @@
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": "Tạo một bộ lọc tùy chỉnh",
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": "Xóa một bộ lọc tuỳ chỉnh",
308
308
  "description": "Label for the menu entry to delete cosmetic filters"
309
309
  },
310
310
  "developDropdownLabel": {
@@ -356,23 +356,23 @@
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": "Di chuyển thanh trượt để chọn kết quả phù hợp nhất",
360
360
  "description": "Label to describe the purpose of the slider"
361
361
  },
362
362
  "pickerPick": {
363
- "message": "Pick",
363
+ "message": "Chọn",
364
364
  "description": "Text for the button to re-enter element-picking mode"
365
365
  },
366
366
  "pickerPreview": {
367
- "message": "Preview",
367
+ "message": "Xem trước",
368
368
  "description": "Text for the button to activate preview mode"
369
369
  },
370
370
  "pickerCreate": {
371
- "message": "Create",
371
+ "message": "Tạo",
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": "Chọn một bộ lọc bên dưới để đánh dấu các phần tử phù hợp trong trang web. Nhấp vào thùng rác để xóa bộ lọc.",
376
376
  "description": "Summary description on how to use the tool to remove custom filters"
377
377
  }
378
378
  }
@@ -76,7 +76,7 @@
76
76
  #ubol-picker #candidateFilters {
77
77
  font-family: monospace;
78
78
  font-size: small;
79
- max-height: min(20em, 40vh);
79
+ max-height: min(20em, 30vh);
80
80
  min-height: 6em;
81
81
  overflow-y: auto;
82
82
  word-break: break-all;
@@ -1,11 +1,3 @@
1
- :root .safari {
2
- display: none;
3
- }
4
-
5
- :root.safari .safari {
6
- display: initial;
7
- }
8
-
9
1
  .warning {
10
2
  color: var(--info2-ink);
11
3
  }
@@ -37,7 +37,8 @@ import {
37
37
  injectCustomFilters,
38
38
  removeCustomFilter,
39
39
  selectorsFromCustomFilters,
40
- uninjectCustomFilters,
40
+ startCustomFilters,
41
+ terminateCustomFilters,
41
42
  } from './filter-manager.js';
42
43
 
43
44
  import {
@@ -199,6 +200,20 @@ function onMessage(request, sender, callback) {
199
200
  return false;
200
201
  }
201
202
 
203
+ case 'startCustomFilters':
204
+ if ( frameId === false ) { return false; }
205
+ startCustomFilters(tabId, frameId).then(( ) => {
206
+ callback();
207
+ });
208
+ return true;
209
+
210
+ case 'terminateCustomFilters':
211
+ if ( frameId === false ) { return false; }
212
+ terminateCustomFilters(tabId, frameId).then(( ) => {
213
+ callback();
214
+ });
215
+ return true;
216
+
202
217
  case 'injectCustomFilters':
203
218
  if ( frameId === false ) { return false; }
204
219
  injectCustomFilters(tabId, frameId, request.hostname).then(selectors => {
@@ -206,9 +221,14 @@ function onMessage(request, sender, callback) {
206
221
  });
207
222
  return true;
208
223
 
209
- case 'uninjectCustomFilters':
210
- if ( frameId === false ) { return false; }
211
- uninjectCustomFilters(tabId, frameId, request.hostname).then(( ) => {
224
+ case 'injectCSSProceduralAPI':
225
+ browser.scripting.executeScript({
226
+ files: [ '/js/scripting/css-procedural-api.js' ],
227
+ target: { tabId, frameIds: [ frameId ] },
228
+ injectImmediately: true,
229
+ }).catch(reason => {
230
+ console.log(reason);
231
+ }).then(( ) => {
212
232
  callback();
213
233
  });
214
234
  return true;
@@ -321,7 +341,7 @@ function onMessage(request, sender, callback) {
321
341
  case 'popupPanelData': {
322
342
  Promise.all([
323
343
  hasBroadHostPermissions(),
324
- getFilteringMode(request.normalHostname),
344
+ getFilteringMode(request.hostname),
325
345
  adminReadEx('disabledFeatures'),
326
346
  hasCustomFilters(request.hostname),
327
347
  ]).then(results => {
@@ -492,7 +512,11 @@ function onCommand(command, tab) {
492
512
  case 'enter-picker-mode': {
493
513
  if ( browser.scripting === undefined ) { return; }
494
514
  browser.scripting.executeScript({
495
- files: [ '/js/scripting/tool-overlay.js', '/js/scripting/picker.js' ],
515
+ files: [
516
+ '/js/scripting/css-procedural-api.js',
517
+ '/js/scripting/tool-overlay.js',
518
+ '/js/scripting/picker.js',
519
+ ],
496
520
  target: { tabId: tab.id },
497
521
  });
498
522
  break;
@@ -19,7 +19,7 @@
19
19
  Home: https://github.com/gorhill/uBlock
20
20
  */
21
21
 
22
- import { INITIATOR_DOMAINS, dnr } from './ext-compat.js';
22
+ import { dnr, normalizeDNRRules } from './ext-compat.js';
23
23
  import { browser } from './ext.js';
24
24
 
25
25
  /******************************************************************************/
@@ -62,7 +62,11 @@ const getRuleset = async rulesetId => {
62
62
  } else {
63
63
  const response = await fetch(`/rulesets/main/${rulesetId}.json`).catch(( ) => undefined);
64
64
  if ( response === undefined ) { return; }
65
- rules = await response.json().catch(( ) => undefined);
65
+ rules = await response.json().catch(( ) =>
66
+ undefined
67
+ ).then(rules =>
68
+ normalizeDNRRules(rules)
69
+ );
66
70
  }
67
71
  if ( Array.isArray(rules) === false ) { return; }
68
72
  const ruleset = new Map();
@@ -72,8 +76,8 @@ const getRuleset = async rulesetId => {
72
76
  if ( condition.requestDomains ) {
73
77
  condition.requestDomains = pruneLongLists(condition.requestDomains);
74
78
  }
75
- if ( condition[INITIATOR_DOMAINS] ) {
76
- condition[INITIATOR_DOMAINS] = pruneLongLists(condition[INITIATOR_DOMAINS]);
79
+ if ( condition.initiatorDomains ) {
80
+ condition.initiatorDomains = pruneLongLists(condition.initiatorDomains);
77
81
  }
78
82
  }
79
83
  const ruleId = rule.id;
@@ -508,7 +508,7 @@ class Editor {
508
508
  }
509
509
  }
510
510
  view.dispatch({
511
- selection: { anchor: from, head: to+1 }
511
+ selection: { anchor: from, head: Math.min(to+1, doc.length) }
512
512
  });
513
513
  view.focus();
514
514
  return true;
@@ -21,8 +21,6 @@
21
21
 
22
22
  export const webext = self.browser || self.chrome;
23
23
  export const dnr = webext.declarativeNetRequest || {};
24
- export const INITIATOR_DOMAINS = 'initiatorDomains';
25
- export const EXCLUDED_INITIATOR_DOMAINS = 'excludedInitiatorDomains';
26
24
 
27
25
  /******************************************************************************/
28
26
 
@@ -36,6 +34,15 @@ const isSameRules = (a, b) => {
36
34
 
37
35
  /******************************************************************************/
38
36
 
37
+ export function normalizeDNRRules(rules, ruleIds) {
38
+ if ( Array.isArray(rules) === false ) { return rules; }
39
+ return Array.isArray(ruleIds)
40
+ ? rules.filter(rule => ruleIds.includes(rule.id))
41
+ : rules;
42
+ }
43
+
44
+ /******************************************************************************/
45
+
39
46
  dnr.setAllowAllRules = async function(id, allowed, notAllowed, reverse, priority) {
40
47
  const [
41
48
  beforeDynamicRules,
@@ -144,11 +144,10 @@ export function renderFilterLists(rulesetData) {
144
144
  .replace('{{filterCount}}', renderNumber(stats.filterCount));
145
145
  const fromAdmin = isAdminRuleset(ruleset.id);
146
146
  dom.cl.toggle(listEntry, 'fromAdmin', fromAdmin);
147
- const disabled = stats.ruleCount === 0 || fromAdmin;
148
147
  dom.attr(
149
148
  qs$(listEntry, '.input.checkbox input'),
150
149
  'disabled',
151
- disabled ? '' : null
150
+ fromAdmin ? '' : null
152
151
  );
153
152
  };
154
153
 
@@ -50,7 +50,9 @@ export async function selectorsFromCustomFilters(hostname) {
50
50
  for ( let i = 0; i < promises.length; i++ ) {
51
51
  const selectors = results[i];
52
52
  if ( selectors === undefined ) { continue; }
53
- selectors.forEach(selector => { out.push(selector.slice(1)); });
53
+ selectors.forEach(selector => {
54
+ out.push(selector.startsWith('0') ? selector.slice(1) : selector);
55
+ });
54
56
  }
55
57
  return out.sort();
56
58
  }
@@ -64,38 +66,71 @@ export async function hasCustomFilters(hostname) {
64
66
 
65
67
  /******************************************************************************/
66
68
 
67
- export async function injectCustomFilters(tabId, frameId, hostname) {
68
- const selectors = await selectorsFromCustomFilters(hostname);
69
- if ( selectors.length === 0 ) { return; }
70
- await browser.scripting.insertCSS({
71
- css: `${selectors.join(',\n')}{display:none!important;}`,
72
- origin: 'USER',
69
+ async function getAllCustomFilterKeys() {
70
+ const storageKeys = await localKeys() || [];
71
+ return storageKeys.filter(a => a.startsWith('site.'));
72
+ }
73
+
74
+ /******************************************************************************/
75
+
76
+ export function startCustomFilters(tabId, frameId) {
77
+ return browser.scripting.executeScript({
78
+ files: [ '/js/scripting/css-user.js' ],
73
79
  target: { tabId, frameIds: [ frameId ] },
80
+ injectImmediately: true,
74
81
  }).catch(reason => {
75
82
  console.log(reason);
76
- });
77
- return selectors;
83
+ })
84
+ }
85
+
86
+ export function terminateCustomFilters(tabId, frameId) {
87
+ return browser.scripting.executeScript({
88
+ files: [ '/js/scripting/css-user-terminate.js' ],
89
+ target: { tabId, frameIds: [ frameId ] },
90
+ injectImmediately: true,
91
+ }).catch(reason => {
92
+ console.log(reason);
93
+ })
78
94
  }
79
95
 
80
96
  /******************************************************************************/
81
97
 
82
- export async function uninjectCustomFilters(tabId, frameId, hostname) {
98
+ export async function injectCustomFilters(tabId, frameId, hostname) {
83
99
  const selectors = await selectorsFromCustomFilters(hostname);
84
100
  if ( selectors.length === 0 ) { return; }
85
- return browser.scripting.removeCSS({
86
- css: `${selectors.join(',\n')}{display:none!important;}`,
87
- origin: 'USER',
88
- target: { tabId, frameIds: [ frameId ] },
89
- }).catch(reason => {
90
- console.log(reason);
91
- });
101
+ const promises = [];
102
+ const plainSelectors = selectors.filter(a => a.startsWith('{') === false);
103
+ if ( plainSelectors.length !== 0 ) {
104
+ promises.push(
105
+ browser.scripting.insertCSS({
106
+ css: `${plainSelectors.join(',\n')}{display:none!important;}`,
107
+ origin: 'USER',
108
+ target: { tabId, frameIds: [ frameId ] },
109
+ }).catch(reason => {
110
+ console.log(reason);
111
+ })
112
+ );
113
+ }
114
+ const proceduralSelectors = selectors.filter(a => a.startsWith('{'));
115
+ if ( proceduralSelectors.length !== 0 ) {
116
+ promises.push(
117
+ browser.scripting.executeScript({
118
+ files: [ '/js/scripting/css-procedural-api.js' ],
119
+ target: { tabId, frameIds: [ frameId ] },
120
+ injectImmediately: true,
121
+ }).catch(reason => {
122
+ console.log(reason);
123
+ })
124
+ );
125
+ }
126
+ await Promise.all(promises);
127
+ return { plainSelectors, proceduralSelectors };
92
128
  }
93
129
 
94
130
  /******************************************************************************/
95
131
 
96
132
  export async function registerCustomFilters(context) {
97
- const storageKeys = await localKeys() || [];
98
- const siteKeys = storageKeys.filter(a => a.startsWith('site.'));
133
+ const siteKeys = await getAllCustomFilterKeys();
99
134
  if ( siteKeys.length === 0 ) { return; }
100
135
 
101
136
  const { none } = context.filteringModeDetails;
@@ -133,9 +168,8 @@ export async function registerCustomFilters(context) {
133
168
  export async function addCustomFilter(hostname, selector) {
134
169
  const key = `site.${hostname}`;
135
170
  const selectors = await localRead(key) || [];
136
- const filter = `0${selector}`;
137
- if ( selectors.includes(filter) ) { return false; }
138
- selectors.push(filter);
171
+ if ( selectors.includes(selector) ) { return false; }
172
+ selectors.push(selector);
139
173
  selectors.sort();
140
174
  await localWrite(key, selectors);
141
175
  return true;
@@ -147,7 +181,7 @@ export async function removeCustomFilter(hostname, selector) {
147
181
  const key = `site.${hostname}`;
148
182
  const selectors = await localRead(key);
149
183
  if ( selectors === undefined ) { return false; }
150
- const i = selectors.indexOf(`0${selector}`);
184
+ const i = selectors.indexOf(selector);
151
185
  if ( i === -1 ) { return false; }
152
186
  selectors.splice(i, 1);
153
187
  await selectors.length !== 0