@browserless.io/browserless 2.38.1 → 2.38.2
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.
- package/CHANGELOG.md +26 -1
- package/build/browsers/index.js +9 -8
- package/build/routes/management/http/kill.get.js +2 -2
- package/build/shared/utils/function/handler.js +2 -2
- package/build/utils.d.ts +1 -0
- package/build/utils.js +1 -0
- package/build/utils.spec.d.ts +1 -0
- package/build/utils.spec.js +27 -0
- package/extensions/ublocklite/_locales/be/messages.json +5 -5
- package/extensions/ublocklite/_locales/id/messages.json +9 -9
- package/extensions/ublocklite/_locales/ja/messages.json +4 -4
- package/extensions/ublocklite/_locales/pt_PT/messages.json +1 -1
- package/extensions/ublocklite/_locales/th/messages.json +2 -2
- package/extensions/ublocklite/_locales/uk/messages.json +9 -9
- package/extensions/ublocklite/_locales/vi/messages.json +5 -5
- package/extensions/ublocklite/_locales/zh_CN/messages.json +8 -8
- package/extensions/ublocklite/js/jsonpath.js +2 -2
- package/extensions/ublocklite/js/static-filtering-parser.js +3 -1
- package/extensions/ublocklite/js/utils.js +1 -3
- package/extensions/ublocklite/manifest.json +1 -1
- package/extensions/ublocklite/rulesets/generic-details.json +2 -0
- package/extensions/ublocklite/rulesets/main/adguard-mobile.json +1 -2
- package/extensions/ublocklite/rulesets/main/adguard-spyware-url.json +7 -4
- package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +2 -1
- package/extensions/ublocklite/rulesets/main/chn-0.json +23 -13
- package/extensions/ublocklite/rulesets/main/deu-0.json +2 -1
- package/extensions/ublocklite/rulesets/main/dpollock-0.json +1 -0
- package/extensions/ublocklite/rulesets/main/easylist.json +12 -4
- package/extensions/ublocklite/rulesets/main/easyprivacy.json +19 -6
- package/extensions/ublocklite/rulesets/main/fra-0.json +2 -2
- package/extensions/ublocklite/rulesets/main/hrv-0.json +6 -15
- package/extensions/ublocklite/rulesets/main/idn-0.json +6 -2
- package/extensions/ublocklite/rulesets/main/ind-0.json +27 -11
- package/extensions/ublocklite/rulesets/main/isr-0.json +1 -0
- package/extensions/ublocklite/rulesets/main/jpn-1.json +9 -4
- package/extensions/ublocklite/rulesets/main/kor-1.json +3 -2
- package/extensions/ublocklite/rulesets/main/nld-0.json +9 -7
- package/extensions/ublocklite/rulesets/main/nor-0.json +6 -3
- package/extensions/ublocklite/rulesets/main/pgl.json +10 -3
- package/extensions/ublocklite/rulesets/main/pol-0.json +2 -0
- package/extensions/ublocklite/rulesets/main/rus-0.json +11 -9
- package/extensions/ublocklite/rulesets/main/rus-1.json +2 -1
- package/extensions/ublocklite/rulesets/main/spa-1.json +2 -1
- package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +15646 -4853
- package/extensions/ublocklite/rulesets/main/swe-1.json +7 -9
- package/extensions/ublocklite/rulesets/main/tur-0.json +3 -4
- package/extensions/ublocklite/rulesets/main/ublock-badware.json +4 -7
- package/extensions/ublocklite/rulesets/main/ublock-filters.json +46 -21
- package/extensions/ublocklite/rulesets/main/ukr-0.json +3 -5
- package/extensions/ublocklite/rulesets/main/urlhaus-full.json +1554 -196
- package/extensions/ublocklite/rulesets/main/vie-1.json +26 -26
- package/extensions/ublocklite/rulesets/regex/chn-0.json +2 -2
- package/extensions/ublocklite/rulesets/regex/hrv-0.json +20 -0
- package/extensions/ublocklite/rulesets/regex/jpn-1.json +1 -1
- package/extensions/ublocklite/rulesets/regex/ublock-filters.json +10 -9
- package/extensions/ublocklite/rulesets/ruleset-details.json +160 -160
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-notifications.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/hrv-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/rus-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/spa-1.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/vie-1.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generichigh/rus-0.css +1 -0
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-overlays.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/hrv-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/jpn-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/rou-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/procedural/tur-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/vie-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.remove-node-text.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-fetch.js +10 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.abort-on-stack-trace.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +10 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.prevent-fetch.js +10 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fin-0.set-constant.js +541 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-fetch.js +10 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/hrv-0.set-constant.js +541 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-fetch.js +10 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-fetch.js +10 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-fetch.js +10 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-fetch.js +10 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.json-prune-xhr-response.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-fetch.js +10 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-fetch.js +11 -6
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.xml-prune.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.prevent-fetch.js +10 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-stack-trace.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.href-sanitizer.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-fetch.js +10 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-cookie.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-attr.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-fetch.js +10 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +10 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-fetch.js +10 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{fin-0.spoof-css.js → tur-0.remove-cookie.js} +69 -115
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-json-edit-fetch-request.js +941 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-json-edit-xhr-request.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-replace-node-text.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit-fetch-response.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit-xhr-response.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-fetch-response.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.jsonl-edit-xhr-response.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +12 -7
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.spoof-css.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-request.js +941 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-response.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-fetch.js +10 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-attr.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-fetch-response.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-xhr-response.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.prevent-fetch.js +10 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-fetch.js +10 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-notifications.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/est-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/fra-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/hrv-0.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/specific/hun-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ita-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/kor-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/nld-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/nor-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/pol-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/rou-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/spa-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/spa-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/swe-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/tur-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ublock-badware.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ublock-filters.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ukr-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
- package/extensions/ublocklite/rulesets/scriptlet-details.json +113 -60
- package/extensions/ublocklite/rulesets/strictblock/chn-0.json +117 -2
- package/extensions/ublocklite/rulesets/strictblock/dpollock-0.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/easylist.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +7 -1
- package/extensions/ublocklite/rulesets/strictblock/hrv-0.json +8 -1
- package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +134 -133
- package/extensions/ublocklite/rulesets/strictblock/nor-0.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/pgl.json +10 -3
- package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +15646 -4853
- package/extensions/ublocklite/rulesets/strictblock/tur-0.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +10 -10
- package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +3 -3
- package/extensions/ublocklite/rulesets/strictblock/ukr-0.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +1554 -196
- package/extensions/ublocklite/ublock.zip +0 -0
- package/package.json +1 -1
- package/src/browsers/index.ts +12 -10
- package/src/routes/management/http/kill.get.ts +2 -1
- package/src/shared/utils/function/handler.ts +2 -1
- package/src/utils.spec.ts +62 -0
- package/src/utils.ts +3 -0
- package/static/docs/swagger.json +2 -2
- package/static/docs/swagger.min.json +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/ublock-experimental.js +0 -42
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,29 @@
|
|
|
1
|
-
# [Latest](https://github.com/browserless/chrome/compare/v2.38.
|
|
1
|
+
# [Latest](https://github.com/browserless/chrome/compare/v2.38.2...main)
|
|
2
|
+
|
|
3
|
+
# [v2.38.2](https://github.com/browserless/browserless/compare/v2.38.1...v2.38.2)
|
|
4
|
+
|
|
5
|
+
- Standardizes on how path parsing works internally, exports the utility as well.
|
|
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.38.1](https://github.com/browserless/browserless/compare/v2.38.0...v2.38.1)
|
|
16
|
+
|
|
17
|
+
- Dependency updates.
|
|
18
|
+
- Bugfix when a trailing slash is present in /function API call.
|
|
19
|
+
- Supports the following libraries and browsers:
|
|
20
|
+
- puppeteer-core: `24.26.1`
|
|
21
|
+
- playwright-core: `1.56.1`, `1.55.1`, `1.54.2`, `1.53.2`, and `1.52.0`.
|
|
22
|
+
- Chromium: `141.0.7390.37`
|
|
23
|
+
- Chrome: `141.0.7390.123` (amd64 only)
|
|
24
|
+
- Firefox: `142.0.1`
|
|
25
|
+
- Webkit: `26.0`
|
|
26
|
+
- Edge: `141.0.3537.99` (amd64 only)
|
|
2
27
|
|
|
3
28
|
# [v2.38.0](https://github.com/browserless/chrome/compare/v2.37.1...v2.38.0)
|
|
4
29
|
|
package/build/browsers/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BLESS_PAGE_IDENTIFIER, BadRequest, ChromeCDP, ChromePlaywright, ChromiumCDP, ChromiumPlaywright, EdgeCDP, EdgePlaywright, FirefoxPlaywright, Logger, NotFound, ServerError, WebKitPlaywright, availableBrowsers, convertIfBase64, exists, generateDataDir, makeExternalURL, noop, parseBooleanParam, parseStringParam, pwVersionRegex, } from '@browserless.io/browserless';
|
|
1
|
+
import { BLESS_PAGE_IDENTIFIER, BadRequest, ChromeCDP, ChromePlaywright, ChromiumCDP, ChromiumPlaywright, EdgeCDP, EdgePlaywright, FirefoxPlaywright, Logger, NotFound, ServerError, WebKitPlaywright, availableBrowsers, convertIfBase64, exists, generateDataDir, getFinalPathSegment, makeExternalURL, noop, parseBooleanParam, parseStringParam, pwVersionRegex, } from '@browserless.io/browserless';
|
|
2
2
|
import { deleteAsync } from 'del';
|
|
3
3
|
import micromatch from 'micromatch';
|
|
4
4
|
import path from 'path';
|
|
@@ -299,9 +299,7 @@ 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
|
|
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();
|
|
302
|
+
const id = getFinalPathSegment(req.parsed.pathname);
|
|
305
303
|
if (!id) {
|
|
306
304
|
throw new NotFound(`Couldn't locate browser ID from path "${req.parsed.pathname}"`);
|
|
307
305
|
}
|
|
@@ -316,8 +314,8 @@ export class BrowserManager {
|
|
|
316
314
|
}
|
|
317
315
|
// Handle page connections here
|
|
318
316
|
if (req.parsed.pathname.includes('/devtools/page')) {
|
|
319
|
-
const id = req.parsed.pathname
|
|
320
|
-
if (!id
|
|
317
|
+
const id = getFinalPathSegment(req.parsed.pathname);
|
|
318
|
+
if (!id?.includes(BLESS_PAGE_IDENTIFIER)) {
|
|
321
319
|
const browsers = Array.from(this.browsers).map(([browser]) => browser);
|
|
322
320
|
const allPages = await Promise.all(browsers
|
|
323
321
|
.filter((b) => !!b.wsEndpoint())
|
|
@@ -363,7 +361,10 @@ export class BrowserManager {
|
|
|
363
361
|
if (proxyServerParam) {
|
|
364
362
|
const existingArgs = launchOptions.args || [];
|
|
365
363
|
const filteredArgs = existingArgs.filter((arg) => !arg.includes('--proxy-server='));
|
|
366
|
-
launchOptions.args = [
|
|
364
|
+
launchOptions.args = [
|
|
365
|
+
...filteredArgs,
|
|
366
|
+
`--proxy-server=${proxyServerParam}`,
|
|
367
|
+
];
|
|
367
368
|
}
|
|
368
369
|
const manualUserDataDir = launchOptions.args
|
|
369
370
|
?.find((arg) => arg.includes('--user-data-dir='))
|
|
@@ -415,7 +416,7 @@ export class BrowserManager {
|
|
|
415
416
|
});
|
|
416
417
|
await this.hooks.browser({ browser, req });
|
|
417
418
|
const session = {
|
|
418
|
-
id: browser.wsEndpoint()
|
|
419
|
+
id: getFinalPathSegment(browser.wsEndpoint()),
|
|
419
420
|
initialConnectURL: path.join(req.parsed.pathname, req.parsed.search) || '',
|
|
420
421
|
isTempDataDir: !manualUserDataDir,
|
|
421
422
|
launchOptions,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { APITags, BrowserlessRoutes, HTTPManagementRoutes, HTTPRoute, Methods, contentTypes, writeResponse, } from '@browserless.io/browserless';
|
|
1
|
+
import { APITags, BrowserlessRoutes, HTTPManagementRoutes, HTTPRoute, Methods, contentTypes, getFinalPathSegment, writeResponse, } from '@browserless.io/browserless';
|
|
2
2
|
export default class KillGetRoute extends HTTPRoute {
|
|
3
3
|
name = BrowserlessRoutes.KillGetRoute;
|
|
4
4
|
accepts = [contentTypes.any];
|
|
@@ -11,7 +11,7 @@ export default class KillGetRoute extends HTTPRoute {
|
|
|
11
11
|
path = HTTPManagementRoutes.kill;
|
|
12
12
|
tags = [APITags.management];
|
|
13
13
|
async handler(req, res) {
|
|
14
|
-
const target = req.parsed.pathname
|
|
14
|
+
const target = getFinalPathSegment(req.parsed.pathname);
|
|
15
15
|
const browserManager = this.browserManager();
|
|
16
16
|
await browserManager.killSessions(target);
|
|
17
17
|
return writeResponse(res, 204, '');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BadRequest, HTTPRoutes, ServerError, contentTypes, convertIfBase64, exists, getTokenFromRequest, makeExternalURL, mimeTypes, } from '@browserless.io/browserless';
|
|
1
|
+
import { BadRequest, HTTPRoutes, ServerError, contentTypes, convertIfBase64, exists, getFinalPathSegment, getTokenFromRequest, makeExternalURL, mimeTypes, } from '@browserless.io/browserless';
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
export default (config, logger, options = {}) => async (req, browser) => {
|
|
@@ -19,7 +19,7 @@ export default (config, logger, options = {}) => async (req, browser) => {
|
|
|
19
19
|
if (!privateWSEndpoint) {
|
|
20
20
|
throw new ServerError(`No browser endpoint was found, is the browser running?`);
|
|
21
21
|
}
|
|
22
|
-
const browserID = privateWSEndpoint
|
|
22
|
+
const browserID = getFinalPathSegment(privateWSEndpoint);
|
|
23
23
|
const browserWSEndpoint = makeExternalURL(config.getExternalWebSocketAddress(), 'function', 'connect', browserID, '?token=' + getTokenFromRequest(req));
|
|
24
24
|
const functionCodeJS = `browserless-function-${browserID}.js`;
|
|
25
25
|
const page = (await browser.newPage());
|
package/build/utils.d.ts
CHANGED
|
@@ -140,4 +140,5 @@ export declare const printLogo: (docsLink: string, debugURL?: string | boolean)
|
|
|
140
140
|
export declare const getCDPClient: (page: Page) => CDPSession;
|
|
141
141
|
export declare const ublockLitePath: string;
|
|
142
142
|
export declare const isMatch: (text: string, pattern: string) => boolean;
|
|
143
|
+
export declare const getFinalPathSegment: (pathname: string) => string | undefined;
|
|
143
144
|
export {};
|
package/build/utils.js
CHANGED
|
@@ -654,3 +654,4 @@ export const ublockLitePath = path.join(__dirname, '..', 'extensions', 'ublockli
|
|
|
654
654
|
export const isMatch = (text, pattern) => {
|
|
655
655
|
return micromatch.isMatch(text, pattern, { bash: true });
|
|
656
656
|
};
|
|
657
|
+
export const getFinalPathSegment = (pathname) => pathname.split(/[?#&]/)[0].split('/').filter(Boolean).pop();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { expect } from 'chai';
|
|
2
|
+
import { getFinalPathSegment } from '@browserless.io/browserless';
|
|
3
|
+
describe('Utils', () => {
|
|
4
|
+
describe('#getFinalPathSegment', () => {
|
|
5
|
+
it('returns the final path segment', () => {
|
|
6
|
+
expect(getFinalPathSegment('https://www.browserless.io/some/random/path/segment')).to.equal('segment');
|
|
7
|
+
});
|
|
8
|
+
it('returns the final path segment with trailing slashes', () => {
|
|
9
|
+
expect(getFinalPathSegment('https://www.browserless.io/some/random/path/segment/')).to.equal('segment');
|
|
10
|
+
});
|
|
11
|
+
it('returns the final path segment with URLs that have query params', () => {
|
|
12
|
+
expect(getFinalPathSegment('https://www.browserless.io/some/random/path/segment?foo=bar')).to.equal('segment');
|
|
13
|
+
});
|
|
14
|
+
it('returns the final path segment with URLs that have fragments', () => {
|
|
15
|
+
expect(getFinalPathSegment('https://www.browserless.io/some/random/path/segment#foo=bar')).to.equal('segment');
|
|
16
|
+
});
|
|
17
|
+
it('returns the final path segment with trailing slashes, query-params and fragments', () => {
|
|
18
|
+
expect(getFinalPathSegment('https://www.browserless.io/some/random/path/segment/?foo=bar&baz=qux#hello=world')).to.equal('segment');
|
|
19
|
+
});
|
|
20
|
+
it('returns the final path segment with trailing slashes, query-params and fragments on websockets', () => {
|
|
21
|
+
expect(getFinalPathSegment('wss://www.browserless.io/some/random/path/segment/?foo=bar&baz=qux#hello=world')).to.equal('segment');
|
|
22
|
+
});
|
|
23
|
+
it('returns the final path segment with malformed URLs', () => {
|
|
24
|
+
expect(getFinalPathSegment('wss://www.browserless.io/some/random/path/segment/&bad=query')).to.equal('segment');
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
});
|
|
@@ -264,15 +264,15 @@
|
|
|
264
264
|
"description": "Short description for a checkbox in the options page"
|
|
265
265
|
},
|
|
266
266
|
"settingsBackupRestoreLabel": {
|
|
267
|
-
"message": "
|
|
267
|
+
"message": "Рэзервовая копія",
|
|
268
268
|
"description": "The header text for the back up/restore section"
|
|
269
269
|
},
|
|
270
270
|
"settingsBackupRestoreSummary": {
|
|
271
|
-
"message": "
|
|
271
|
+
"message": "Стварыць рэзервовую копію ўласных налад у файл або аднавіць уласныя налады з файла.",
|
|
272
272
|
"description": "A summary description of the back up/restore section."
|
|
273
273
|
},
|
|
274
274
|
"settingsBackupRestoreLegend": {
|
|
275
|
-
"message": "
|
|
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": "
|
|
379
|
+
"message": "Стварыць копію…",
|
|
380
380
|
"description": "Text for buttons used to back up content"
|
|
381
381
|
},
|
|
382
382
|
"restoreButton": {
|
|
383
|
-
"message": "
|
|
383
|
+
"message": "Аднавіць…",
|
|
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": "
|
|
23
|
+
"message": "Filter khusus",
|
|
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": "
|
|
91
|
+
"message": "Impor / Ekspor",
|
|
92
92
|
"description": "Text label heading the import/export area of custom filters"
|
|
93
93
|
},
|
|
94
94
|
"customFiltersImportTextareaPlaceholder": {
|
|
95
|
-
"message": "
|
|
95
|
+
"message": "Tambahkan filter kosmetik dengan menempel di sini",
|
|
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": "
|
|
267
|
+
"message": "Cadangan",
|
|
268
268
|
"description": "The header text for the back up/restore section"
|
|
269
269
|
},
|
|
270
270
|
"settingsBackupRestoreSummary": {
|
|
271
|
-
"message": "
|
|
271
|
+
"message": "Cadangkan settingan khusus ke berkas, atau pulihkan settingan khusus dari berkas.",
|
|
272
272
|
"description": "A summary description of the back up/restore section."
|
|
273
273
|
},
|
|
274
274
|
"settingsBackupRestoreLegend": {
|
|
275
|
-
"message": "
|
|
275
|
+
"message": "Pemulihan akan menimpa semua settingan khusus saat ini.",
|
|
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": "
|
|
367
|
+
"message": "Tambah",
|
|
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": "
|
|
379
|
+
"message": "Cadangkan…",
|
|
380
380
|
"description": "Text for buttons used to back up content"
|
|
381
381
|
},
|
|
382
382
|
"restoreButton": {
|
|
383
|
-
"message": "
|
|
383
|
+
"message": "Pulihkan…",
|
|
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": "
|
|
23
|
+
"message": "カスタムフィルター",
|
|
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": "
|
|
91
|
+
"message": "インポート又はエクスポート",
|
|
92
92
|
"description": "Text label heading the import/export area of custom filters"
|
|
93
93
|
},
|
|
94
94
|
"customFiltersImportTextareaPlaceholder": {
|
|
95
|
-
"message": "
|
|
95
|
+
"message": "ここに追加したいコスメティックフィルターをペースト",
|
|
96
96
|
"description": "Placeholder text which describes the purpose of the textarea widget"
|
|
97
97
|
},
|
|
98
98
|
"aboutChangelog": {
|
|
@@ -364,7 +364,7 @@
|
|
|
364
364
|
"description": "Text for buttons used to revert changes"
|
|
365
365
|
},
|
|
366
366
|
"addButton": {
|
|
367
|
-
"message": "
|
|
367
|
+
"message": "追加",
|
|
368
368
|
"description": "Text for buttons used to add content"
|
|
369
369
|
},
|
|
370
370
|
"importAndAppendButton": {
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"description": "Header for a ruleset section in 'Filter lists pane'"
|
|
89
89
|
},
|
|
90
90
|
"customFiltersImportExportLabel": {
|
|
91
|
-
"message": "Importar
|
|
91
|
+
"message": "Importar/Exportar",
|
|
92
92
|
"description": "Text label heading the import/export area of custom filters"
|
|
93
93
|
},
|
|
94
94
|
"customFiltersImportTextareaPlaceholder": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"description": "appears as tab name in dashboard"
|
|
21
21
|
},
|
|
22
22
|
"customFiltersPageName": {
|
|
23
|
-
"message": "
|
|
23
|
+
"message": "กำหนดตัวกรอง",
|
|
24
24
|
"description": "appears as tab name in dashboard"
|
|
25
25
|
},
|
|
26
26
|
"developPageName": {
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"description": "Header for a ruleset section in 'Filter lists pane'"
|
|
89
89
|
},
|
|
90
90
|
"customFiltersImportExportLabel": {
|
|
91
|
-
"message": "
|
|
91
|
+
"message": "นำเข้า / ส่งออก",
|
|
92
92
|
"description": "Text label heading the import/export area of custom filters"
|
|
93
93
|
},
|
|
94
94
|
"customFiltersImportTextareaPlaceholder": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"description": "appears as tab name in dashboard"
|
|
21
21
|
},
|
|
22
22
|
"customFiltersPageName": {
|
|
23
|
-
"message": "
|
|
23
|
+
"message": "Користувацькі фільтри",
|
|
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": "
|
|
91
|
+
"message": "Імпорт / Експорт",
|
|
92
92
|
"description": "Text label heading the import/export area of custom filters"
|
|
93
93
|
},
|
|
94
94
|
"customFiltersImportTextareaPlaceholder": {
|
|
95
|
-
"message": "
|
|
95
|
+
"message": "Вставте сюди конкретні косметичні фільтри, які потрібно додати",
|
|
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": "
|
|
267
|
+
"message": "Резервне копіювання",
|
|
268
268
|
"description": "The header text for the back up/restore section"
|
|
269
269
|
},
|
|
270
270
|
"settingsBackupRestoreSummary": {
|
|
271
|
-
"message": "
|
|
271
|
+
"message": "Створіть резервну копію власних налаштувань у файлі або відновіть власні налаштування з файлу.",
|
|
272
272
|
"description": "A summary description of the back up/restore section."
|
|
273
273
|
},
|
|
274
274
|
"settingsBackupRestoreLegend": {
|
|
275
|
-
"message": "
|
|
275
|
+
"message": "Відновлення призведе до перезапису всіх ваших поточних налаштувань.",
|
|
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": "
|
|
367
|
+
"message": "Додати",
|
|
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": "
|
|
379
|
+
"message": "Створити…",
|
|
380
380
|
"description": "Text for buttons used to back up content"
|
|
381
381
|
},
|
|
382
382
|
"restoreButton": {
|
|
383
|
-
"message": "
|
|
383
|
+
"message": "Відновити…",
|
|
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": "
|
|
23
|
+
"message": "Bộ lọc tự tạo",
|
|
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": "
|
|
91
|
+
"message": "Nhập / Xuất",
|
|
92
92
|
"description": "Text label heading the import/export area of custom filters"
|
|
93
93
|
},
|
|
94
94
|
"customFiltersImportTextareaPlaceholder": {
|
|
95
|
-
"message": "
|
|
95
|
+
"message": "Dán vào đây các bộ lọc cụ thể",
|
|
96
96
|
"description": "Placeholder text which describes the purpose of the textarea widget"
|
|
97
97
|
},
|
|
98
98
|
"aboutChangelog": {
|
|
@@ -272,7 +272,7 @@
|
|
|
272
272
|
"description": "A summary description of the back up/restore section."
|
|
273
273
|
},
|
|
274
274
|
"settingsBackupRestoreLegend": {
|
|
275
|
-
"message": "
|
|
275
|
+
"message": "Khôi phục sẽ ghi đè lên những tùy chọn hiện tại của bạn.",
|
|
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": "
|
|
367
|
+
"message": "Thêm",
|
|
368
368
|
"description": "Text for buttons used to add content"
|
|
369
369
|
},
|
|
370
370
|
"importAndAppendButton": {
|
|
@@ -4,7 +4,7 @@
|
|
|
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": {
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
"description": "A paragraph in the filter issue reporter section"
|
|
141
141
|
},
|
|
142
142
|
"supportFindSpecificButton": {
|
|
143
|
-
"message": "
|
|
143
|
+
"message": "在 GitHub 上寻找相似报告",
|
|
144
144
|
"description": "A clickable link in the filter issue reporter section"
|
|
145
145
|
},
|
|
146
146
|
"supportS6URL": {
|
|
@@ -280,7 +280,7 @@
|
|
|
280
280
|
"description": "Placeholder for the input field used to find lists"
|
|
281
281
|
},
|
|
282
282
|
"strictblockTitle": {
|
|
283
|
-
"message": "
|
|
283
|
+
"message": "页面已被拦截",
|
|
284
284
|
"description": "Webpage title for the strict-blocked page"
|
|
285
285
|
},
|
|
286
286
|
"strictblockSentence1": {
|
|
@@ -308,7 +308,7 @@
|
|
|
308
308
|
"description": "A button to close the current tab"
|
|
309
309
|
},
|
|
310
310
|
"strictblockDontWarn": {
|
|
311
|
-
"message": "
|
|
311
|
+
"message": "不再针对此网站作出警告",
|
|
312
312
|
"description": "Label for checkbox in document-blocked page"
|
|
313
313
|
},
|
|
314
314
|
"strictblockProceed": {
|
|
@@ -320,19 +320,19 @@
|
|
|
320
320
|
"description": "Tooltip for the button used to enter zapper mode"
|
|
321
321
|
},
|
|
322
322
|
"zapperTipQuit": {
|
|
323
|
-
"message": "
|
|
323
|
+
"message": "退出临时移除元素模式",
|
|
324
324
|
"description": "Tooltip for the button used to exit zapper mode"
|
|
325
325
|
},
|
|
326
326
|
"pickerTipEnter": {
|
|
327
|
-
"message": "
|
|
327
|
+
"message": "创建自定义过滤规则",
|
|
328
328
|
"description": "Label for the menu entry to create cosmetic filters"
|
|
329
329
|
},
|
|
330
330
|
"unpickerTipEnter": {
|
|
331
|
-
"message": "
|
|
331
|
+
"message": "移除自定义过滤规则",
|
|
332
332
|
"description": "Label for the menu entry to delete cosmetic filters"
|
|
333
333
|
},
|
|
334
334
|
"developDropdownLabel": {
|
|
335
|
-
"message": "
|
|
335
|
+
"message": "查看:",
|
|
336
336
|
"description": "A label of a dropdown list"
|
|
337
337
|
},
|
|
338
338
|
"developOptionFilteringModeDetails": {
|
|
@@ -416,9 +416,9 @@ export class JSONPath {
|
|
|
416
416
|
break;
|
|
417
417
|
}
|
|
418
418
|
if ( c === 0x5C /* \ */ && (end+1) < len ) {
|
|
419
|
-
parts.push(query.slice(beg, end));
|
|
420
419
|
const d = query.charCodeAt(end+1);
|
|
421
|
-
if ( d === targetCharCode
|
|
420
|
+
if ( d === targetCharCode ) {
|
|
421
|
+
parts.push(query.slice(beg, end));
|
|
422
422
|
end += 1;
|
|
423
423
|
beg = end;
|
|
424
424
|
}
|
|
@@ -1371,7 +1371,9 @@ export class AstFilterParser {
|
|
|
1371
1371
|
realBad = hasValue;
|
|
1372
1372
|
if ( realBad ) { break; }
|
|
1373
1373
|
requestTypeCount += 1;
|
|
1374
|
-
|
|
1374
|
+
if ( (flags & NODE_FLAG_IS_NEGATED) === 0 ) {
|
|
1375
|
+
unredirectableTypeCount += 1;
|
|
1376
|
+
}
|
|
1375
1377
|
break;
|
|
1376
1378
|
case NODE_TYPE_NET_OPTION_NAME_POPUNDER:
|
|
1377
1379
|
case NODE_TYPE_NET_OPTION_NAME_POPUP:
|
|
@@ -118,7 +118,7 @@ export const matchesFromHostnames = hostnames => {
|
|
|
118
118
|
|
|
119
119
|
export const hostnameFromMatch = origin => {
|
|
120
120
|
if ( origin === '<all_urls>' || origin === '*://*/*' ) { return 'all-urls'; }
|
|
121
|
-
const match =
|
|
121
|
+
const match = /^\*:\/\/(?:\*\.)?([^/]+)\/\*/.exec(origin);
|
|
122
122
|
if ( match === null ) { return ''; }
|
|
123
123
|
return match[1];
|
|
124
124
|
};
|
|
@@ -133,8 +133,6 @@ export const hostnamesFromMatches = origins => {
|
|
|
133
133
|
return out;
|
|
134
134
|
};
|
|
135
135
|
|
|
136
|
-
const reOriginToHostname = /^\*:\/\/(?:\*\.)?([^/]+)\/\*/;
|
|
137
|
-
|
|
138
136
|
/******************************************************************************/
|
|
139
137
|
|
|
140
138
|
const broadcastMessage = message => {
|
|
@@ -689,6 +689,7 @@
|
|
|
689
689
|
"okdebrid.com",
|
|
690
690
|
"oko.sh",
|
|
691
691
|
"omekon.blogspot.com",
|
|
692
|
+
"omuzaani.me",
|
|
692
693
|
"onbatch.my.id",
|
|
693
694
|
"ondemandkorea.com",
|
|
694
695
|
"onemanhua.com",
|
|
@@ -897,6 +898,7 @@
|
|
|
897
898
|
"startimez.com",
|
|
898
899
|
"startseite.to",
|
|
899
900
|
"starxinvestor.com",
|
|
901
|
+
"stateless.me",
|
|
900
902
|
"stgeorgeutah.com",
|
|
901
903
|
"stltoday.com",
|
|
902
904
|
"stokerpiller.dk",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[
|
|
2
2
|
{"action":{"type":"block"},"condition":{"requestDomains":["023hysj.com","1mp.mobi","23.224.199.74","23.224.199.96","247realmedia.com","54.222.186.106","883.engine.mobileapptracking.com","a.applvn.com","aag.yahooapis.jp","abbott.vo.llnwd.net","abnad.net","abroad-ad.kingsoft-office-service.com","abtest.mistat.xiaomi.com","abtest.swrve.com","activity.browser.intl.miui.com","ad-api.ehawk.com","ad-brix.com","ad-channel.wikawika.xyz","ad-creatives-public.commondatastorage.googleapis.com","ad-ettoday.cdn.hinet.net","ad-files.classting.com","ad-splash-tracking.hktvmall.com","ad-splash.hktvmall.com","ad-x.co.uk","ad.apps.fm","ad.apsalar.com","ad.bandlab.io","ad.buzzvil.com","ad.cauly.co.kr","ad.daum.net","ad.deepthought.industries","ad.duapps.com","ad.flipboard.com","ad.inston.ltd","ad.intools.dev","ad.iwhop.cn","ad.jorte.com","ad.leadboltapps.net","ad.leap.app","ad.line-scdn.net","ad.mediamixer.co.kr","ad.mobiuspace.net","ad.nvdvr.cn","ad.ohmyad.co","ad.particlenews.com","ad.period-calendar.com","ad.simpledesign.ltd","ad.smaad.jp","ad.snappea.com","ad.snaptube.app","ad.sxp.smartclip.net","ad.tencentmusic.com","ad.vrvm.com","ad.weibo.com","ad.weplayer.cc","ad.wynk.in","ad.youku.com","ad.zijieapi.com","ad6media.fr","adadvisor.net","adballoon.sooplive.co.kr","adblade.com","adcamp.ru","adcel.co","adcel.vrvm.com","adcenter-api.cashwalk.co","adcolony.com","adcs.myappsget.com","addapptr.com","addata.mediacategory.com","adeeply.ru","adentifi.com","adflake.com","adforgames.com","adfork.co.kr","adform.com","adfox.ru","adg.kajicam.com","adgear.com","adgrx.com","adhitzads.com","adhood.com","adinfo.tango.me","adition.com","adkmob.com","adkwai.com","adleads.com","adlibr.com","adman.gr","admarketing.yahoo.net","admarvel.com","admarvel.s3.amazonaws.com","admedia.com","admicro1.vcmedia.vn","admin.appnext.com","admixer.co.kr","admulti.com","adn.insight.ucweb.com","adnami.io","adonly.com","adpies.com","adplatform.vrtcal.com","adpopcorn.com","adprotected.com","adproxy.tf1.fr","adpublisher.s3.amazonaws.com","adpush.goforandroid.com","adquota.com","ads-ap-venues.yinzcam.com","ads-api.kidsnote.com","ads-bidder-api.twitter.com","ads-bridge.pixocial.com","ads-cdn.hopper.com","ads-chunks.prod.ihrhls.com","ads-cloud.rovio.com","ads-config-engine-noneu.truecaller.com","ads-d.viber.com","ads-delivery.gunosy.com","ads-game-configuration-master.ads.prd.ie.internal.unity3d.com","ads-gdl.imovideo.ru","ads-interfaces.sc-cdn.net","ads-leaseweb.appsgeyser.com","ads-resources.waze.com","ads-router-noneu.truecaller.com","ads-sdk.mattel163.com","ads-sdk.nianticlabs.com","ads-segment-profile-noneu.truecaller.com","ads-server.mxplay.com","ads.ad2iction.com","ads.adadapted.com","ads.adinmotech.com","ads.aerserv.com","ads.aitype.net","ads.appbundledownload.com","ads.appsgeyser.com","ads.bulldogcpi.com","ads.cocomobi.com","ads.edadeal.ru","ads.feelingtouch.com","ads.imbc.com","ads.imovideo.ru","ads.iosappsworld.com","ads.jianchiapp.com","ads.mobilityware.com","ads.mobvertising.net","ads.mopub.com","ads.oppomobile.com","ads.pdbarea.com","ads.pinger.com","ads.rmbl.ws","ads.smrtbid.com","ads.taptapnetworks.com","ads.viber.com","ads.xlxtra.com","adsapi.manhuaren.com","adsapi.snapchat.com","adsassets-ipv6.waze.com","adsassets.waze.com","adsbynimbus.com","adsdk.vrvm.com","adsee.jp","adserver.goforandroid.com","adserver.kimia.es","adserver.pandora.com","adserver.shadow.snapads.com","adservice.tohsoft.com","adsfs.oppomobile.com","adsgard.aprod.scopely.io","adshost2.com","adslog.apexinnotech.com","adslot.uc.cn","adsmo.ru","adsmogo.mobi","adsmogo.net","adsmoloco.com","adsmrapi.imbc.com","adsniper.ru","adspot.tfgapps.com","adsrvr.io","adsrvr.org","adstrategy.biz.weibo.com","adtech.de","adtilt.com","adtimaserver.vn","adtmonetize.com","adtorque.in","adtrack.king.com","adultadworld.com","adv-ettoday.cdn.hinet.net","adv-front.devpnd.com","adv.ettoday.net","adv.mxmcdn.net","adv.sec.intl.miui.com","adversal.com","adverticum.net","advertise.com","advertur.ru","advil.waze.com","advombat.ru","adx-dre.op.hicloud.com","adx-open-service.youku.com","adx-os.bridgeoos.com","adx-sg-req.bridgeoos.com","adx-tk.rayjump.com","adxcorp.kr","adz.mobi","adzerk.net","adzmobi.com","agent.tamedia.com.tw","ahoy-internal-ads-hv.b-cdn.net","ajdivotdelbloab24.jio.com","ali-ad.a.yximgs.com","alt-ad.mail.ru","amanad.adtdp.com","amillionads.com","amobee.com","an.facebook.com","analytics.scalemonk.com","aniview.com","anythinktech.com","aomsitf.com","ap.smardroid.com","api-a.op-mobile.opera.com","api-ad-adapter.wps.com","api-ad-callback.falconnet.app","api-ad-callback.mobiuspace.net","api.ad-locus.com","api.adaether.com","api.ads.newsdigest.jp","api.ads.watchabc.go.com","api.applovefrom.com","api.appnxt.net","api.bridgeoos.com","api.brs.intl.miui.com","api.cloudmobi.net","api.fusepowered.com","api.itpub.cloud","api.kickoffo.site","api.mediation.amberweather.com","api.mobula.ds.duapps.com","api.mobula.sdk.duapps.com","api.myadsget.com","api.newsfeed.intl.miui.com","api.pingstart.com","api.plyair.com","api.sve.cc","api.usebutton.com","api.youngle.tech","apis.appnxt.net","apishow.babybus.com","app-ads-services.com","app.adjust.net.in","app.adjust.world","app.ssp.yahoo.com","appbaqend.com","appboy-images.com","appclick.net","appgift.sinaapp.com","appgiftwall.oss-us-west-1.aliyuncs.com","applifier.com","applovin.com","appnext-a.akamaihd.net","appnext.hs.llnwd.net","appodeal.com","appodealx.com","apppromoteapi.babybus.com","appsdt.com","appserver-ap.com","appshelf.ttpsdk.info","appsrv.display.io","apptornado.com","appwall.tv2phone.cn","aqi.wd.amberweather.com","as.adfonic.net","assoc-amazon.com","astrsk.net","athena.api.kwalee.com","atti.com","audiomob.com","banner.hpmdnetwork.ru","bannerflow.com","banners-slb.mobile.yandex.net","banners.etermax.com","banners.mobile.yandex.net","bannersnack.com","bannerwall.herewetest.com","bannerwall.s3.appcnt.com","bayctrk.com","bcfads.com","bdapi-ads.realmemobile.com","bdapi-in-ads.realmemobile.com","begun.ru","behacdn.ksmobile.net","behance.vo.llnwd.net","beijingzhongnanhai.com","bepolite.eu","bet365affiliates.com","betrad.com","betsonsport.ru","bi.yeshen.com","bidjora.com","bidsms.com","bidsopt.com","bigmobileads.com","bjads.bejbej.ca","black6adv.com","blogads.com","blueduckredapple.com","boostads.net","brealtime.com","bu1.duba.com","bubblesmedia.ru","burstnet.com","buysellads.com","buzzcity.net","buzzonclick.com","c.vrvm.com","c2i.startappnetwork.com","c2s.startappnetwork.com","c8.net.ua","cad.youku.com","cads.scalemonk.com","cafe-latte.myshoplus.com","cashprom.ru","casino-ad-mediation.me2zengame.com","cdn-ad.wtzw.com","cdn-adn.rayjump.com","cdn-api.admost.com","cdn-cf.postitial.com","cdn-image.com","cdn-ketchapp.akamaized.net","cdn.appnext.com","cdn.batmobi.net","cdn.jampp.com","cdns.lodeo.io","cdp.cloud.unity3d.com","celtra.com","cf-ads.pinger.com","chango.com","chartboost.com","chartboosts.com","chavoads.com","cl-ad.x-flow.app","client.midosoo.com","clk.taptica.com","cloudads-a.akamaihd.net","cls.vrvm.com","cmshow.gtimg.cn","common.duapps.com","comscore.com","config.appjolt.com","config.tremorhub.com","configuration.ttpsdk.info","configure.rayjump.com","consent.easybrain.com","contextualadv.com","cp.pushwoosh.com","cpactions.com","crispadvertising.com","criteo.com","criteo.net","cross-promo-provider.easybrain.com","crossadsapi.ecomobileapp.com","crossboardmobile.com","crosspromo.voodoo.io","crosspromotion-us.avosapps.us","crosspromotion.weplayer.cc","cs02-pps-drcn.dbankcdn.com","csi.gstatic.com","ctl.buyt.in","d.kugou.com","d19xf4taj229i8.cloudfront.net","d239g0z67jcted.cloudfront.net","d2nrdy2pg3k168.cloudfront.net","d32z5ni8t5127x.cloudfront.net","d3hdbjtb1686tn.cloudfront.net","d830x8j3o1b2k.cloudfront.net","dad-api.dcard.tw","data-optout-service.uca.cloud.unity3d.com","data2.doodlemobile.com","datafinder-beacon.starii-rover.com","dataflow.biliapi.com","datk.bridgeoos.com","deapi.sooplive.co.kr","debojuagug1sf.cloudfront.net","delivery-cdn-cf.adswizz.com","deliveryengine.adswizz.com","dev.appboy.com","displayio.cloud","disqusads.com","dl-adx.op-mobile.opera.com","dm.isnssdk.com","dm.toutiao.com","dollphoin.site","dotomi.com","downloadshi.b-cdn.net","drbbzzs.xyz","dsp-api.moloco.com","dspunion.com","dumedia.ru","dzpu6za66svjl.cloudfront.net","e-planning.net","e.apsalar.com","e.qq.com","eltrafiko.com","emediate.eu","epom.com","erg.ihclam.cn","et-code.ru","etargetnet.com","etl.tindersparks.com","euadsapi.manhuaren.com","everestop.io","exe.bid","exelbid.com","exponential.com","external-api.impression-neo.naver.com","featured.perfectionholic.com","fiksu.com","fluentmobile.com","flurry.cachefly.net","flurry.com","flygo.ru","focas.jp","freewheel-jitt.sanoma.fi","friendlyduck.com","frontier100-toutiao-lf.fqnovel.com","fxlcvd.icu","fyber.com","gadsme.com","gallerieshub.com","gamaibids.com","gameanalysis.appcpi.net","gamerplay67.space","gateway.ttpsdk.info","gdfp.gifshow.com","gdl.i9dhjx.ru","gdn.bigfishgames.com","geede.info","geoloc.yospace.com","global-staticplat.cdn.bcebos.com","global.appnext.com","go.admost.com","go.mobstitialtag.com","go.vrvm.com","goi08150kh.com","googleadservices.com","goshare-fleet-ads.s3.ap-southeast-1.amazonaws.com","gts-ads.twistbox.com","gumgum.com","gynax.com","h5.isnssdk.com","ha-api.pushwoosh.com","hb.rayjump.com","hellay.net","heyzap.com","holder.com.ua","horsed44.com","hotapi-va.isnssdk.com","houseads-prod.elasticbeanstalk.com","houseads.ttpsdk.info","hpfkvr.icu","httpdns.bilivideo.com","httpool.com","huntmad.com","hw-ot-ad.a.yximgs.com","hybird.rayjump.com","hybrid.ai","hyperadx.com","i-vengo.com","i.isnssdk.com","i.singular.net","i.skimresources.com","i16-tb.isnssdk.com","i2ad.jp","iad.appboy.com","iads.unity3d.com","iadsdk.apple.com","iam.datasavannah.com","ichannel.isnssdk.com","im.ov.yahoo.co.jp","imapi-sg.isnssdk.com","imgx.jampp.com","impbid.com","imprdom.com","imrworldwide.com","infolinks.com","ingamesads.gameloft.com","inmense.site","inmobi.cn","inmobi.net","inmobicdn.net","inmobisdk-a.akamaihd.net","inner-active.com","inner-active.mobi","innovid.com","integral-marketing.com","intermarkets.net","intowow.com","investingchannel.com","iyes.youku.com","jioads.akamaized.net","jjpp.lmtjapi.com","justad.mobi","jybsb9oyss.com","ketchapp.org","kiosked.com","kochava.com","komoona.com","krt.asycxtz.cn","krutilka.net","kvaedit.site","l0-secure.videohub.tv","l3op.info","lacunads.com","launcher.us.yeshen.com","lb.usemaxserver.de","leadboltads.net","leanplum.com","lf-static.tiktokpangle-cdn-us.com","lgvlbd.icu","liftoff-creatives.io","liftoff.io","live.hyprmx.com","log.kajicam.com","loganmedia.mobi","look.kfiopkln.com","lqm.io","luckyforworlds.com","lxqcgj.com","mad.mobisky.pl","madnet.ru","mads.amazon.com","manage.com","marketing.mangacopy.com","maticooads.com","matrix.dailyinnovation.biz","maxesads.ru","mblapi.ssl2.duapps.com","mbn.com.ua","mcoreads.com","med-api.admost.com","medialand.ru","mediation.unity3d.com","meendocash.com","metamx.com","mgage.com","mi.gdt.qq.com","mimicromax.com","mintegral.com","mixadvert.com","mmp001.scalemonk.com","mo.freeindoapp.com","moatads.com.edgekey.net","moba8.net","mobads.baidu.com","mobclix.com","mobfox.com","mobi.yanosik.pl","mobiads.ru","mobidriven.com","mobile-campaigns.avast.com","mobilecore.com","mobiledl.adboe.com","mobilefuse.com","mobondhrd.appspot.com","mobotoolpush.moboapps.io","mobpowertech.com","mofox.com","monitor.adcaffe.com","mopub-win-us-east.bksn.se","mossru.com","mp-api.afafb.com","msg.ettoday.net","mtag.mman.kr","mtburn.jp","mtgglobals.com","mtrcss.com","mxaserver.mxplay.com","mxvp-ad-config-prod-1.zenmxapps.com","mxvp-feature-toggle-prod-1.zenmxapps.com","mydas.mobi","n152adserv.com","nanigans.com","nasimobi.com","native.cli.bz","nativead.s3.amazonaws.com","nativex.com","naverpa-phinf.pstatic.net","nbcollect.kugou.com","nbcollectretry.kugou.com","nearbyad.com","nend.net","net.rayjump.com","netavenir.com","netseer.com","netshelter.net","networksdk.ssacdn.com","networld.hk","newad.ifeng.com","newfeatureview.perfectionholic.com","news-cdn.site","newsnet.in.ua","nexac.com","nickhel.com","nkis.nikkei.com","novostimira.biz","noxagile.duapp.com","numbers.md","nycp-hlb.dvgtm.akadns.net","ob.leap.app","oconner.biz","offerwall-adnative.com","offerwall.yandex.net","okloib88.com","onlineapi.youappi.com","open.e.kuaishou.cn","open.e.kuaishou.com","open.isnssdk.com","open.kuaishouzt.com","open.kwaizt.com","opt8.co","os.scmpacdn.com","other.appcpi.net","p-behacdn.ksmobile.net","p1-lm.adukwai.com","p16-ad.byteoversea.com","pangle.io","pangolin16.isnssdk.com","pangolin16.sgsnssdk.com","parrot-flow.com","partnerearning.com","pasta.esfile.duapps.com","pavoshare.com","perf-events.cloud.unity3d.com","pflexads.com","pgdt.gtimg.cn","pglstatp-toutiao.com","phluant.com","pic-stash.com","pithyiwgz.top","pixel.admobclick.com","playgap.b-cdn.net","playhaven.com","plugin.mobopay.baidu.com","pn.ybp.yahoo.com","polymorphicads.jp","pontiflex.com","powerlinks.com","pr.comet.yahoo.com","preitem.wshareit.com","presage.io","prod.adjoe.zone","prod.cm.publishers.advertising.a2z.com","projecta-common-1258344701.file.myqcloud.com","promo-images.ttpsdk.info","promoted.sndcdn.com","promoted.soundcloud.com","promotion-en.xmeye.net","promotion-quicker.jftechsoft.com","promotion.polarisoffice.com","promotion.xmeye.net","promotionad.nvcam.net","pssvc.iqzone.com","psvpromo.psvgamestudio.com","pub1.co","pubnative.info","pubnative.net","pushad.metajoy.services","px.adhigh.net","qist.me","questionmarket.com","r0.mail.ru","r0.mradx.net","r2d2.aotter.net","rainmaker.production-public.tubi.io","redtram.com","reqde.sooplive.co.kr","restartad.com","reward-api.csjplatform.com","richlifeads.ru","robin-flow.com","rossoad.com","rotaban.ru","rqmob.com","rtapi.abbi.io","rtb.appbid.com","rtblab.net","rugfrfji.win","ruuaqkw.com","s-adx.op-mobile.opera.com","s-odx.oleads.com","s.hisp.in","s3.ttpsdk.info","san.myadssupport.com","saymedia.com","sc.smardroid.com","scorecardresearch.com","screen.buzzvil.com","sdk-api-v1.singular.net","sdk-api.kidoz.net","sdk.adtiming.com","sdk.starbolt.io","sdkv2.imaginationunwired.com","search.adcaffe.com","sensors.larkplayerapp.com","servebom.com","servedby.o2.co.uk","serveraddr.service.kugou.com","service-ad-image-ga.prd.pluto.tv","sessionm.com","setting.rayjump.com","shareasale.com","sharethrough.com","sheilaqeb.com","silvermob.com","sitemaji.com","sitescout.com","skadnetwork.singular.net","skadsdk.appsflyer.com","skt-asum.com","smilered.com","socdm.com","sonobi.com","soundcloud-pax.pandora.com","speee-ad.akamaized.net","splash-ad.classting.com","splash.appsgeyser.com","splicky.com","springserve.com","sscefsol.com","ssp-ad.momento.dev","ssp.mediation.trnox.com","ssp.otm-r.com","sspapi-prd.samsungrs.com","startappservice.com","startup-mobile.ap.yandex-net.ru","startup.mobile.webvisor.com","startup.mobile.yandex.net","stat.kika-backend.com","static.hyprmx.com","static.jampp.com","static.timetreeads.com","staticcc.com","stream.spongead.com","sumatoad.com","supersonicads-a.akamaihd.net","supersonicads.com","swelen.com","switchadhub.com","syndication.trafficreps.com","synthes.vo.llnwd.net","tap-nexus.appspot.com","tapdaq-adverts.global.ssl.fastly.net","tapit.com","tapjoy.com","tapjoy.net","tapone.jp","tappx.com","tapsell.ir","tapsense.com","tapulsads.ru","targetspot.com","tbiwtech.com","tccbanner.com","teachscape.vo.llnwd.net","thecatmachine.com","thetrafficstat.net","thind-gke-euw.prd.data.corp.unity3d.com","tiktokpangle.us","tiu6ij9yqn.com","tivan.naver.com","tizerclik.com","tk0x1.com","tkcatrun.aotter.net","tkcatwalk.aotter.net","tkmedia-cache.aotter.net","tkmedia.aotter.net","tkmftc.aotter.net","tkportal.aotter.net","tm1.hoiplay.com","tmz.vo.llnwd.net","tnc16-alisg.isnssdk.com","tnc16-useast1a.isnssdk.com","togothermany.com","tonefuse.com","toponadss.com","tpbid.com","tr.acobt.tech","trackimpression.com","tracking.applift.com","tradplusad.com","trafmag.com","traktum.com","trc.taboola.com","trk.glispa.com","tubemogul.com","turn.com","tveta.naver.net","tw-api.vpon.com","tw.api.vpon.com","tx-ad.a.yximgs.com","tx-kmpaudio.pull.yximgs.com","u-ad.info","ufz.doesxyz.com","ultraadserver.com","umbel.com","umphek.com","unicume.com","unityads.unity3d.com","upsight.com","usekahuna.com","usp1.baidu.com","v.kidoz.net","v16-ad.byteoversea.com","v8b9c0x1z2.sai7348.xyz","velti.com","veta.naver.com","videoads-cloud.rovio.com","videoplus.vo.llnwd.net","vm5apis.com","vmap.v.ad-generation.jp","vniddlg.xyz","vod-mplayer.sooplive.co.kr","vserv.mobi","vungle.com","waiads.com","wapstart.ru","wdig.vo.llnwd.net","west.bidtellect.com","widespace.com","wordego.com","wtraff.com","www.adbert.com.tw","xdrig.com","ximad.com","yandexadexchange.net","yc-ads.s3.amazonaws.com","yieldkit.com","yieldmo.com","ykad-data.youku.com","yllix.com","youmi.net","yovoads.com","zedo.com","zgzxs.weathercn.com","zmqdez.ru","zoly.tech","zxphiz.tech","zzhengre.com"]},"id":1,"priority":10},
|
|
3
|
-
{"action":{"type":"block"},"condition":{"domainType":"thirdParty","requestDomains":["31.14.252.148","adplex.co.kr","adsmobila.com","adtheorent.com","brokerbabe.com","i-mobile.co.jp","iqzone.com","jssdk.rayjump.com","keydot.net","kiesta.net","ma-code.ru","mobilebanner.ru","pagead46.l.doubleclick.net","painsko.com","partnerad.l.doubleclick.net","plugin.mediavoice.com","pos.baidu.com","postitial.com","postut.cn","tapstat.ru","tnkfactory.com","tongqing2015.com","ts166.net","vidout.net","yuhuads.com"]},"id":2,"priority":10},
|
|
3
|
+
{"action":{"type":"block"},"condition":{"domainType":"thirdParty","requestDomains":["31.14.252.148","ad.admitad.com","adplex.co.kr","adsmobila.com","adtheorent.com","brokerbabe.com","i-mobile.co.jp","iqzone.com","jssdk.rayjump.com","keydot.net","kiesta.net","ma-code.ru","mobilebanner.ru","pagead46.l.doubleclick.net","painsko.com","partnerad.l.doubleclick.net","plugin.mediavoice.com","pos.baidu.com","postitial.com","postut.cn","tapstat.ru","tnkfactory.com","tongqing2015.com","ts166.net","vidout.net","yuhuads.com"]},"id":2,"priority":10},
|
|
4
4
|
{"action":{"type":"allow"},"condition":{"initiatorDomains":["aszdziennik.pl","cyprus-mail.com","dadhero.pl","fly4free.pl","hideout.co","innpoland.pl","mamadu.pl","protothema.gr","the-express.com","travlerz.com","wpolityce.pl"],"urlFilter":"||cmp.inmobi.com^"},"id":3,"priority":30},
|
|
5
5
|
{"action":{"type":"allow"},"condition":{"initiatorDomains":["samsung.com","taboolanews.com","thestartmagazine.com"],"requestDomains":["api.taboola.com","cdn.taboola.com","images-dl.taboola.com","images.taboola.com"]},"id":4,"priority":30},
|
|
6
6
|
{"action":{"type":"block"},"condition":{"initiatorDomains":["rocketnews24.com","soranews24.com","youpouch.com"],"requestDomains":["as.uncn.jp","outbrainimg.com"]},"id":5,"priority":10},
|
|
@@ -172,7 +172,6 @@
|
|
|
172
172
|
{"action":{"type":"block"},"condition":{"urlFilter":"||api*.batmobil.net^"},"id":171,"priority":10},
|
|
173
173
|
{"action":{"type":"block"},"condition":{"urlFilter":"||adserver.*.yahoodns.net^"},"id":172,"priority":10},
|
|
174
174
|
{"action":{"type":"block"},"condition":{"urlFilter":"||ad*.nexage.com^"},"id":173,"priority":10},
|
|
175
|
-
{"action":{"type":"block"},"condition":{"excludedInitiatorDomains":["admitad.com"],"urlFilter":"||admitad.com^"},"id":174,"priority":10},
|
|
176
175
|
{"action":{"type":"block"},"condition":{"urlFilter":"||iad-*.appboy.com^"},"id":175,"priority":10},
|
|
177
176
|
{"action":{"type":"block"},"condition":{"urlFilter":"||imwx.com/mobile/adconfig/"},"id":176,"priority":10},
|
|
178
177
|
{"action":{"type":"block"},"condition":{"urlFilter":"||mediate-ios-*.hyprmx.com^"},"id":177,"priority":10},
|