diff --git a/i18n/be/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/be/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/be/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/be/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/be/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/be/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/be/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/be/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/bn/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/bn/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/bn/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/bn/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/bn/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/bn/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/bn/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/bn/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/cs/docusaurus-plugin-content-docs/current/adguard-for-android/overview.md b/i18n/cs/docusaurus-plugin-content-docs/current/adguard-for-android/overview.md index f5bf4a6f7d7..61cbb71f826 100644 --- a/i18n/cs/docusaurus-plugin-content-docs/current/adguard-for-android/overview.md +++ b/i18n/cs/docusaurus-plugin-content-docs/current/adguard-for-android/overview.md @@ -101,27 +101,27 @@ Ochranu před sledování můžete jemně doladit výběrem úrovně ochrany *Vl ### Blokování obtěžování -This feature is based on AdGuard's annoyance filters and allows you to block popups, online assistant windows, cookie notifications, prompts to download mobile apps, and similar annoyances. [Learn more about annoyance filters](/general/ad-filtering/adguard-filters/#adguard-filters) +Tato funkce je založena na AdGuard filtrech obtěžování a umožňuje blokovat vyskakovací okna, okna online asistentů, oznámení o souborech cookies, výzvy ke stažení mobilních aplikací a podobné obtěžující prvky. [Více informací o filtrech obtěžování](/general/ad-filtering/adguard-filters/#adguard-filters) ![Annoyance blocking *mobile_border](https://cdn.adtidy.org/blog/new/lwujvannoyance.png) ### DNS ochrana -*DNS protection* allows you to filter DNS requests with the help of a selected DNS server, DNS filters, and user rules: +*DNS ochrana* umožňuje filtrovat DNS požadavky pomocí vybraného DNS serveru, DNS filtrů a uživatelských pravidel: -- Some DNS servers have blocklists that help block DNS requests to potentially harmful domains +- Některé DNS servery mají seznamy blokování, které pomáhají blokovat DNS požadavky na potenciálně škodlivé domény -- In addition to DNS servers, AdGuard can filter DNS requests on its own using a special DNS filter. It contains a large list of ad and tracking domains — requests to them are rerouted to a blackhole server +- Kromě DNS serverů může AdGuard filtrovat DNS požadavky sám pomocí speciálního DNS filtru. Obsahuje velký seznam reklamních a sledovacích domén — požadavky na ně jsou přesměrovány do "černé díry" serveru -- You can also block and unblock domains by creating user rules. You might need to consult our article about [DNS filtering rule syntax](https://adguard-dns.io/kb/general/dns-filtering-syntax/) +- Domény můžete také blokovat a odblokovat vytvořením uživatelských pravidel. Možná si budete muset přečíst náš článek o [syntaxi pravidel DNS filtrování](https://adguard-dns.io/kb/general/dns-filtering-syntax/) ![DNS protection *mobile_border](https://cdn.adtidy.org/blog/new/u8qtxdns_protection.png) #### DNS server -In this section, you can select a DNS server to resolve DNS requests, block ads and trackers, and encrypt DNS traffic. Tap a server to read its full description and select a protocol. If you didn't find the desired server, you can add it manually: +V této části můžete vybrat DNS server pro řešení DNS požadavků, blokování reklam a slídičů a šifrování DNS přenosů. Klepnutím na server si přečtěte jeho celý popis a vyberte protokol. Pokud jste požadovaný server nenašli, můžete jej přidat ručně: -- Click *Add DNS server* and enter the server address (or addresses) +- Klikněte na *Přidat DNS server* a zadejte adresu serveru (nebo adresy) - Alternatively, you can select a DNS server from the [list of known DNS providers](https://adguard-dns.io/kb/general/dns-providers/) and click *Add to AdGuard* next to it @@ -139,7 +139,7 @@ This feature helps manage Internet access for specific apps installed on your de ![Firewall *mobile_border](https://cdn.adtidy.org/blog/new/gdn94firewall.png) -#### Global firewall rules +#### Globální pravidla brány firewall This section allows you to control Internet access for the entire device. @@ -147,7 +147,7 @@ This section allows you to control Internet access for the entire device. These rules apply to all apps on your device unless you've set custom rules for them. -#### Custom firewall rules +#### Vlastní pravidla brány firewall In this section, you can control Internet access for specific apps — block the ones you don’t find trustworthy, or, on the contrary, unblock the ones you want to use despite global firewall rules. @@ -167,7 +167,7 @@ In this section, you can control Internet access for specific apps — block the To delete a rule or app from *Custom rules*, swipe it to the left. -### Quick actions +### Rychlé akce *Quick actions* are based on the requests from *Recent activity* (which can be found in *Statistics*). This section shows which apps have recently connected to the Internet. @@ -199,7 +199,7 @@ If you disable AdGuard VPN, AdGuard will stop using it as an outbound proxy. If If you have AdGuard Ad Blocker and install AdGuard VPN, the Ad Blocker app will detect it and enable *Integration with AdGuard VPN* automatically. The same happens in reverse. Note that if you've enabled integration, you won't be able to manage app exclusions and connect to DNS servers from the AdGuard VPN app. You can specify apps to be routed through your VPN tunnel via *Settings* → *Filtering* → *Network* → *Proxy* → *Apps operating through proxy*. To select a DNS server, open AdGuard → *DNS protection* → *DNS server*. -## App management +## Správa aplikací This section allows you to manage permissions and filtering settings for all apps installed on your device. @@ -236,7 +236,7 @@ This feature gives you a complete picture of what is happening with the traffic The stats are categorized into different sections. -### Requests +### Požadavky This section shows the number of blocked ads, trackers, and the total number of requests for the selected time period: 24 hours, 7 days, 30 days, or all time. You can also filter requests by data type: mobile data, Wi-Fi, or all data combined. @@ -244,11 +244,11 @@ This section shows the number of blocked ads, trackers, and the total number of You can tap a request to view its details and add a blocking or unblocking rule. -### Data usage +### Využití dat This section shows the amount of downloaded, uploaded, and saved traffic for the selected time period and data type. Tap *saved*, *uploaded*, or *downloaded* to view the graph of data usage over time. -### Apps +### Aplikace This section displays stats for all apps installed on your device. You can sort apps by the number of blocked ads or trackers or by the number of sent requests. @@ -258,15 +258,15 @@ Tap *View all apps* to expand the list of your apps, sorted by the number of ads If you tap an app, you can see its full stats: the requests it sends and the domains and companies it reaches out to. -### Companies +### Společnosti This section displays companies that your device reaches out to. What does it mean? AdGuard detects the domains your device sends requests to and determines which companies they belong to. A database of companies can be found on [GitHub](https://github.com/AdguardTeam/companiesdb). -### DNS statistics +### Statistiky DNS This section shows data about the requests handled by *DNS protection*. You can see the total number of requests sent and how many were blocked by AdGuard in figures and graphs. You'll also find statistics on the amount of traffic saved, downloaded, and uploaded. -### Battery usage +### Využití baterie This section displays statistics on the device resources used by AdGuard during the last 24 hours. The data may differ from your device settings. This happens because the system attributes the traffic of filtered apps to AdGuard. Thus, the device shows that AdGuard consumes more resources than it actually does. [Read more about battery and traffic consumption issues](/adguard-for-android/solving-problems/battery/) diff --git a/i18n/cs/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/cs/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 566959577a3..5d00c401cc3 100644 --- a/i18n/cs/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/cs/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -107,7 +107,7 @@ AdGuard [rozšiřuje CSS](#extended-css-selectors) a umožňuje tak vývojářů **Oblíbené selektory CSS** -| Název | Selektor CSS | Popis | +| Name | CSS selector | Description | | ---------------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ID selector | `#banners` | Matches all elements with `id` attribute equal to `banners`.
![ID selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_id_selector.png) | | Class selector | `.banners` | Matches all elements with `class` attribute containing `banners`.
![Class selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_class_selector.png) | @@ -247,20 +247,32 @@ Příklad: ### Základní modifikátory {#basic-rules-basic-modifiers} +Následující modifikátory jsou nejjednodušší a nejčastěji používané. V podstatě jen omezují rozsah použití pravidel. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard pro iOS][ios-app] | [AdGuard pro Safari][ext-saf] | [Blokátor obsahu AdGuard][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -Následující modifikátory jsou nejjednodušší a nejčastěji používané. V podstatě jen omezují rozsah použití pravidel. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ Pokud chcete, aby se pravidlo nevztahovalo na určité aplikace, začněte náze - `||baddomain.com^$app=~org.example.app` — pravidlo pro blokování požadavků, které odpovídají zadané masce a jsou odeslány z jakékoli aplikace kromě `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — stejně jako výše, ale nyní jsou vyloučeny dvě aplikace: `org.example.app1` a `org.example.app2`. +:::caution Omezení + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Kompatibilita - Pouze AdGuard pro Windows, Mac a Android jsou technicky schopné používat pravidla s modifikátorem `$app`. @@ -408,6 +426,8 @@ V následujících příkladech se předpokládá, že požadavky jsou odesílá - `/banner\d+/$domain=targetdomain.com` nebude přiřazena, protože obsahuje regulární výraz. - `page$domain=targetdomain.com|~example.org` nebude přiřazena, protože doména odkazu je výslovně vyloučena. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Omezení Safari nepodporuje současné použití povolených a zakázaných domén, takže pravidla jako `||baddomain.com^$domain=example.org|~foo.example.org` nebudou v AdGuardu pro iOS a AdGuardu pro Safari fungovat. @@ -483,9 +503,15 @@ Tento modifikátor definuje pravidlo, které se vztahuje pouze na adresy odpoví - `*/BannerAd.gif$match-case` — toto pravidlo zablokuje `http://example.com/BannerAd.gif`, ale ne `http://example.com/bannerad.gif`. +:::info Kompatibilita + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -Tento modifikátor omezuje rozsah pravidla na požadavky, které používají zadanou sadu metod HTTP. Negované metody jsou povoleny. Metody musí být zadány malými písmeny, ale při porovnávání se nerozlišují velká a malá písmena. Chcete-li do jednoho pravidla přidat více domén, použijte jako oddělovací znak `|`. +Tento modifikátor omezuje rozsah pravidla na požadavky, které používají zadanou sadu metod HTTP. Negované metody jsou povoleny. Metody musí být zadány malými písmeny, ale při porovnávání se nerozlišují velká a malá písmena. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Příklady** @@ -502,7 +528,7 @@ Pravidla s omezením smíšených hodnot jsou považována za neplatná. Takže :::info Kompatibilita -Pravidla s `$method` jsou podporována AdGuardem pro Windows, Mac, Android, **s CoreLibs v1.12 nebo novějším** a rozšířením prohlížeče AdGuard pro Chrome, Firefox, Edge s **TSUrlFilter v2.1.1 nebo novějším**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard se pokusí zavřít kartu prohlížeče s jakoukoli adresou, která odpo - Modifikátor `$popup` funguje nejlépe v Rozšíření prohlížeče AdGuard. - V AdGuardu pro Safari a iOS, pravidla `$popup` stránku jednoduše a okamžitě zablokují. - V AdGuardu pro Windows, Mac a Android nemusí modifikátor `$popup` v některých případech detekovat vyskakovací okno a nebude zablokováno. Modifikátor `$popup` použije typ obsahu `document` se speciálním příznakem, který je předán blokovací stránce. Samotná blokovací stránka může provést některé kontroly a zavřít okno, pokud se skutečně jedná o vyskakovací okno. V opačném případě by se stránka měla načíst. Lze to kombinovat s dalšími modifikátory typu požadavku, jako je `$third-party` a `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Pravidla s modifikátorem `$to` jsou podporována AdGuardem pro Windows, Mac, An ### Modifikátory typu obsahu {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (odstraněno)](#object-subrequest-modifier) -- [`$webrtc` (odstraněno)](#webrtc-modifier) - Existuje sada modifikátorů, které lze použít k omezení oblasti použití pravidla na určitý typ obsahu. Tyto modifikátory lze také kombinovat, aby zahrnovaly například obrázky i skripty. :::info Kompatibilita -V tom, jak AdGuard určuje typ obsahu na různých platformách, je velký rozdíl. U Rozšíření prohlížeče AdGuard je typ obsahu pro každý požadavek poskytován prohlížečem. AdGuard pro Windows, Mac a Android používají následující metodu: nejprve se pokusíme určit typ požadavku podle záhlaví požadavku `Sec-Fetch-Dest` nebo podle přípony názvu souboru. Pokud není požadavek v této fázi zablokován, určí se typ pomocí záhlaví `Content-Type` na začátku odpovědi serveru. +V tom, jak AdGuard určuje typ obsahu na různých platformách, je velký rozdíl. U Rozšíření prohlížeče AdGuard je typ obsahu pro každý požadavek poskytován prohlížečem. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ V tom, jak AdGuard určuje typ obsahu na různých platformách, je velký rozd - `||example.org^$script,stylesheet` — odpovídá všem skriptům a stylům z `example.org`. - `||example.org^$~image,~script,~stylesheet` — odpovídá všem požadavkům na `example.org` kromě obrázků, skriptů a stylů. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard pro iOS][ios-app] | [AdGuard pro Safari][ext-saf] | [Blokátor obsahu AdGuard][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} Pravidlo odpovídá požadavkům na dokument hlavního rámce, tj. dokumenty HTML načtené na kartě prohlížeče. Neodpovídá hodnotám iframe, pro ten existuje modifikátor [`$subdocument`](#subdocument-modifier). @@ -647,6 +685,8 @@ Pravidlo odpovídá požadavkům vyvolaným buď `navigator.sendBeacon()`, nebo AdGuard pro Windows, Mac a Android často nedokáží přesně detekovat `navigator.sendBeacon()`. V seznamech filtrů, které mají používat AdGuard produkty založené na knihovně CoreLibs, se nedoporučuje používat `$ping`. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ Pravidlo odpovídá požadavkům na vestavěné stránky — značky HTML `frame - `||example.com^$subdocument` blokuje integrované požadavky (`frame` a `iframe`) na `example.com` a všechny její subdomény kdekoli. - `||example.com^$subdocument,domain=domain.com` blokuje integrované požadavky (`frame` и `iframe`) na `example.com` (a její subdomény) z `domain.com` a všech jejích subdomén. +:::info Kompatibilita + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} Pravidlo se vztahuje pouze na připojení WebSocket. @@ -711,19 +759,6 @@ Pravidlo se vztahuje pouze na připojení WebRTC. ### Modifikátory pravidel pro výjimky {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generická pravidla](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Pravidla výjimek deaktivují ostatní základní pravidla pro adresy, kterým odpovídají. Začínají značkou `@@`. Lze na ně aplikovat všechny výše uvedené základní modifikátory a mají také několik speciálních modifikátorů. :::note Vizuální znázornění @@ -732,6 +767,28 @@ Doporučujeme také seznámit se s [tímto článkem](https://adblockplus.org/fi ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard pro iOS][ios-app] | [AdGuard pro Safari][ext-saf] | [Blokátor obsahu AdGuard][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Zakáže [filtrování HTML](#html-filtering-rules), pravidla [`$hls`](#hls-modifier), [`$replace`](#replace-modifier) a [`$jsonprune`](#jsonprune-modifier) na stránkách, které odpovídají pravidlu. @@ -859,6 +916,14 @@ Zakáže blokování všech požadavků odeslaných ze stránek, které odpovíd - `@@||example.com^$urlblock` — nebudou blokovány žádné požadavky odeslané z `example.com` a ze všech subdomén. +:::info Kompatibilita + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generická pravidla {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. Pravidlo je generické, pokud není omezeno na konkrétní domény. Podporován je také zástupný znak `*`. @@ -890,6 +955,14 @@ Zakáže generická základní pravidla na stránkách, které odpovídají prav - `@@||example.com^$genericblock` zakáže generická základní pravidla na `example.com` a všech subdoménách. +:::info Kompatibilita + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Zakáže všechna generická [kosmetická pravidla](#cosmetic-rules) na stránkách, které odpovídají pravidlu výjimky. @@ -914,35 +987,49 @@ Všechna kosmetická pravidla — nejen ta specifická — lze zakázat pomocí :::info Kompatibilita -Pravidla s modifikátorem `$specifichide` **nejsou podporována** AdGuardem pro iOS a Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Pokročilé schopnosti +### Pokročilé schopnosti {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (zastaralé)](#empty-modifier) -- [`$mp4` (zastaralé)](#mp4-modifier) - -Tyto modifikátory mohou zcela změnit chování základních pravidel. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard pro iOS][ios-app] | [AdGuard pro Safari][ext-saf] | [Blokátor obsahu AdGuard][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Pravidla `$hls` lze také zakázat pravidly výjimek `$document`, `$content` a ` ::: -**Omezení** - -- Pravidla `$hls` jsou povolena pouze v důvěryhodných filtrech -- Pravidla `$hls` jsou kompatibilní s modifikátory `$domain`, `$third- party`, `$app`, `$important`, `$match- case` a `$xmlhttprequest` -- `$hls` pravidla platí pouze pro seznamy stop HLS, což je text kódovaný v UTF-8 začínající řádkem `#EXTM3U`. Jakákoli jiná odpověď nebude těmito pravidly upravena -- Pravidla `$hls` neplatí, pokud je velikost původní odpovědi větší než 3 MB - :::note Když vícenásobná pravidla `$hls` odpovídají stejnému požadavku, jejich účinek je kumulativní. @@ -1286,11 +1366,6 @@ Základní výjimky URL nesmí zakázat pravidla s modifikátorem `$jsonprune`. Pravidla `$jsonprune` lze také zakázat pravidly výjimek `$document`, `$content` a `$urlblock`. -**Omezení** - -- Pravidla `$jsonprune` jsou kompatibilní s `$domain`, `$third- party`, `$app`, `$important`, `$match- case` a modifikátory `$xmlhttprequest`. -- Pravidla `$jsonprune` neplatí, pokud je velikost původní odpovědi větší než 3 MB. - :::note Když vícenásobná pravidla `$jsonprune` odpovídají stejnému požadavku, jsou seřazena v lexikografickém pořadí, první pravidlo je aplikováno na původní odpověď a každé ze zbývajících pravidel je aplikováno na výsledek použití předchozího. @@ -1540,7 +1615,7 @@ Hodnota `$permissions` může být v případě pravidel pro výjimky prázdná - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. Např. výše uvedené pravidlo. - `@@||example.org/page/*$permissions` zakáže všechna pravidla `$permissions` na všech stránkách odpovídajících vzoru pravidla. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` zakáže použití API pro přístup k úložišti pro vyžádání přístupu k nerozděleným souborům cookies a používání vstupních zařízení videa napříč `example.org` a `example.com`. - `@@||example.org^$document` nebo `@@||example.org^$urlblock` zakáží všechna pravidla `$permission` na všech stránkách odpovídajících vzoru pravidla. :::caution Omezení @@ -1861,7 +1936,7 @@ Pravidla `$removeparam` lze také zakázat pravidly výjimek `$document` a `$url :::caution Omezení - Pravidla s modifikátorem `$removeparam` lze použít [**pouze v důvěryhodných filtrech**](#trusted-filters). -- Pravidla `$removeparam` jsou kompatibilní se [základními modifikátory](#basic-rules-common-modifiers), [modifikátory typu obsahu](#content-type-modifiers) a s modifikátory `$important` a `$app`. Pravidla s jinými modifikátory jsou považována za neplatná a budou vyřazena. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Váha pravidla: základní + povolený typ obsahu, [kategorie 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Ostatní pravidla +## Ostatní pravidla {#non-basic-rules} + +However, basic rules may not be enough to block ads. Někdy potřebujete skrýt prvek nebo změnit část kódu HTML webové stránky, aniž byste cokoli porušili. Pravidla popsaná v této části jsou vytvořena speciálně pro tento účel. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard pro iOS][ios-app] | [AdGuard pro Safari][ext-saf] | [Blokátor obsahu AdGuard][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Pravidla CSS](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -Možnosti základních pravidel však nemusí být pro blokování reklam dostatečné. Někdy potřebujete skrýt prvek nebo změnit část kódu HTML webové stránky, aniž byste cokoli porušili. Pravidla popsaná v této části jsou vytvořena speciálně pro tento účel. +::: ## Kosmetická pravidla {#cosmetic-rules} @@ -2828,7 +2918,7 @@ subject:nth-ancestor(n) subject:nth-ancestor(n) ``` -- `subjectr` — povinný, standardní nebo rozšířený selektor CSS +- `subject` — required, standard or extended CSS selector - `n` — povinné, číslo >= 1 a < 256, vzdálenost k potřebnému předkovi od prvku vybraného pomocí `subject` ##### `:nth-ancestor()` limitations {#extended-css-nth-ancestor-limitations} @@ -2866,7 +2956,7 @@ Pseudo-třída `:upward()` umožňuje vyhledat předka vzhledem k dříve vybran subject:upward(ancestor) ``` -- `subjectr` — povinný, standardní nebo rozšířený selektor CSS +- `subject` — required, standard or extended CSS selector - `ancestor` — povinný, specifikace pro předka prvku vybraného pomocí `subject`, lze nastavit jako: - *číslo* >= 1 a < 256 pro vzdálenost k požadovanému předkovi, stejně jako u položky [`:nth-ancestor()`](#extended-css-nth-ancestor) - *standardní selektor CSS* pro shodu nejbližšího předka @@ -3286,14 +3376,7 @@ Přečtěte si další informace o [ladění skripletů](#debug-scriptlets). Další informace o důvěryhodných skriptletech najdete na [GitHubu](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifikátory pro ostatní typ pravidel - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifikátory pro ostatní typ pravidel {#non-basic-rules-modifiers} Každé pravidlo lze upravit pomocí modifikátorů popsaných v následujících odstavcích. @@ -3311,6 +3394,21 @@ Např.: `[$domain=example.com,app=test_app]##selector`. V modifikátorech musí být uvozeny hodnoty následujících znaků: `[`, `]`, `,`a `\` (pokud se pro uvození nepoužívá). K uvození použijte `\`. Např. uvozená závorka vypadá takto: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard pro iOS][ios-app] | [AdGuard pro Safari][ext-saf] | [Blokátor obsahu AdGuard][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} Modifikátor `$app` umožňuje zúžit pokrytí pravidla na konkrétní aplikaci, nebo seznam aplikací. Chování a syntaxe modifikátoru dokonale odpovídají příslušným [základním pravidlům modifikátoru `$app`](#app-modifier). @@ -3382,11 +3480,11 @@ Modifikátor `$path` podporuje regulární výrazy [stejným způsobem](#regexp- :::info Kompatibilita -Pravidla s modifikátorem `$path` podporuje AdGuard pro Windows, Mac, Android a Rozšíření prohlížeče AdGuard pro Chrome, Firefox a Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} Modifikátor `$url` omezuje oblast použití pravidla na adresy URL odpovídající zadané masce. @@ -3783,3 +3881,39 @@ Následující skriptlety lze také použít pro účely ladění: Přejeme vám hodně štěstí při vytváření vlastních filtrů reklam. Pokud potřebujete poradit, jak správně vytvořit vlastní filtry, naše fórum má [sekci](https://forum.adguard.com/index.php?forums/69/) věnovanou psaní vlastních pravidel filtrování. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard pro Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/da/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/da/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/da/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/da/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/da/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/da/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/da/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/da/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/de/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/de/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 777366630d1..ebd260c9138 100644 --- a/i18n/de/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/de/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/de/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/de/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index a34597c12c8..f12985ee840 100644 --- a/i18n/de/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/de/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard für iOS][ios-app] | [AdGuard für Safari][ext-saf] | [AdGuard-Inhaltsblocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:--------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Beschränkungen + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Kompatibilität - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Beschränkungen Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Kompatibilität + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Kompatibilität -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Kompatibilität -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard für iOS][ios-app] | [AdGuard für Safari][ext-saf] | [AdGuard-Inhaltsblocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:--------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Kompatibilität + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visuelle Darstellung @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard für iOS][ios-app] | [AdGuard für Safari][ext-saf] | [AdGuard-Inhaltsblocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:--------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Kompatibilität + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Kompatibilität + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Kompatibilität -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard für iOS][ios-app] | [AdGuard für Safari][ext-saf] | [AdGuard-Inhaltsblocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:--------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Beschränkungen @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Beschränkungen - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard für iOS][ios-app] | [AdGuard für Safari][ext-saf] | [AdGuard-Inhaltsblocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:--------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard für iOS][ios-app] | [AdGuard für Safari][ext-saf] | [AdGuard-Inhaltsblocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:--------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Kompatibilität -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard für Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/de/docusaurus-plugin-content-docs/current/guides/adware.md b/i18n/de/docusaurus-plugin-content-docs/current/guides/adware.md index 242e55a736c..2f41691f17d 100644 --- a/i18n/de/docusaurus-plugin-content-docs/current/guides/adware.md +++ b/i18n/de/docusaurus-plugin-content-docs/current/guides/adware.md @@ -49,7 +49,7 @@ If disabling of settings and extensions does not help, try to [recreate shortcut Further on this page we describe the instructions on how to remove some of the most commonly encountered ad extensions. -## Wie man Einstellungen und Erweiterungen im Browser deaktiviert {#instructions} +## So deaktivieren Sie Einstellungen und Erweiterungen im Browser {#instructions} Below are the instructions on how to disable settings and extensions for the most popular browsers: @@ -59,7 +59,7 @@ Below are the instructions on how to disable settings and extensions for the mos - [für Opera](https://help.opera.com/en/latest/customization/#extensions) -## Wie man Verknüpfungen für Ihre Browser neu erstellt {#shortcuts} +## So erstellen Sie neue Verknüpfungen für Ihre Browser {#shortcuts} Very often, malware and adware programs install their homepage in a very simple way — they substitute your browser's desktop shortcut, taskbar and *Start* menu items. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/es/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 171a6fdc895..8afdb256c45 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/es/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 06140e9634b..ef06e19494b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard para iOS][ios-app] | [AdGuard para Safari][ext-saf] | [Bloqueador de contenido AdGuard][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:-----------------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard para iOS][ios-app] | [AdGuard para Safari][ext-saf] | [Bloqueador de contenido AdGuard][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:-----------------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard para iOS][ios-app] | [AdGuard para Safari][ext-saf] | [Bloqueador de contenido AdGuard][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:-----------------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard para iOS][ios-app] | [AdGuard para Safari][ext-saf] | [Bloqueador de contenido AdGuard][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:-----------------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard para iOS][ios-app] | [AdGuard para Safari][ext-saf] | [Bloqueador de contenido AdGuard][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:-----------------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard para iOS][ios-app] | [AdGuard para Safari][ext-saf] | [Bloqueador de contenido AdGuard][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:-----------------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard para Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/fa/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/fa/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/fa/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/fa/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/fa/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/fa/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/fa/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/fa/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/fi/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/fi/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/fi/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/fi/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/fi/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/fi/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/fi/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/fi/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index b9191988493..6315a003540 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/fr/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index cb37be8a86c..4dec7188777 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard pour iOS][ios-app] | [AdGuard pour Safari][ext-saf] | [Bloqueur de contenu AdGuard][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:-------------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard pour iOS][ios-app] | [AdGuard pour Safari][ext-saf] | [Bloqueur de contenu AdGuard][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:-------------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard pour iOS][ios-app] | [AdGuard pour Safari][ext-saf] | [Bloqueur de contenu AdGuard][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:-------------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard pour iOS][ios-app] | [AdGuard pour Safari][ext-saf] | [Bloqueur de contenu AdGuard][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:-------------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard pour iOS][ios-app] | [AdGuard pour Safari][ext-saf] | [Bloqueur de contenu AdGuard][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:-------------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard pour iOS][ios-app] | [AdGuard pour Safari][ext-saf] | [Bloqueur de contenu AdGuard][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:-------------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard pour Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/hr/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/hr/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/hr/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/hr/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/hr/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/hr/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/hr/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/hr/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/hu/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/hu/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/hu/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/hu/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/hu/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/hu/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/hu/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/hu/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/it/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/it/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 3e9b2fe3b14..e653ce3ccd6 100644 --- a/i18n/it/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/it/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/it/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/it/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 40f58e62da8..68af3ff1d0f 100644 --- a/i18n/it/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/it/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard per iOS][ios-app] | [AdGuard per Safari][ext-saf] | [Blocco contenuti AdGuard][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:----------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard per iOS][ios-app] | [AdGuard per Safari][ext-saf] | [Blocco contenuti AdGuard][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:----------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard per iOS][ios-app] | [AdGuard per Safari][ext-saf] | [Blocco contenuti AdGuard][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:----------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard per iOS][ios-app] | [AdGuard per Safari][ext-saf] | [Blocco contenuti AdGuard][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:----------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard per iOS][ios-app] | [AdGuard per Safari][ext-saf] | [Blocco contenuti AdGuard][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:----------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard per iOS][ios-app] | [AdGuard per Safari][ext-saf] | [Blocco contenuti AdGuard][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:----------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard per Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 03ba630a60a..ab85da95044 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/ja/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 9d97b9662ad..7a0eb373a42 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuardコンテンツブロッカー][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuardコンテンツブロッカー][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuardコンテンツブロッカー][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuardコンテンツブロッカー][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuardコンテンツブロッカー][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuardコンテンツブロッカー][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/ko/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 8d7b33f18a6..bd75ef209fc 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/ko/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index afae2cb9a70..d0b1e6a7576 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/nl/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/nl/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/nl/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/nl/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/nl/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/nl/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/nl/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/nl/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/no/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/no/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/no/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/no/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/no/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/no/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/no/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/no/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/pl/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/pl/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/pl/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/pl/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/pl/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/pl/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/pl/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/pl/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/pt-BR/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/pt-BR/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 88d3dcd73af..83e75c9aa3c 100644 --- a/i18n/pt-BR/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/pt-BR/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/pt-BR/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/pt-BR/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 98006e0a29d..54f99616ded 100644 --- a/i18n/pt-BR/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/pt-BR/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard para iOS][ios-app] | [AdGuard para Safari][ext-saf] | [Bloqueador de conteúdo do AdGuard][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:-------------------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard para iOS][ios-app] | [AdGuard para Safari][ext-saf] | [Bloqueador de conteúdo do AdGuard][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:-------------------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard para iOS][ios-app] | [AdGuard para Safari][ext-saf] | [Bloqueador de conteúdo do AdGuard][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:-------------------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard para iOS][ios-app] | [AdGuard para Safari][ext-saf] | [Bloqueador de conteúdo do AdGuard][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:-------------------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard para iOS][ios-app] | [AdGuard para Safari][ext-saf] | [Bloqueador de conteúdo do AdGuard][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:-------------------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard para iOS][ios-app] | [AdGuard para Safari][ext-saf] | [Bloqueador de conteúdo do AdGuard][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:-------------------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard para Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 421e4b15eeb..a49b19a9f51 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/pt/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 1c668ab7be3..7447fd6253c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/ro/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/ro/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/ro/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/ro/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/ro/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/ro/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/ro/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/ro/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/adguard-for-android/solving-problems/background-work.md b/i18n/ru/docusaurus-plugin-content-docs/current/adguard-for-android/solving-problems/background-work.md index 94dd8916d5a..daf45714877 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/adguard-for-android/solving-problems/background-work.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/adguard-for-android/solving-problems/background-work.md @@ -229,15 +229,15 @@ For early Samsung devices, there is no huge need for setting up the background o - Tap the **Recent tasks** button, tap the **Additional settings** icon. It should look like this: - ![Samsung settings *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/android/solving_problems/background-work/oldsamsung_1.png) + ![Настройки Samsung *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/android/solving_problems/background-work/oldsamsung_1.png) - Tap **Lock Apps**: - ![Samsung settings *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/android/solving_problems/background-work/oldsamsung_2.png) + ![Настройки Samsung *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/android/solving_problems/background-work/oldsamsung_2.png) - Tap on the lock icon - ![Samsung settings *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/android/solving_problems/background-work/oldsamsung_3.png) + ![Настройки Samsung *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/android/solving_problems/background-work/oldsamsung_3.png) ## Huawei diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 821576cb994..22db99a252f 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ Web of Trust показывает вам репутацию каждого са **Что делает AdGuard VPN:** - скрывает ваше реальное местоположение и помогает оставаться анонимным -- изменяет ваш IP-адрес, чтобы защитить ваши данные от отслеживания +- changes your IP address to protect your data from tracking - шифрует ваш трафик, делая его недоступным для мошенников - позволяет настроить, где использовать VPN, а где нет (функция исключений) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/ru/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 7723494b563..9ab852c01f0 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -107,15 +107,15 @@ AdGuard [расширяет возможности CSS](#extended-css-selectors) **Популярные CSS-селекторы** -| Имя | CSS-селектор | Описание | -| ---------------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ID selector | `#banners` | Соответствует всем элементам с атрибутом i`d`, равным `banners`.
![ID selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_id_selector.png) | -| Class selector | `.banners` | Соответствует всем элементам типа `class`, содержащих `banners`.
![Class selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_class_selector.png) | -| Attribute selector | `div[class="banners"]` | Соответствует всем `div` элементам с атрибутом `class `, **равным** `banners`.
![Attribute selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_class_attr.png) | -| Attribute substring selector | `div[class^="advert1"]` | Соответствует всем `div` элементам, атрибут `class` которых **начинается** с `advert1`.
![Attribute substring selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_class_attr_start.png) | -| Attribute substring selector | `div[class$="banners_ads"]` | Соответствует всем `div` элементам, атрибут `class` которых **заканчивается** на `banners_ads`.
![Attribute substring selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_class_attr_end.png) | -| Attribute substring selector | `a[href^="http://example.com/"]` | Соответствует всем ссылкам, загруженным с домена `http://example.com/`.
![Attribute substring selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_attr_start.png) | -| Attribute selector | `a[href="http://example.com/"]` | Соответствует всем ссылкам **конкретно** `http://example.com/`.
![Attribute selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_attr_equal.png) | +| Name | CSS selector | Description | +| ---------------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ID selector | `#banners` | Matches all elements with `id` attribute equal to `banners`.
![ID selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_id_selector.png) | +| Class selector | `.banners` | Matches all elements with `class` attribute containing `banners`.
![Class selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_class_selector.png) | +| Attribute selector | `div[class="banners"]` | Matches all `div` elements with `class` attribute **exactly equal** to `banners`.
![Attribute selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_class_attr.png) | +| Attribute substring selector | `div[class^="advert1"]` | Matches all `div` elements which `class` attribute **starts with** the `advert1` string.
![Attribute substring selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_class_attr_start.png) | +| Attribute substring selector | `div[class$="banners_ads"]` | Matches all `div` elements which `class` attribute **ends with** the `banners_ads` string.
![Attribute substring selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_class_attr_end.png) | +| Attribute substring selector | `a[href^="http://example.com/"]` | Matches all links that are loaded from `http://example.com/` domain.
![Attribute substring selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_attr_start.png) | +| Attribute selector | `a[href="http://example.com/"]` | Matches all links to **exactly** the `http://example.com/` address.
![Attribute selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_attr_equal.png) | ## Ограничения и запреты @@ -247,20 +247,32 @@ Wildcard-символы поддерживаются для TLD-доменов ### Базовые модификаторы {#basic-rules-basic-modifiers} +Приведённые ниже модификаторы самые простые и часто применяемые. В основном, они просто ограничивают сферу применения правила. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard для iOS][ios-app] | [AdGuard для Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -Приведённые ниже модификаторы самые простые и часто применяемые. В основном, они просто ограничивают сферу применения правила. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ Wildcard-символы поддерживаются для TLD-доменов - `||baddomain.com^$app=~org.example.app` — правило для блокировки запросов, соответствующих указанной маске и отправленных из любого приложения, кроме `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — аналогично, но в исключениях два приложения: `org.example.app1` и `org.example.app2`. +:::caution Ограничения + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Совместимость - Только AdGuard для Windows, Mac и Android имеют технические возможности для поддержки правил с модификатором `$app`. @@ -408,6 +426,8 @@ entry_i = ( regular_domain / any_tld_domain / regexp ) - `/banner\d+/$domain=targetdomain.com` не сработает, поскольку правило содержит регулярное выражение. - `page$domain=targetdomain.com|~example.org` не сработает, так как домен реферера явно исключён. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Ограничения Safari не поддерживает одновременно разрешённые и запрещённые домены, поэтому правила вида `||baddomain.com^$domain=example.org|~foo.example.org` не работают в AdGuard для iOS и AdGuard для Safari. @@ -483,9 +503,15 @@ h_value = string / regexp - `*/BannerAd.gif$match-case `— такое правило будет блокировать `http://example.com/BannerAd.gif`, но не `http://example.com/bannerad.gif`. +:::info Совместимость + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -Этот модификатор ограничивает область действия правила запросами, использующими указанный набор методов HTTP. Допускаются отрицательные методы. Методы должны быть указаны строчными буквами, но сопоставляются они без учёта регистра. Чтобы добавить несколько доменов в одно правило, используйте символ `|` в качестве разделителя. +Этот модификатор ограничивает область действия правила запросами, использующими указанный набор методов HTTP. Допускаются отрицательные методы. Методы должны быть указаны строчными буквами, но сопоставляются они без учёта регистра. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Примеры** @@ -502,7 +528,7 @@ h_value = string / regexp :::info Совместимость -Правила с `$method` поддерживаются AdGuard для Windows, Mac, Android, **с CoreLibs 1.12 или более поздней версии**, а также Браузерным расширением AdGuard для Chrome, Firefox, Edge, **с TSUrlFilter 2.1.1 или более поздней версии**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard будет пытаться закрыть браузерную вкла - Модификатор `$popup` лучше всего работает в браузерном расширении AdGuard. - В AdGuard для Safari и iOS `$popup-правила` просто заблокируют страницу. - В AdGuard для Windows, Mac и Android модификатор `$popup` в некоторых случаях может не обнаружить всплывающее окно, и оно не будет заблокировано. Модификатор `$popup` применяет тип контента `document` со специальным флагом, который передаётся блокирующей странице. Блокирующая страница сама может провести некоторые проверки и закрыть окно, если это действительно всплывающее окно. В противном случае страница должна быть загружена. Его можно комбинировать с другими модификаторами типа request, такими как `$third-party` и `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ AdGuard будет пытаться закрыть браузерную вкла ### Модификаторы типа контента {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (удалён)](#object-subrequest-modifier) -- [`$webrtc` (удалён)](#webrtc-modifier) - Существует целый набор модификаторов, которые ограничивают область применения правила только определённым типом контента. Эти модификаторы можно комбинировать, чтобы, например, распространить правило одновременно и на картинки, и на скрипты. :::info Совместимость -Существует большая разница в том, как AdGuard определяет тип контента на разных платформах. В случае Браузерного расширения AdGuard, тип контента для каждого запроса предоставляется самим браузером. В случае AdGuard для Windows, Mac и Android для определения используется следующая методика: сначала мы пытаемся определить тип запроса по заголовку запроса `Sec-Fetch-Dest` или по расширению имени файла. Если запрос не заблокирован на этом этапе, то тип запроса уточняется с использованием заголовка `Content-Type` в начале ответа, полученного от сервера. +Существует большая разница в том, как AdGuard определяет тип контента на разных платформах. В случае Браузерного расширения AdGuard, тип контента для каждого запроса предоставляется самим браузером. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ AdGuard будет пытаться закрыть браузерную вкла - `||example.org^$script,stylesheet` — соответствует всем скриптам и стилям с домена `example.org`. - `||example.org^$~image,~script,~stylesheet` — соответствует всем запросам к домену `example.org`, кроме картинок, скриптов и стилей. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard для iOS][ios-app] | [AdGuard для Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} Правило соответствует запросам основного документа страницы, т.е. HTML-документа, который загружается во вкладке браузера. Оно не подходит для iframe, для них существует модификатор [`$subdocument`](#subdocument-modifier). @@ -647,6 +685,8 @@ AdGuard будет пытаться закрыть браузерную вкла AdGuard для Windows, Mac и Android часто не может точно определить `navigator.sendBeacon()`. Не рекомендуется использовать `$ping` в фильтрах, которые должны использоваться продуктами AdGuard на базе CoreLibs. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ AdGuard для Windows, Mac и Android часто не может точно о - `||example.com^$subdocument` блокирует запросы встроенных страниц (`frame` и `iframe`) к `example.com` и всем его поддоменам. - `||example.com^$subdocument,domain=domain.com` блокирует запросы встроенных страниц (`frame` и `iframe`) к `example.com` и его поддоменам с `domain.com` и всех его поддоменов. +:::info Совместимость + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} Правило применяется только к соединениям WebSocket. @@ -711,19 +759,6 @@ AdGuard для Windows, Mac и Android часто не может точно о ### Модификаторы правил-исключений {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic-правила](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Правила-исключения отключают действие других базовых правил для адресов, которым они соответствуют. Они начинаются с маркера `@@`. Для таких правил работают все базовые модификаторы, перечисленные выше. Также добавляется несколько специальных модификаторов, которые будут описаны ниже. :::note Визуальное представление @@ -732,6 +767,28 @@ AdGuard для Windows, Mac и Android часто не может точно о ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard для iOS][ios-app] | [AdGuard для Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Отключает [HTML-фильтрацию](#html-filtering-rules), правила [`$hls`](#hls-modifier), [`$replace`](#replace-modifier)и [`$jsonprune`](#jsonprune-modifier) на страницах, соответствующих правилу. @@ -859,6 +916,14 @@ $stealth [= opt1 [| opt2 [| opt3 [...]]]] - `@@||example.com^$urlblock` — любые запросы, отправленные со страниц сайта `example.com` и всех его поддоменов, не будут блокироваться. +:::info Совместимость + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic-правила {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. Правило относится к generic-правилам, если его действие не ограничено конкретными доменами. Также поддерживается wildcard-символ `*`. @@ -890,6 +955,14 @@ domain.com###banner - `@@||example.com^$genericblock` отключает базовые правила generic на любых страницах `example.com` и всех поддоменах. +:::info Совместимость + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Отключает все [косметические правила](#cosmetic-rules) generic на страницах, соответствующих правилу-исключению. @@ -914,35 +987,49 @@ domain.com###banner :::info Совместимость -Правила с модификатором `$specifichide` **не поддерживаются** в AdGuard для iOS и Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Расширенные возможности +### Расширенные возможности {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (устаревший)](#empty-modifier) -- [`$mp4` (устаревший)](#mp4-modifier) - -Модификаторы, описанные в этом разделе, полностью меняют поведение базовых правил. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard для iOS][ios-app] | [AdGuard для Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ $cookie [= name[; maxAge = seconds [; sameSite = strategy ]]] ::: -**Ограничения** - -- Правила `$hls` разрешены только в доверенных фильтрах -- Правила `$hls` совместимы с модификаторами, `$domain`, `$third-party`, `$app`, `$important`, `$match-case` и `$xmlhttprequest` -- Правила `$hls` применимы только к HLS-плейлистам, т. е. к тексту в кодировке UTF-8, начинающемуся со строки `#EXTM3U`. Никакие другие ответы не будут модифицированы этими правилами -- Правила `$hls` не будут применены к ответам размером больше 3 МБ - :::note Если несколько правил `$hls` соответствуют одному и тому же запросу, их эффект суммируется. @@ -1286,11 +1366,6 @@ https://www.site24x7.com/tools/jsonpath-finder-validator.html https://jsonpathfi `$jsonprune` также можно отключить с помощью правил-исключений с модификаторами `$document`, `$content` и `$urlblock`. -**Ограничения** - -- Правила `$jsonprune` совместимы с модификаторами `$domain`, `$third-party`, `$app`, `$important`, `$match-case` и `$xmlhttprequest`. -- Правила `$jsonprune` не будут применены к ответам размером больше 3 МБ. - :::note Когда одному и тому же запросу соответствует несколько правил с модификатором `$jsonprune`, они сортируются в лексикографическом порядке: первое правило применяется к исходному ответу, а каждое из оставшихся правил применяется к результату применения предыдущего. @@ -1540,7 +1615,7 @@ The `$network` modifier can only be used in rules together with the `$app` and ` - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. Например, правило выше. - `@@||example.org/page/*$permissions` отключает все `$permissions`-правила на всех страницах, подходящих под паттерн правила. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` или `@@||example.org^$urlblock` отключает все `$permission`-правила на всех страницах, подходящих под паттерн правила. :::caution Ограничения @@ -1861,7 +1936,7 @@ $removeparam=/^(utm_content|utm_campaign|utm_referrer)=/ :::caution Ограничения - Правила с модификатором `$removeparam` могут быть использованы [**только в доверенных фильтрах**](#trusted-filters). -- Правила с `$removeparam` совместимы с [базовыми модификаторами](#basic-rules-common-modifiers), [модификаторами типа контента](#content-type-modifiers), а также с модификаторами `$important` и `$app`. Правила, содержащие другие модификаторы, считаются некорректными и не будут применены. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ All allowed content types: Вес правила: базовый вес + разрешённые типы контента, [категория 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Другие правила +## Другие правила {#non-basic-rules} + +However, basic rules may not be enough to block ads. Иногда для этого требуется скрыть какой-нибудь элемент или изменить часть HTML-кода страницы, при этом ничего не сломав. Для этого предназначены правила, описанные в данном разделе. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard для iOS][ios-app] | [AdGuard для Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS-правила](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -Возможностей базовых правил может оказаться недостаточно для блокировки рекламы. Иногда для этого требуется скрыть какой-нибудь элемент или изменить часть HTML-кода страницы, при этом ничего не сломав. Для этого предназначены правила, описанные в данном разделе. +::: ## Косметические правила {#cosmetic-rules} @@ -2828,7 +2918,7 @@ subject:nth-ancestor(n) subject:nth-ancestor(n) ``` -- `subject` — стандартный или расширенный CSS-селектор, необходим +- `subject` — required, standard or extended CSS selector - `n` — требуется, число >= 1 и < 256, расстояние до нужного родителя от элемента, выбранного `subject` ##### Ограничения `:nth-ancestor()` {#extended-css-nth-ancestor-limitations} @@ -3286,14 +3376,7 @@ example.org#%#//scriptlet("abort-on-property-read", "alert") Больше информации о доверенных скриптлетах можно найти на [GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Модификаторы для небазовых правил - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Модификаторы для небазовых правил {#non-basic-rules-modifiers} Поведение любого правила можно изменить, используя модификаторы, описанные ниже. @@ -3311,6 +3394,21 @@ modifiers = modifier0[, modifier1[, ...[, modifierN]]] В значениях модификаторов следующие символы должны быть экранированы: `[`, `]`, `,` и `\` (если он не используется для экранирования). Используйте `\`, чтобы экранировать их. Например, экранированная скобка выглядит так: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard для iOS][ios-app] | [AdGuard для Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} Модификатор `$app` ограничивает действие правила до конкретного приложения или списка приложений. Поведение и синтаксис модификатора полностью совпадают с соответствующим [модификатором `$app` для базовых правил](#app-modifier). @@ -3382,11 +3480,11 @@ $path ["=" pattern] :::info Совместимость -Правила с модификатором `$path` поддерживаются в AdGuard для Windows, Mac и Android и Браузерном расширении AdGuard для Chrome, Firefox и Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} Модификатор `$url` ограничивает действие правила запросами, URL которых соответствует указанной маске. @@ -3783,3 +3881,39 @@ ExtendedCss.query(selector); Желаем вам удачи в создании собственных рекламных фильтров. Если вы хотите узнать, как правильно создавать собственные фильтры, ознакомьтесь с разделом на нашем форуме [](https://forum.adguard.com/index.php?forums/69/), посвящёном написанию правил фильтрации. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard для Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/sk/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/sk/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/sk/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/sk/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/sk/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/sk/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/sk/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/sk/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/sl/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/sl/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/sl/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/sl/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/sl/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/sl/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/sl/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/sl/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/sv/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/sv/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/sv/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/sv/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/sv/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/sv/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/sv/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/sv/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/ta/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/ta/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/ta/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/ta/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/ta/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/ta/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/ta/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/ta/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/tr/docusaurus-plugin-content-blog/options.json b/i18n/tr/docusaurus-plugin-content-blog/options.json index 9239ff706c2..73d962d8db2 100644 --- a/i18n/tr/docusaurus-plugin-content-blog/options.json +++ b/i18n/tr/docusaurus-plugin-content-blog/options.json @@ -8,7 +8,7 @@ "description": "The description for the blog used in SEO" }, "sidebar.title": { - "message": "Recent posts", + "message": "Son gönderiler", "description": "The label for the left sidebar" } } diff --git a/i18n/tr/docusaurus-plugin-content-docs/current.json b/i18n/tr/docusaurus-plugin-content-docs/current.json index ead024da1b9..5d5812a6538 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current.json +++ b/i18n/tr/docusaurus-plugin-content-docs/current.json @@ -4,7 +4,7 @@ "description": "The label for version current" }, "sidebar.tutorialSidebar.category.General": { - "message": "General", + "message": "Genel", "description": "The label for category General in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.Ad filtering": { @@ -24,11 +24,11 @@ "description": "The label for category License in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.AdGuard for Windows": { - "message": "AdGuard for Windows", + "message": "Windows için AdGuard", "description": "The label for category AdGuard for Windows in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.AdGuard for Mac": { - "message": "AdGuard for Mac", + "message": "Mac için AdGuard", "description": "The label for category AdGuard for Mac in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.Solving problems": { @@ -36,11 +36,11 @@ "description": "The label for category Solving problems in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.AdGuard for Android": { - "message": "AdGuard for Android", + "message": "Android için AdGuard", "description": "The label for category AdGuard for Android in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.AdGuard for iOS": { - "message": "AdGuard for iOS", + "message": "iOS için AdGuard", "description": "The label for category AdGuard for iOS in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.AdGuard Browser extension": { @@ -48,7 +48,7 @@ "description": "The label for category AdGuard Browser extension in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.AdGuard for Safari": { - "message": "AdGuard for Safari", + "message": "Safari için AdGuard", "description": "The label for category AdGuard for Safari in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.AdGuard Content Blocker": { diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-browser-extension/installation.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-browser-extension/installation.md index bcdaf8fad79..de1d0461094 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-browser-extension/installation.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-browser-extension/installation.md @@ -1,74 +1,74 @@ --- -title: How to install +title: Nasıl yüklenir sidebar_position: 2 --- -:::info +:::bilgi Bu makale, yalnızca tarayıcınızı koruyan AdGuard Tarayıcı Uzantısı hakkındadır. Tüm cihazınızı korumak için [AdGuard uygulamasını indirin](https://adguard.com/download.html?auto=true) ::: -## How to install AdGuard Browser Extension for Google Chrome or Chromium browsers +## Google Chrome veya Chromium tarayıcıları için AdGuard Tarayıcı Uzantısı nasıl yüklenir -Open the extension's page in [Chrome Web Store](https://agrd.io/extension_chrome) and click *Add to Chrome*. +Uzantının sayfasını [Chrome Web Mağazası'nda](https://agrd.io/extension_chrome) açın ve *Chrome'a Ekle* öğesine tıklayın. -![AdGuard Browser Extension in Chrome Web Store *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_chrome.png) +![Chrome Web Mağazası'ndaki AdGuard Tarayıcı Uzantısı *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_chrome.png) -In the opened dialog box, click *Add extension*. +Açılan uyarı kutusunda *Uzantı ekle* öğesine tıklayın. -![Dialog box in Chrome Web Store *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_chrome1.png) +![Chrome Web Mağazası'ndaki uyarı kutusu *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_chrome1.png) ## Opera için AdGuard Tarayıcı Uzantısı nasıl yüklenir -Open the page [addons.opera.com](https://agrd.io/extension_opera). +[addons.opera.com](https://agrd.io/extension_opera) sayfasını açın. -![AdGuard Browser Extension in Opera addons *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_opera.png) +![Opera eklentilerinde AdGuard Tarayıcı Uzantısı *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_opera.png) -Click *Add to Opera*. +*Opera'ya ekle* öğesine tıklayın. ## Firefox için AdGuard Tarayıcı Uzantısı nasıl yüklenir -Open the page [addons.mozilla.org](https://agrd.io/extension_firefox). +[addons.mozilla.org](https://agrd.io/extension_firefox) sayfasını açın. ![Firefox eklentilerinde AdGuard Tarayıcı Uzantısı *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_firefox.png) -Click *Add to Firefox*. +*Firefox'a ekle* öğesine tıklayın. ## Yandex Browser için AdGuard Tarayıcı Uzantısı nasıl yüklenir -Click the browser settings button in the upper right corner of the browser, then choose *Add-ons* in the drop-down menu. +Tarayıcının sağ üst köşesindeki tarayıcı ayarları düğmesine tıklayın, ardından açılır menüden *Eklentiler* öğesini seçin. -Scroll down to find AdGuard, then click *Install*. +AdGuard'ı bulmak için aşağı kaydırın, ardından *Yükle* öğesine tıklayın. ![Yandex Eklentilerinde AdGuard Tarayıcı Uzantısı *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_yandex.png) ## Microsoft Edge için AdGuard Tarayıcı Uzantısı nasıl yüklenir -Find AdGuard Browser Extension in the [Edge Add-ons store](https://agrd.io/extension_edge) and click *Get*. +[Edge Eklentileri mağazasında](https://agrd.io/extension_edge) AdGuard Tarayıcı Uzantısını bulun ve *Al* düğmesne tıklayın. -![AdGuard Browser Extension in Edge Add-ons *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_edge.png) +![Edge Eklentilerinde AdGuard Tarayıcı Uzantısı *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_edge.png) -In the opened dialog window, press *Add extension*. +Açılan uyarı penceresinde *Uzantı ekle* öğesine basın. -![Edge dialog window *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_edge1.png) +![Edge uyarı penceresi *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_edge1.png) -Alternatively, you can install AdGuard Browser Extension for Edge from the [Chrome Web Store](https://agrd.io/extension_chrome). Open its web page in your Edge browser and select *Allow extensions from other stores* on the banner at the top of the page. +Alternatif olarak, Edge için AdGuard Tarayıcı Uzantısını [Chrome Web Mağazası](https://agrd.io/extension_chrome) adresinden yükleyebilirsiniz. Edge tarayıcınızda web sayfasını açın ve sayfanın üst kısmındaki başlıkta *Diğer mağazaların uzantılarına izin ver* öğesini seçin. -![Edge banner on the Chrome Web Store *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/edge_banner.jpg) +![Chrome Web Mağazası'nda Edge afişi *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/edge_banner.jpg) -In the opened dialog box, click *Allow*. +Açılan uyarı kutusunda *İzin ver* öğesine tıklayın. -![Edge dialog box "Allow extensions from other web stores"](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/allow_from_stores.jpg) +![Edge uyarı kutusu "Diğer web mağazalarından uzantılara izin ver"](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/allow_from_stores.jpg) -Click *Add to Chrome*. +*Chrome'a ekle* öğesine tıklayın. -![Add to Chrome button *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/add_to_chrome.jpg) +![Chrome'a ekle düğmesi *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/add_to_chrome.jpg) -In the opened dialog window, click *Add extension* to install AdGuard Browser Extension. +Açılan uyarı penceresinde, AdGuard Tarayıcı Uzantısını yüklemek için *Uzantı ekle* öğesine tıklayın. -![Add to Edge button](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/add_to_edge.jpg) +![Edge'e ekle düğmesi](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/add_to_edge.jpg) ## Safari için AdGuard Tarayıcı Uzantısı nasıl yüklenir -AdGuard for Safari is not a browser extension in a common sense. Bu konuyla ilgili daha fazla bilgiye [bu makale](/adguard-for-safari/overview)'den ulaşabilirsiniz. Or you can [download the installation file](https://agrd.io/safari_release) directly from this page. +Safari için AdGuard genel anlamda bir tarayıcı uzantısı değildir. Bu konuyla ilgili daha fazla bilgiye [bu makale](/adguard-for-safari/overview)'den ulaşabilirsiniz. Ya da doğrudan bu sayfadan [yükleme dosyasını indirebilirsiniz](https://agrd.io/safari_release). diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-browser-extension/integration-mode.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-browser-extension/integration-mode.md index 4b26510d63c..5f81bb47b1b 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-browser-extension/integration-mode.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-browser-extension/integration-mode.md @@ -5,9 +5,9 @@ sidebar_position: 3 ## Entegrasyon modu nedir? -In older versions of AdGuard Browser Extension, if you had it installed along with one of the AdGuard desktop apps (AdGuard for Windows or AdGuard for Mac), the extension took upon itself the functions of AdGuard Assistant — a tool that helped manage the filtering right from the web page. At the same time, the ad blocking itself was completely under of the desktop app's control, the extension and its settings played no role in that. +AdGuard Tarayıcı Uzantısının eski sürümlerinde, AdGuard masaüstü uygulamalarından (Windows için AdGuard veya Mac için AdGuard) biriyle birlikte yüklediyseniz, uzantı, doğrudan web sayfasından filtrelemeyi yönetmeye yardımcı olan bir araç olan AdGuard Asistanın işlevlerini üstleniyordu. Aynı zamanda, reklam engellemek tamamen masaüstü uygulamasının kontrolü altındaydı, uzantı ve ayarları bu konuda hiçbir rol oynamadı. -The problem was, in some cases the app and the extension would hamper each other’s work. Some websites would stop being protected by the desktop program and were backed up only by the extension which has less possibilities. Thus, starting with AdGuard Browser Extension v3.5, the integration mode was removed. Instead, the new AdGuard Browser Assistant was implemented. +Sorun, bazı durumlarda uygulama ve uzantının birbirlerinin çalışmasını engellemesiydi. Some websites would stop being protected by the desktop program and were backed up only by the extension which has less possibilities. Böylece, AdGuard Tarayıcı Uzantısı v3.5 ile başlayarak entegrasyon modu kaldırıldı. Bunun yerine, yeni AdGuard Tarayıcı Asistanı yürürlüğe konuldu. ## AdGuard Tarayıcı Asistanı diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-browser-extension/overview.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-browser-extension/overview.md index f899cac7f10..a5d9f2a29bd 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-browser-extension/overview.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-browser-extension/overview.md @@ -3,150 +3,150 @@ title: Özelliklere genel bakış sidebar_position: 1 --- -:::info +:::bilgi Bu makale, yalnızca tarayıcınızı koruyan AdGuard Tarayıcı Uzantısı hakkındadır. Tüm cihazınızı korumak için [AdGuard uygulamasını indirin](https://adguard.com/download.html?auto=true) ::: -AdGuard provides a range of software products that block ads and trackers on different platforms. One of the most popular AdGuard products is a free extension that works in five popular browsers: Chrome, Firefox, Edge, Opera, and Yandex Browser. Browser extensions include basic ad-blocking features but cannot be compared with full-featured desktop programs, such as [AdGuard for Windows](/adguard-for-windows/overview) and [AdGuard for Mac](/adguard-for-mac/overview). +AdGuard, farklı platformlarda reklamları ve izleyicileri engelleyen bir dizi yazılım ürünü sunar. En popüler AdGuard ürünlerinden biri, beş popüler tarayıcıda çalışan ücretsiz bir uzantıdır: Chrome, Firefox, Edge, Opera ve Yandex Browser. Tarayıcı uzantıları temel reklam engelleme özelliklerini içerir ancak [Windows için AdGuard](/adguard-for-windows/overview) ve [Mac için AdGuard](/adguard-for-mac/overview) gibi tam özellikli masaüstü programlarıyla karşılaştırılamaz. -![AdGuard Browser Extension for Chrome *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_overview.png) +![Chrome için AdGuard Tarayıcı Uzantısı *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_overview.png) ## Kullanılabilirlik {#br-extension} -[AdGuard Tarayıcı Uzantısı](https://adguard.com/adguard-browser-extension/overview.html) çoğu büyük tarayıcıda kullanılabilir. You can easily find it in your browser’s online store or on our official website. +[AdGuard Tarayıcı Uzantısı](https://adguard.com/adguard-browser-extension/overview.html) çoğu büyük tarayıcıda kullanılabilir. Tarayıcınızın çevrimiçi mağazasında veya resmi sitemizde kolayca bulabilirsiniz. -![Available for most popular browsers *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_availability.png) +![En popüler tarayıcılar için kullanılabilir *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_availability.png) -:::note +:::not -We have a standalone extension for Safari. Since the release of [Safari 13](https://adguard.com/en/blog/adguard-safari-1-5.html), most of the ad-blocking extensions have experienced huge issues and many of them stopped functioning. We had to develop a [separate extension for Safari](/adguard-for-safari/overview) that has some differences in comparison with the extension described in this article. +Safari için bağımsız bir uzantımız var. Since the release of [Safari 13](https://adguard.com/en/blog/adguard-safari-1-5.html), most of the ad-blocking extensions have experienced huge issues and many of them stopped functioning. We had to develop a [separate extension for Safari](/adguard-for-safari/overview) that has some differences in comparison with the extension described in this article. ::: -**Do not forget that the functionality of each extension is strictly limited by the browser’s capabilities.** So if you want to get full-fledged protection, consider installing a standalone program for your computer. There's [a reason why](#comparison). +**Do not forget that the functionality of each extension is strictly limited by the browser’s capabilities.** So if you want to get full-fledged protection, consider installing a standalone program for your computer. Böyle olmasının [bir nedeni](#comparison) var. ## Reklam engelleme {#adblocker} -Blocking ads is clearly the key functionality of any ad blocker, and AdGuard is not an exception. The extension will successfully block ads on any page in your browser. Ad blocking is based on so-called filter lists, or simply [filters](/general/ad-filtering/how-ad-blocking-works). Filters can be enabled or disabled in your extension's settings. You can customize ad blocking by activating specific filters. +Reklamları engellemek, herhangi bir reklam engelleyicinin temel işlevidir ve AdGuard bir istisna değildir. Uzantı, tarayıcınızdaki herhangi bir sayfadaki reklamları başarıyla engeller. Reklam engelleme, sözde filtre listelerine veya basitçe [filtrelere](/general/ad-filtering/how-ad-blocking-works) dayanmaktadır. Filtreler uzantınızın ayarlarından etkinleştirilebilir veya devre dışı bırakılabilir. Belirli filtreleri etkinleştirerek reklam engellemeyi özelleştirebilirsiniz. -### Filters {#filters} +### Filtreler {#filters} -In essence, filter lists are sets of rules written in a special language. Your ad blocker interpretes the rules and implements them. As a result, you stop seeing ads on your webpages. +Özünde, filtre listeleri özel bir dilde yazılmış kurallar dizisidir. Reklam engelleyiciniz kuralları yorumlar ve uygular. Sonuç olarak, web sayfalarınızda reklam görmeyi bırakırsınız. ![Filtreler *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_filters.png) -All filters are grouped according to their role. For example, there are categories for ad-blocking filters, privacy protection filters, social media-related filters, etc. You can enable either individual filters or the entire group at once. +Tüm filtreler rollerine göre gruplandırılmıştır. Örneğin, reklam engelleme filtreleri, gizlilik koruma filtreleri, sosyal medya ile ilgili filtreler, vb. için kategoriler vardır. Filtreleri teker teker veya tüm grubu aynı anda etkinleştirebilirsiniz. -![Ad blocking filters *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_filters1.png) +![Reklam engelleme filtreleri *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_filters1.png) -#### Custom filters {#custom} +#### Özel filtreler {#custom} While the features of other filter groups are more or less predictable, there is a group called *Custom* that may raise additional questions. -![Custom filters *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_custom_filters.png) +![Özel filtreler *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_custom_filters.png) -In this tab, you can add filters that are not present in the extension by default. There are plenty of [publicly available filters on the Internet](https://filterlists.com). Moreover, you can create and add your own filters. In fact, you can build any set of filters and customize ad blocking the way you like. +Bu sekmede, varsayılan olarak uzantıda bulunmayan filtreler ekleyebilirsiniz. There are plenty of [publicly available filters on the Internet](https://filterlists.com). Üstelik kendi filtrelerinizi oluşturabilir ve ekleyebilirsiniz. Aslında, herhangi bir filtre seti oluşturabilir ve reklam engellemeyi istediğiniz şekilde özelleştirebilirsiniz. -To add a filter, just click *Add custom filter*, enter the URL or the file path of the filter you want to be added and click *Next*. +Filtre eklemek için *Özel filtre ekle* öğesine tıklamanız, eklenmesini istediğiniz filtrenin URL'sini veya dosya yolunu girmeniz ve *İleri* öğesine tıklamanız yeterlidir. -![Add a custom filter *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_custom_filters1.png) +![Özel filtre ekle *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_custom_filters1.png) ### Kullanıcı kuralları {#user-rules} -*User rules* is another tool that helps you customize the blocking of ads. +*Kullanıcı kuralları*, reklamların engellenmesini özelleştirmenize yardımcı olan başka bir araçtır. -![User rules *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_user_rules.png) +![Kullanıcı kuralları *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_user_rules.png) Yeni kurallar eklemenin birkaç yolu vardır. The most straightforward is to just type a rule in, but it requires some knowledge of the [rule syntax](/general/ad-filtering/create-own-filters). -You can import a ready-to-use filter list from a text file as well. **Make sure that different rules are separated by line breaks.** Note that importing a ready-to-use filter list is better done in the [Custom filters](#custom) tab. +Kullanıma hazır bir filtre listesini bir metin dosyasından da içe aktarabilirsiniz. **Make sure that different rules are separated by line breaks.** Note that importing a ready-to-use filter list is better done in the [Custom filters](#custom) tab. -Besides, you can export your own filtering rules. This option is good for transferring your list of rules between browsers or devices. +Ayrıca, kendi filtreleme kurallarınızı dışa aktarabilirsiniz. Bu seçenek, kural listenizi tarayıcılar veya cihazlar arasında aktarmak için iyidir. -When you add a website to the Allowlist (more on that [below](#allowlist)) or use the Assistant tool for hiding an element on the page, a corresponding rule is also saved in *User rules*. +İzin listesine bir site eklediğinizde (daha fazla bilgi [aşağıda](#allowlist)) veya sayfadaki bir öğeyi gizlemek için Asistan aracını kullandığınızda, aynı bir kural da *Kullanıcı kuralları* bölümüne kaydedilir. -### Allowlist {#allowlist} +### İzin listesi {#allowlist} -The *allowlist* is used to exclude certain websites from filtering. Blocking rules are not applied to the websites on the list. +*İzin listesi* belirli siteleri filtrelemeden hariç tutmak için kullanılır. Listedeki sitelere engelleme kuralları uygulanmaz. -![Allowlist *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_allowlist.png) +![İzin listesi *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_allowlist.png) -The *allowlist* can be inverted, too: you can unblock ads everywhere except on the websites added to this list. To do that, activate the *Invert allowlist* option. +*İzin listesi* tersine de çevrilebilir: bu listeye eklenen siteler dışında her yerde reklam engelini kaldırabilirsiniz. Bunu yapmak için *İzin listesini ters çevir* seçeneğini etkinleştirin. -![Invert allowlist *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_allowlist1.png) +![İzin listesini ters çevir *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_allowlist1.png) -You can also import and export existing allowlists. It is useful, for instance, if you want to apply the same allowing rules in each of your browsers. +Ayrıca mevcut izin listelerini içe ve dışa aktarabilirsiniz. Örneğin, aynı izin verme kurallarını tarayıcılarınızın her birine uygulamak istiyorsanız kullanışlıdır. ## Gizlilik Modu {#stealth-mode} -*Stealth Mode* aims to ensure the protection of sensitive personal data from online trackers and fraudsters. +*Gizlilik Modu*, hassas kişisel verilerin çevrimiçi izleyicilerden ve dolandırıcılardan korunmasını sağlamayı amaçlar. -![Stealth Mode *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_stealth_mode.png) +![Gizlilik Modu *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_stealth_mode.png) -In Stealth Mode, you can prevent a website from seeing the search queries from you used to find it on the Internet, automatically delete third-party and website’s own cookies, etc. A [separate article](/general/stealth-mode) is devoted to all these features. +Gizlilik Modunda, bir sitenin onu internette bulmak için kullandığınız arama sorgularını görmesini engelleyebilir, üçüncü taraf ve sitenin kendi çerezlerini, vb. otomatik olarak silebilirsiniz. Tüm bu özelliklere [ayrı bir makale](/general/stealth-mode) ayrılmıştır. -:::note +:::not -Some of the *Stealth Mode* options available in full-fledged apps are not present in the browser extensions due to technical restrictions. +Tam teşekküllü uygulamalarda bulunan *Gizlilik Modu* seçeneklerinden bazıları teknik kısıtlamalar nedeniyle tarayıcı uzantılarında mevcut değildir. ::: ## Diğer özellikler ve seçenekler {#other} -Apart from the large key modules of AdGuard Browser Extension, there are several more specific features that can be configured in the *General* and *Additional settings* tabs of the extension settings. +AdGuard Tarayıcı Uzantısının büyük anahtar modüllerinin yanı sıra, uzantı ayarlarının *Genel* ve *Ek ayarlar* sekmelerinde yapılandırılabilen birkaç özel özellik daha vardır. -### General {#general} +### Genel {#general} In the *General* tab, you can allow search ads and the [self-promotion of websites](/general/ad-filtering/search-ads), enable the automatic activation of language-specific filters, indicate the filters update interval, etc. -![General *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_general.png) +![Genel *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_general.png) -Besides, here you can enable [*Phishing and malware protection*](/general/browsing-security). +Ayrıca, buradan [*Kimlik avı ve kötü amaçlı yazılım koruması*](/general/browsing-security) öğesini etkinleştirebilirsiniz. -You can save your settings configuration by clicking the *Export settings* button. Ayarlar bir .json dosyası olarak kaydedilecektir. To upload the previously saved settings configuration, use the *Import settings* function. You can even use it to quickly switch between different settings profiles or even to transfer settings configurations between different browsers. +Ayar yapılandırmanızı *Ayarları dışa aktar* düğmesine tıklayarak kaydedebilirsiniz. Ayarlar bir .json dosyası olarak kaydedilecektir. Önceden kaydedilmiş ayar yapılandırmasını yüklemek için *Ayarları içe aktar* işlevini kullanın. Farklı ayar profilleri arasında hızlıca geçiş yapmak ve hatta ayar yapılandırmalarını farklı tarayıcılar arasında aktarmak için bile kullanabilirsiniz. -### Additional settings {#misc} +### Ek ayarlar {#misc} -The *Additional settings* section contains a range of various settings that are related to the ad blocking process and application usability. +*Ek ayarlar* bölümü, reklam engelleme süreci ve uygulama kullanılabilirliği ile ilgili bir takım çeşitli ayarlar içerir. -![Additional settings *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_additional_settings.png) +![Ek ayarlar *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_additional_settings.png) -From this tab, you can activate optimized filters, enable notifications about extension updates, open the *Filtering log*, or clear the statistics of blocked ads and trackers. +Bu sekmeden, iyileştirilmiş filtreleri etkinleştirebilir, uzantı güncellemeleriyle ilgili bildirimleri etkinleştirebilir, *Filtreleme günlüğünü* açabilir veya engellenen reklamların ve izleyicilerin istatistiklerini temizleyebilirsiniz. -Besides, you can opt to help us with the development of filters by sending the statistics on applied rules: which ones are triggered, on which websites, and how often. This option is disabled by default as we do not collect user data without consent. Yet, if you enable it, all data will be strictly anonymized. +Ayrıca, uygulanan kurallarla ilgili istatistikleri göndererek filtrelerin geliştirilmesinde bize yardımcı olmayı tercih edebilirsiniz: hangilerinin tetiklendiği, hangi sitelerde ve ne sıklıkta olduğu. Kullanıcı verilerini onay olmadan toplamadığımız için bu seçenek varsayılan olarak devre dışıdır. Yine de, etkinleştirirseniz, tüm veriler kesinlikle anonimleştirilecektir. -### About {#about} +### Hakkında {#about} -In the *About* section, you can find infos about the current version, links to the EULA and Privacy policy, and to the repository of the Browser extension on GitHub. +*Hakkında* bölümünde, mevcut sürüm hakkında bilgiler, SKLS ve Gizlilik politikası ile GitHub'daki Tarayıcı uzantısı deposuna bağlantılar bulabilirsiniz. ![Hakkında *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_about.png) -## Extension’s main menu {#main-menu} +## Uzantının ana menüsü {#main-menu} -The extension's main page can be accessed by clicking on the extension's icon on the toolbar of your browser. +Uzantının ana sayfasına, tarayıcınızın araç çubuğundaki uzantı simgesine tıklayarak erişebilirsiniz. -![Main menu *mobile_border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_main.png) +![Ana menü *mobile_border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_main.png) -On the main page, you can hide any element on any page manually (a corresponding rule will be added to the *User rules*), open the *Filtering log* to view the complete information about your browser's traffic and block requests on the go, or look at a website’s security report. Besides, you can submit a complaint about any website (for example, if there are missed ads on the page, our filter engineers will review the report and fix the problem) and see the statistics on applied blocking rules. +Ana sayfada, herhangi bir sayfadaki herhangi bir öğeyi elle gizleyebilir (*Kullanıcı kuralları* bölümüne ilgili bir kural eklenecektir), tarayıcınızın trafiği hakkındaki tüm bilgileri görüntülemek ve hareket hâlindeyken istekleri engellemek için *Filtreleme günlüğünü* açabilir veya bir sitenin güvenlik raporuna bakabilirsiniz. Ayrıca, herhangi bir site hakkında bir şikayet gönderebilir (örneğin, sayfada gözden kaçan reklamlar varsa, filtre mühendislerimiz raporu inceler ve sorunu çözer) ve uygulanan engelleme kurallarına ilişkin istatistikleri görebilirsiniz. -All web requests made by the browser are displayed in the *Filtering log*, along with detailed information about each request. The *Filtering log* makes it easy, for example, to monitor requests blocked by AdGuard Browser Extension. Besides, it allows you to block any request or add a previously blocked request to Allowlist in two clicks. The *Filtering log* also offers you a wide variety of options for sorting web requests, which can be helpful when creating your own filtering rules. You can open the *Filtering log* by selecting the corresponding item in the main menu, or from the settings page (in the "Additional settings" tab). +Tarayıcı tarafından yapılan tüm web istekleri, her istekle ilgili ayrıntılı bilgilerle birlikte *Filtreleme günlüğünde* görüntülenir. *Filtreleme günlüğü*, örneğin AdGuard Tarayıcı Uzantısı tarafından engellenen istekleri gözlemlemeyi kolaylaştırır. Ayrıca, herhangi bir isteği engellemenize veya daha önce engellenen bir isteği iki tıklamayla İzin listesine eklemenize olanak tanır. *Filtreleme günlüğü* ayrıca web isteklerini sıralamak için size çok çeşitli seçenekler sunar; bu da kendi filtreleme kurallarınızı oluştururken yardımcı olabilir. Ana menüdeki ilgili öğeyi seçerek veya ayarlar sayfasından ("Ek ayarlar" sekmesinde) *Filtreleme günlüğünü* açabilirsiniz. -By clicking the icons in the top right corner of the extension's main menu, you can open the extension settings or pause the protection. +Uzantının ana menüsünün sağ üst köşesindeki simgelere tıklayarak uzantı ayarlarını açabilir veya korumayı duraklatabilirsiniz. -## AdGuard Browser Extension vs. standalone apps {#comparison} +## AdGuard Tarayıcı Uzantısı ile bağımsız uygulamalar {#comparison} -The main advantage of AdGuard standalone programs over browser extensions is that the programs can block ads in every browser and in almost all apps. You may use different browsers at the same time, the app will filter ads and online threats in all of them equally well. +AdGuard bağımsız programlarının tarayıcı uzantılarına göre en büyük avantajı, programların her tarayıcıda ve neredeyse tüm uygulamalarda reklamları engelleyebilmesidir. Aynı anda farklı tarayıcılar kullanabilirsiniz, uygulama hepsinde reklamları ve çevrimiçi tehditleri eşit derecede iyi filtreler. -The second difference is that the possibilities of extension-based ad blockers are strictly limited by browser guidelines. The browser extensions have to conform to the policies of the browsers, where ad blocking might be restricted. Thus, some types of filtering rules are not supported by the extensions. The functionality of the desktop apps is not limited, so they have a better filtering quality. +İkinci fark, uzantı tabanlı reklam engelleyicilerin olanaklarının tarayıcı yönergeleri tarafından sıkı bir şekilde sınırlandırılmış olmasıdır. Tarayıcı uzantıları, reklam engellemenin kısıtlanabileceği tarayıcıların politikalarına uygun olmalıdır. Bu nedenle, bazı filtreleme kuralları uzantılar tarafından desteklenmez. Masaüstü uygulamalarının işlevselliği sınırlı değildir, bu nedenle daha iyi bir filtreleme kalitesine sahiptirler. -Whereas AdGuard Browser Extension is free and easy to install, and has filters to block ads and fight online threats, the full-fledged apps are more powerful and have a list of advanced features. See all the differences in the comparative table below. +AdGuard Tarayıcı Uzantısı ücretsiz ve yüklemesi kolay olmasına, reklamları engellemek ve çevrimiçi tehditlerle mücadele etmek için filtrelere sahip olmasına karşın, tam teşekküllü uygulamalar daha güçlüdür ve gelişmiş özelliklerin bir listesine sahiptir. Aşağıdaki karşılaştırmalı tablodaki tüm farklılıklara bakın. ![Extension vs. App *border](https://cdn.adtidy.org/content/Kb/ad_blocker/browser_extension/ad_blocker_browser_extension_comparison.png) -`1` – within browser restrictions and only in the browser where it is installed; +`1` – tarayıcı kısıtlamaları dahilinde ve yalnızca yüklü olduğu tarayıcıda; -`2` – the extension is unable to detect requests from other extensions. If a malicious or tracking extension sends a request to its server to show you ads or track your activity, AdGuard Browser Extension will not be able to block that request; +`2` – uzantı, diğer uzantılardan gelen istekleri algılayamaz. Kötü amaçlı veya izleme uzantısı, sunucusuna size reklam göstermek veya etkinliğinizi izlemek için bir istek gönderirse, AdGuard Tarayıcı Uzantısı bu isteği engellemeyecektir; -`3` – not all types of ads and threats can be blocked by browser extensions due to certain browser limitations. Some elements may get to the page and slow down the loading process. Besides, unlike browser-based ad blockers, the AdGuard app blocks ads before they are loaded to the browser. Bu, veri tasarrufu ve sayfa açılışını hızlandırır. +`3` – belirli tarayıcı sınırlamaları nedeniyle, tüm reklam türleri ve tehditler tarayıcı uzantıları tarafından engellenemez. Bazı öğeler sayfaya ulaşabilir ve yükleme sürecini yavaşlatabilir. Ayrıca, tarayıcı tabanlı reklam engelleyicilerin aksine, AdGuard uygulaması reklamları tarayıcıya yüklenmeden önce engeller. Bu, veri tasarrufu ve sayfa açılışını hızlandırır. diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-android/overview.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-android/overview.md index aa78a656dc5..d6c6d103f0e 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-android/overview.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-android/overview.md @@ -179,7 +179,7 @@ If you see an app that shouldn't be using the Internet at all or an app that you Browsing Security protects you from visiting phishing and malicious websites. It also warns you about potential malware. -![Browsing Security *mobile_border](https://cdn.adtidy.org/blog/new/1y6a8browsing_security.png) +![Gezinti Koruması *mobile_border](https://cdn.adtidy.org/blog/new/1y6a8browsing_security.png) If you're about to visit a dangerous website, Browsing Security will show you the following warning: @@ -272,7 +272,7 @@ This section displays statistics on the device resources used by AdGuard during ## Settings -### General +### Genel This section helps you manage the appearance and behavior of the app: you can set the color theme and language, manage notifications, and more. If you want to help the AdGuard team detect app crashes and research usability, you can enable *Auto-report crashes* and *Send technical and interaction data*. @@ -324,7 +324,7 @@ This section contains the list of apps for which AdGuard filters HTTPS traffic. This setting allows you to manage websites for which AdGuard should filter HTTPS traffic. -HTTPS filtering allows AdGuard to filter the content of requests and responses, but we never collect or store this data. However, to increase security, we [exclude websites that contain potentially sensitive information from HTTPS filtering](/general/https-filtering/what-is-https-filtering/#financial-websites-and-websites-with-sensitive-personal-data). +HTTPS filtreleme, AdGuard'ın isteklerin ve yanıtların içeriğini filtrelemesini sağlar, ancak bu verileri asla toplamaz veya saklamayız. However, to increase security, we [exclude websites that contain potentially sensitive information from HTTPS filtering](/general/https-filtering/what-is-https-filtering/#financial-websites-and-websites-with-sensitive-personal-data). You can also add websites that you consider necessary to exclusions by selecting one of the modes: @@ -357,7 +357,7 @@ The *Local VPN* mode doesn't allow AdGuard to be used simultaneously with other - *Manual proxy* involves setting up a proxy server on a specific port, which can then be configured in Wi-Fi settings. This mode requires root access for Android 10 and above. -#### Filters +#### Filtreler AdGuard blocks ads, trackers, and annoyances by applying rules from its filters. Most features from the *Protection* section are powered by [AdGuard filters](/general/ad-filtering/adguard-filters/#adguard-filters). If you enable *Basic protection*, it will automatically turn on the AdGuard Base filter and AdGuard Mobile Ads filter. And vice versa: if you turn off both filters, *Basic protection* will also be disabled. diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-ios/overview.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-ios/overview.md index 3c164f85ded..1ddba84594c 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-ios/overview.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-ios/overview.md @@ -29,7 +29,7 @@ Keep all content blockers enabled for the best filtering quality. ::: -### Filters {#filters} +### Filtreler {#filters} Content blockers' work is based on filters, also sometimes referred to as filter lists. Each filter is a list of filtering rules. If you have an enabled ad blocker when browsing, it constantly checks the visited pages and elements on them against these filtering rules, and blocks anything that matches. Reklamları, izleyicileri ve daha fazlasını engellemek için kurallar geliştirilmiştir. @@ -55,7 +55,7 @@ Learn [how to create your own ad filters](/general/ad-filtering/create-own-filte ![Kullanıcı kuralları ekranı *mobile_border](https://cdn.adtidy.org/public/Adguard/kb/iOS/features/user_rules_en.jpeg) -### Allowlist {#allowlist} +### İzin listesi {#allowlist} *Safari koruması* ekranının üçüncü bölümü. Belirli bir sitede reklam engellemeyi devre dışı bırakmak istiyorsanız, İzin listesi size yardımcı olacaktır. İstisnalara alan adları ve alt alt alan adları eklemenize olanak tanır. iOS için AdGuard'ın bir İçe ve Dışa aktarma özelliği vardır, böylece bir cihazdaki izin listesi kolayca başka bir cihaza aktarılabilir. @@ -238,6 +238,6 @@ This option will reset all your settings. Use this option to contact support, report a missed ad (although we advise to use the Assistant or AdGuard's Safari Web extension for your own convenience), export logs or to make a feature request. -- **About** +- **Hakkında** Contains the current version of the app and an assortment of rarely needed options and links. diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-mac/overview.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-mac/overview.md index 097474dafc5..1fc02fdc793 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-mac/overview.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-mac/overview.md @@ -23,7 +23,7 @@ To start configuring AdGuard for Mac, you need to click the gear in the upper ri ## Genel Tercihler -![General](https://cdn.adtidy.org/content/kb/ad_blocker/mac/General.jpg) +![Genel](https://cdn.adtidy.org/content/kb/ad_blocker/mac/General.jpg) Descriptions under option titles seem self-explanatory, but still: @@ -37,9 +37,9 @@ Descriptions under option titles seem self-explanatory, but still: From this same window you can access the above-mentioned Allowlist, to which you can add websites you do not wish AdGuard to filter. Just click the corresponding button located at the bottom of the window. -## Filters +## Filtreler -![Filters](https://cdn.adtidy.org/content/kb/ad_blocker/mac/Filters.jpg) +![Filtreler](https://cdn.adtidy.org/content/kb/ad_blocker/mac/Filters.jpg) Filters are the main driving force behind the Ad blocker module. To understand how filtering works, get acquainted with our [comprehensive article](https://adguard.com/en/blog/how-ad-blocking-is-done.html). But in essence, filter lists are sets of rules written in a special language, and your ad blocker is an interpreter of these rules who then implements them. As a result, you stop seeing ads on your web pages and life gets lots better. diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-safari/overview.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-safari/overview.md index 229e898b25a..f9a74a4c015 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-safari/overview.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-safari/overview.md @@ -11,13 +11,13 @@ Bu makale, yalnızca Safari tarayıcınızı koruyan Safari için AdGuard hakkı AdGuard for Safari was designed to conform to Apple's restrictions for ad blocking browser extensions and is the most popular ad blocker for Safari. Although it can’t be compared to our desktop ad blocking apps, it's free and can protect you from ads, trackers, phishing, and malicious websites. -## General {#general} +## Genel {#general} ![General tab](https://cdn.adtidy.org/public/Adguard/Blog/AG_for_Safari_in-depth_review/General.png) The first tab is the General screen where you can set up basic things like notifications, update intervals, and launching AdGuard at system startup. You can also choose to display the AdGuard icon in the menu bar. There you can also turn on [content blockers](#contentblockers) to block ads, trackers, annoyances, etc. -## Filters {#filters} +## Filtreler {#filters} ![Filters tab](https://cdn.adtidy.org/public/Adguard/Blog/AG_for_Safari_in-depth_review/Filters.png) @@ -87,7 +87,7 @@ If you need more filters, you can add them to *AdGuard Custom*. To add a custom User rules can be used to customize ad blocking. They can be added manually, imported, or created automatically when you block an element on the page. To add your own filering rules, use a [special syntax](/general/ad-filtering/create-own-filters). -## About {#about} +## Hakkında {#about} ![About tab](https://cdn.adtidy.org/public/Adguard/Blog/AG_for_Safari_in-depth_review/About.png) diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/installation.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/installation.md index 1ad70dacb95..644d97021c0 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/installation.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/installation.md @@ -11,67 +11,67 @@ Bu makale, cihazınızı sistem düzeyinde koruyan çok işlevli bir reklam enge ## System requirements -**Operating system:** Microsoft Windows 11, 10, 8.1, 8, 7, Vista. +**İşletim sistemi:** Microsoft Windows 11, 10, 8.1, 8, 7, Vista. -**RAM:** at least 512 MB. +**RAM:** en az 512 MB. -**Free disk space:** 150 Mbytes. +**Boş disk alanı:** 150 Mbyte. -**Browsers:** Microsoft Edge, Microsoft Internet Explorer (all versions), Opera, Google Chrome, Yandex.Browser, Mozilla Firefox, and many other browsers. +**Tarayıcı:** Microsoft Edge, Microsoft Internet Explorer (tüm sürümler), Opera, Google Chrome, Yandex.Browser, Mozilla Firefox ve diğer birçok tarayıcı. -## AdGuard installation +## AdGuard kurulumu -To use AdGuard on a PC or tablet under Microsoft Windows, you should download the installation package and launch the installation program. Perform the following actions: +AdGuard'ı Microsoft Windows altında bir PC veya tablette kullanmak için kurulum paketini indirmeli ve kurulum programını başlatmalısınız. Aşağıdaki işlemleri gerçekleştirin: 1. Go to the [AdGuard website](http://adguard.com) in the address bar and click *Download* [on the opened page](https://adguard.com/download.html?auto=1). - ![Download AdGuard](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/download-from-website.png) + ![AdGuard'ı indir](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/download-from-website.png) 2. When the download is finished, press the *Open* button shown in the Downloads bar or click the file name *adguardInstaller.exe*. - ![Press "Run"](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/click-download.png) + !["Çalıştır" öğesine basın](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/click-download.png) -3. You’ll see the User Account Control dialogue box requesting to allow the app to make changes to your PC. Click *Yes*. +3. Uygulamanın bilgisayarınızda değişiklik yapmasına izin vermek isteyen Kullanıcı Hesabı Denetimi iletişim kutusunu göreceksiniz. *Evet* öğesine tıklayın. - ![Allow changes *mobile](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/allow-changes.png) + ![Değişikliklere izin ver *mobile](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/allow-changes.png) -4. Next, choose the folder on your PC for the app to be installed to. +4. Ardından, uygulamanın kurulacağı PC'nizdeki klasörü seçin. - ![Choose folder *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/install-wizard.png) + ![Klasör seçin *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/install-wizard.png) - If you do not agree with the default installation path, press *Browse*, select the folder for AdGuard installation in the *Browse For Folder* window, and confirm your choice by clicking *OK*. You can also install AdGuard to a new folder by clicking *Make New Folder* and entering its name. To create a desktop shortcut for AdGuard, check the *Create a desktop shortcut* box. Press *Install* to proceed with installation. + Varsayılan kurulum yolunu kabul etmiyorsanız, *Gözat* öğesine basın, *Klasöre Gözat* penceresinde AdGuard kurması için klasörü seçin ve *Tamam* öğesine tıklayarak seçiminizi onaylayın. AdGuard'ı *Yeni Klasör Oluştur* öğesine tıklayıp adını girerek yeni bir klasöre de kurabilirsiniz. AdGuard için bir masaüstü kısayolu oluşturmak için *Masaüstü kısayolu oluştur* kutusunu işaretleyin. Kuruluma devam etmek için *Kur* öğesine basın. - ![Start installation *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/start-install.png) + ![Kurulumu başlat *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/start-install.png) -5. Wait for the installation to complete and click *Finish*. +5. Kurulumun tamamlanmasını bekleyin ve *Bitir* öğesine tıklayın. - ![Complete installation *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/finish-install.png) + ![Kurulumu bitir *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/finish-install.png) - Congratulations! You have successfully installed AdGuard on your computer. On the screen you will see the main window where you can change the app’s settings. + Tebrikler! AdGuard'ı bilgisayarınıza başarıyla kurdunuz. Ekranda, uygulamanın ayarlarını değiştirebileceğiniz ana pencereyi göreceksiniz. ## Windows için AdGuard nasıl kaldırılır {#uninstall} ### Regular method -If you need to uninstall or reinstall AdGuard, do the following: +AdGuard'ı kaldırmanız veya yeniden kurmanız gerekirse aşağıdakileri yapın: -- For Microsoft Windows 10 & 11: Open *Start Menu* by clicking *Start*, and select *Settings*. Click the *Apps* icon in the window that opens. Select *Apps and Features* from the list on the left in the *Apps* window. Select *AdGuard* from the list of your installed apps and click *Uninstall*. Click *Uninstall* in the dialogue box that opens to confirm. +- Microsoft Windows 10 & 11 için: *Başlat* öğesine tıklayarak *Başlat Menüsünü* açın ve *Ayarlar* öğesini seçin. Açılan pencerede *Uygulamalar* simgesine tıklayın. *Uygulamalar* penceresindeki soldaki listeden *Uygulamalar ve Özellikler* öğesini seçin. Yüklü uygulamalarınız listesinden *AdGuard* öğesini seçin ve *Kaldır* öğesine tıklayın. Onaylamak için açılan uyarı kutusunda *Kaldır* öğesine tıklayın. -![Windows 10 & 11 uninstallation *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/win10-uninstall.png) +![Windows 10 & 11 kaldırma *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/win10-uninstall.png) -- For Microsoft Windows 8: Right-click the *empty space* in the lower left corner of the task bar and select *Control Panel*. Click *Uninstall a program* in the *Programs* section, then select *AdGuard* from the list of installed apps and press the *Uninstall* button located right above the list. Confirm the action by clicking *Uninstall AdGuard* in the window that opens. +- Microsoft Windows 8 için: Görev çubuğunun sol alt köşesindeki *boş alana* sağ tıklayın ve *Denetim Masası* öğesini seçin. *Programlar* bölümünde *Program kaldır* öğesine tıklayın, ardından yüklü uygulamalar listesinden *AdGuard* öğesini seçin ve listenin hemen üstünde bulunan *Kaldır* düğmesine basın. Açılan pencerede *AdGuard'ı kaldır* öğesine tıklayarak işlemi onaylayın. -![Windows 8 uninstallation](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/win8-uninstall.png) +![Windows 8 kaldırma](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/win8-uninstall.png) -- For Microsoft Windows 8.1: Right-click the *Start button* and select *Control Panel*. Click *Uninstall a program* in the *Programs* section, then select *AdGuard* from the list of installed apps and press the *Uninstall* button located right above the list. Confirm the action by clicking *Uninstall AdGuard* in the window that opens. +- Microsoft Windows 8.1 için: *Başlat düğmesine* sağ tıklayın ve *Denetim Masası* öğesini seçin. *Programlar* bölümünde *Program kaldır* öğesine tıklayın, ardından yüklü uygulamalar listesinden *AdGuard* öğesini seçin ve listenin hemen üstünde bulunan *Kaldır* düğmesine basın. Açılan pencerede *AdGuard'ı kaldır* öğesine tıklayarak işlemi onaylayın. -- For Microsoft Windows 7: Open *Start Menu*. In the search box, type *Control Panel*. Click *Uninstall a program* in the *Programs* section, then select *AdGuard* from the list of installed apps and press the *Uninstall* button located right above the list. Confirm the action by clicking *Uninstall AdGuard* in the window that opens. +- Microsoft Windows 7 için: *Başlat Menüsünü* açın. Arama kutusuna *Denetim Masası* yazın. *Programlar* bölümünde *Program kaldır* öğesine tıklayın, ardından yüklü uygulamalar listesinden *AdGuard* öğesini seçin ve listenin hemen üstünde bulunan *Kaldır* düğmesine basın. Açılan pencerede *AdGuard'ı kaldır* öğesine tıklayarak işlemi onaylayın. -![Windows 7 uninstallation *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/win7-uninstall.png) +![Windows 7 kaldırma *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/win7-uninstall.png) ### Advanced method {#advanced} -In case regular uninstall doesn't work for any reason, you can try to use an advanced method. First of all, you need to [download the uninstaller tool](https://cdn.adtidy.org/distr/windows/Uninstall_Utility.zip) created by our developers. Extract the archive to any folder on your PC and run the **Adguard.UninstallUtility.exe** file, and allow the app to make changes to your device. Then follow the instruction below: +Normal kaldırma herhangi bir nedenle işe yaramazsa, gelişmiş bir yöntem kullanmayı deneyebilirsiniz. Her şeyden önce, geliştiricilerimiz tarafından oluşturulan [kaldırma aracını indirmeniz](https://cdn.adtidy.org/distr/windows/Uninstall_Utility.zip) gerekir. Extract the archive to any folder on your PC and run the **Adguard.UninstallUtility.exe** file, and allow the app to make changes to your device. Then follow the instruction below: - Choose *Standard uninstall*, *Delete AdGuard* and click *Uninstall*. diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 995a90edbd2..25d652ece48 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -57,47 +57,47 @@ Many websites gather information about their visitors, such as their IP addresse You can flexibly adjust the work of Stealth Mode: for instance, you can prohibit the website to receive the search request you used to find it on the Internet, automatically delete both third-party and website’s own cookies, and disable location sharing in your browser that can be used to track your whereabouts. -To learn everything about Stealth Mode and its many options, [read this article](/general/stealth-mode). +Gizlilik Modu ve birçok seçeneği hakkında her şeyi öğrenmek için [bu makaleyi okuyun](/general/stealth-mode). ### Browsing Security -Browsing Security gives strong protection against malicious and fishing websites. No, AdGuard for Windows is not an antivirus. It will neither stop the download of a virus when it's already started, nor delete the already existing ones. But it will warn you if you're about to proceed to a website whose domain has been added to our "untrusted sites" database, or to download a file from such website. You can find more information about how this module works in the [dedicated article](/general/browsing-security). +Gezinti Koruması, kötü amaçlı ve kimlik avı sitelerine karşı güçlü koruma sağlar. Hayır, Windows için AdGuard bir antivirüs değildir. Ne bir virüs indirilmeye başlandığında bunu durdurur ne de var olanları siler. Ancak, alan adı "güvenilmeyen siteler" veri tabanımıza eklenmiş bir sitesine gitmek veya böyle bir siteden bir dosya indirmek üzereyseniz sizi uyarır. You can find more information about how this module works in the [dedicated article](/general/browsing-security). -In this module you can +Bu modülde şunları yapabilirsiniz -- enable notifications to block requests to malicious and phishing sites, +- kötü amaçlı ve kimlik avı sitelerine yönelik istekleri engellemek için bildirimleri etkinleştirin, - sesli bildirimleri etkinleştirin, -- agree to submit anonymous security-related info to the AdGuard server to help us keep the malicious and fishing websites database up to date. +- kötü amaçlı ve kimlik avı siteleri veri tabanını güncel tutmamıza yardımcı olması için AdGuard sunucusuna anonim güvenlikle ilgili bilgiler göndermeyi kabul edin. -![Browsing Security *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/browsing-security.png) +![Gezinti Koruması *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/browsing-security.png) -In case you want to learn more about Browsing Security, read [this article](/general/browsing-security). +Gezinti Koruması hakkında daha fazla bilgi edinmek isterseniz [bu makaleyi](/general/browsing-security) okuyun. ### DNS Protection -There are three significant reasons why you might want to explore the DNS protection settings. First, to avoid being tracked by your ISP. Every time you open a website, for example `google.com`, your browser sends a request to a DNS server to get the IP address of the website in return. Usually, the DNS server belongs to your ISP, which allows them to track your online activity. İkincisi, DNS trafiğinizi şifrelemek için. And the third one is to [block content on DNS level](https://adguard-dns.io/kb/general/dns-filtering/). +DNS koruma ayarlarını keşfetmek istemenizin üç önemli nedeni vardır. İlk olarak, İSS'niz tarafından izlenmekten kaçınmak için. Every time you open a website, for example `google.com`, your browser sends a request to a DNS server to get the IP address of the website in return. Genellikle, DNS sunucusu İSS'nize aittir ve bu da çevrimiçi etkinliğinizi izlemelerine olanak tanır. İkincisi, DNS trafiğinizi şifrelemek için. Üçüncüsü ise [DNS düzeyinde içeriği engellemektir](https://adguard-dns.io/kb/general/dns-filtering/). -![DNS Protection *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/dns-settings.png) +![DNS Koruması *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/dns-settings.png) -In the DNS protection module of AdGuard for Windows you can select the DNS servers from known DNS providers, including [AdGuard DNS](https://adguard-dns.io/kb/) that blocks ads and trackers, AdGuard DNS Family Protection that in addition blocks adult content, or AdGuard DNS Non-filtering that provides a secure and reliable connection, but doesn't filter anything. You can even add custom DNS servers. Also there is an option to add custom rules using [DNS rules syntax](https://adguard-dns.io/kb/general/dns-filtering-syntax/). And if necessary, you can add [DNS filters of your choice](https://filterlists.com). +In the DNS protection module of AdGuard for Windows you can select the DNS servers from known DNS providers, including [AdGuard DNS](https://adguard-dns.io/kb/) that blocks ads and trackers, AdGuard DNS Family Protection that in addition blocks adult content, or AdGuard DNS Non-filtering that provides a secure and reliable connection, but doesn't filter anything. You can even add custom DNS servers. Ayrıca, [DNS kuralları söz dizimini](https://adguard-dns.io/kb/general/dns-filtering-syntax/) kullanarak özel kurallar ekleme seçeneği de vardır. Ve gerekirse, [istediğiniz DNS filtrelerini](https://filterlists.com) ekleyebilirsiniz. ### Parental Control -There are numerous websites access to which should be restricted if the PC is used by children. This task is accomplished by Parental Control. +There are numerous websites access to which should be restricted if the PC is used by children. Bu görev Ebeveyn Denetimi tarafından gerçekleştirilir. -![Parental Control *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/parental-control.png) +![Ebeveyn Denetimi *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/parental-control.png) -The module checks the contents of web pages opened in the browser and filters those with content undesirable for children: images and texts for adults, crude language, violence, drug propaganda, etc. Parental Control settings are password-protected so that the child is not able to go round the restrictions. This module not only blocks directions to undesirable sites but can also delete the links that are inappropriate for children from the search results. +The module checks the contents of web pages opened in the browser and filters those with content undesirable for children: images and texts for adults, crude language, violence, drug propaganda, etc. Ebeveyn Denetimi ayarları parola korumalıdır, böylece çocuk kısıtlamaların ötesine geçemez. This module not only blocks directions to undesirable sites but can also delete the links that are inappropriate for children from the search results. -In the Parental Control module you can enable the *Safe search* and manage the *blocklist* and the *allowlist* to customize how this option works. You can also check the *Block executable files download* box to prevent your child from downloading and installing software on the computer. There are two more options in the *Parental Control* module: you can select a specific Windows user to be protected by *Parental Control* and set a password to protect AdGuard settings from change. +Ebeveyn Denetimi modülünde, bu seçeneğin nasıl çalıştığını özelleştirmek için *Güvenli arama* öğesini etkinleştirebilir, *engel listesi* ve *izin listesi* öğelerini yönetebilirsiniz. Çocuğunuzun bilgisayara yazılım indirip yüklemesini engellemek için *Yürütülebilen dosyaların indirilmesini engelle* kutusunu da işaretleyebilirsiniz. *Ebeveyn Denetimi* modülünde iki seçenek daha vardır: *Ebeveyn Denetimi* tarafından korunacak belirli bir Windows kullanıcısını seçebilir ve AdGuard ayarlarının değişmesini önlemek için bir parola belirleyebilirsiniz. -![Parental Control *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/parental-control.png) +![Ebeveyn Denetimi *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/parental-control.png) ### Browser Assistant -![Browser Assistant *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/browser-assistant/browser-assistant.png) +![Tarayıcı Asistanı *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/browser-assistant/browser-assistant.png) -From this tab you can easily proceed to install AdGuard Browser Assistant, which primary function is to manage filtering directly from the browser. We explained more about how to work with it and what to do if there is no Browser Assistant for your browser in the [separate article](../browser-assistant). +Bu sekmeden, birincil işlevi filtrelemeyi doğrudan tarayıcıdan yönetmek olan Tarayıcı Asistanı yüklemeye kolayca devam edebilirsiniz. Bununla nasıl çalışılacağı ve tarayıcınız için Tarayıcı Asistanı yoksa ne yapılacağı hakkında daha fazla bilgiyi [ayrı makalede](../browser-assistant) açıkladık. ## Extensions @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- verilerinizi izlemekten korumak için IP adresinizi değiştirir - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) @@ -175,7 +175,7 @@ This tab contains information about your license. Here you can: - find out the license type (nightly build, beta or release), the number of devices available for simultaneous connection to AdGuard, the license expiration date; - click the button to go to the license purchase page, and activate, reset or recover a license. -### About +### Hakkında ![About *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/about.png) diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/tr/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 8b169c1e7cb..cd36c6d6bd4 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -107,9 +107,9 @@ AdGuard [extends CSS](#extended-css-selectors) and lets filters developers handl **Popular CSS selectors** -| Name | CSS selector | Description | +| Ad | CSS seçici | Açıklama | | ---------------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ID selector | `#banners` | Matches all elements with `id` attribute equal to `banners`.
![ID selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_id_selector.png) | +| ID selector | `#banner` | Matches all elements with `id` attribute equal to `banners`.
![ID selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_id_selector.png) | | Class selector | `.banner` | Matches all elements with `class` attribute containing `banners`.
![Class selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_class_selector.png) | | Attribute selector | `div[class="banners"]` | Matches all `div` elements with `class` attribute **exactly equal** to `banners`.
![Attribute selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_class_attr.png) | | Attribute substring selector | `div[class^="advert1"]` | Matches all `div` elements which `class` attribute **starts with** the `advert1` string.
![Attribute substring selector](https://cdn.adtidy.org/public/Adguard/kb/en/rules_syntax/css_class_attr_start.png) | @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Temel olarak, sadece kural uygulamasının kapsamını sınırlarlar. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [iOS için AdGuard][ios-app] | [Safari için AdGuard][ext-saf] | [AdGuard İçerik Engelleyici][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:------------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Temel olarak, sadece kural uygulamasının kapsamını sınırlarlar. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. Bir kurala birden fazla alan adı eklemek için ayırıcı olarak `|` karakterini kullanın. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Örnekler** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Değiştirici \ Ürünler | [CoreLibs uygulamaları][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [iOS için AdGuard][ios-app] | [Safari için AdGuard][ext-saf] | [AdGuard İçerik Engelleyici][and-cb] | +| ------------------------------------------------------------- |:--------------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:------------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — desteklenmiyor +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [iOS için AdGuard][ios-app] | [Safari için AdGuard][ext-saf] | [AdGuard İçerik Engelleyici][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:------------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — desteklenmiyor + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,7 +916,15 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. -#### Generic rules {#exception-modifiers-generic-rules} +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + +#### Genel kurallar {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [iOS için AdGuard][ios-app] | [Safari için AdGuard][ext-saf] | [AdGuard İçerik Engelleyici][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:------------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. Aşağıda a ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. Aşağ `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Kısıtlamalar** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1598,7 +1673,7 @@ Go to [rules priorities](#rule-priorities) for more details. This is basically an alias to [`$redirect`](#redirect-modifier) since it has the same "redirection" values and the logic is almost similar. The difference is that `$redirect-rule` is applied only in the case when the target request is blocked by a different basic rule. -Go to [rules priorities](#rule-priorities) for more details. +Daha fazla ayrıntı için [kural öncelikleri](#rule-priorities) adresine gidin. Negating `$redirect-rule` works exactly the same way as for regular `$redirect` rules. Even more than that, `@@||example.org^$redirect` will negate both `$redirect` and `$redirect-rule` rules. @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2158,7 +2233,7 @@ The [`$replace`](#replace-modifier) modifier takes precedence over all blocking `||example.com^` -Weight of the rule without modifiers: `1`. +Değiştiriciler olmadan kuralın ağırlığı: `1`. **Example 2** @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [iOS için AdGuard][ios-app] | [Safari için AdGuard][ext-saf] | [AdGuard İçerik Engelleyici][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:------------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS kuralları](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +- ✅ — fully supported +- ❌ — not supported + +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,16 +3376,9 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Temel olmayan kural türleri için değiştiriciler {#non-basic-rules-modifiers} -Each rule can be modified using the modifiers described in the following paragraphs. +Her kural, aşağıdaki paragraflarda açıklanan değiştiriciler kullanılarak değiştirilebilir. **Söz dizimi** @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [iOS için AdGuard][ios-app] | [Safari için AdGuard][ext-saf] | [AdGuard İçerik Engelleyici][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:---------------------------:|:------------------------------:|:------------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,41 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "Safari için AdGuard" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/general/how-to-install.md b/i18n/tr/docusaurus-plugin-content-docs/current/general/how-to-install.md index 6573f9be752..a16a67d3467 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/general/how-to-install.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/general/how-to-install.md @@ -5,16 +5,16 @@ sidebar_position: 8 Depending on which AdGuard app or browser extension you want to install, follow one of these links to find the relevant article: -[AdGuard for Android](/adguard-for-android/installation) +[Android için AdGuard](/adguard-for-android/installation) -[AdGuard for iOS](/adguard-for-ios/installation) +[iOS için AdGuard](/adguard-for-ios/installation) -[AdGuard for Windows](/adguard-for-windows/installation) +[Windows için AdGuard](/adguard-for-windows/installation) -[AdGuard for Mac](/adguard-for-mac/installation) +[Mac için AdGuard](/adguard-for-mac/installation) [AdGuard Tarayıcı Uzantısı](/adguard-browser-extension/installation) -[AdGuard for Safari](/adguard-for-safari/installation) +[Safari için AdGuard](/adguard-for-safari/installation) [AdGuard İçerik Engelleyici](/adguard-content-blocker/installation) diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/general/stealth-mode.md b/i18n/tr/docusaurus-plugin-content-docs/current/general/stealth-mode.md index d9ce9aed154..bc07e9a08a7 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/general/stealth-mode.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/general/stealth-mode.md @@ -15,7 +15,7 @@ Some options may not be available depending on the particular product due to OS ::: -## General {#general} +## Genel {#general} ### Hide your search queries {#searchqueries} diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/guides/report-bugs.md b/i18n/tr/docusaurus-plugin-content-docs/current/guides/report-bugs.md index c889c674651..a1fbe6f6a5c 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/guides/report-bugs.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/guides/report-bugs.md @@ -42,7 +42,7 @@ You can find reactions in the upper right corner or at the bottom of an issue. ## Instructions for all platforms -### AdGuard for Windows +### Windows için AdGuard 1. Check out the [Windows repo](https://github.com/AdguardTeam/AdGuardforWindows/issues) to make sure the issue hasn’t been reported yet. @@ -52,7 +52,7 @@ You can find reactions in the upper right corner or at the bottom of an issue. ![Reporting a bug via GitHub *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/general/windows_gh.png) -### AdGuard for Mac +### Mac için AdGuard 1. Check out the [Mac repo](https://github.com/AdguardTeam/AdGuardforMac/issues) to make sure the issue hasn’t been reported yet. @@ -60,7 +60,7 @@ You can find reactions in the upper right corner or at the bottom of an issue. 3. Fill out the form. If possible, attach screenshots or a screen recording. -### AdGuard for Android +### Android için AdGuard 1. Check out the [Android repo](https://github.com/AdguardTeam/AdGuardforAndroid/issues) to make sure the issue hasn’t been reported yet. @@ -68,7 +68,7 @@ You can find reactions in the upper right corner or at the bottom of an issue. 3. Fill out the form. If possible, attach screenshots or a screen recording. -### AdGuard for iOS +### iOS için AdGuard 1. Check out the [iOS repo](https://github.com/AdguardTeam/AdGuardforiOS/issues) to make sure the issue hasn’t been reported yet. @@ -84,7 +84,7 @@ You can find reactions in the upper right corner or at the bottom of an issue. 3. Fill out the form. If possible, attach screenshots or a screen recording. -### AdGuard for Safari +### Safari için AdGuard 1. Check out the [Safari repo](https://github.com/AdguardTeam/AdGuardForSafari/issues) to make sure the issue hasn’t been reported yet. diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/guides/report-website.md b/i18n/tr/docusaurus-plugin-content-docs/current/guides/report-website.md index b56accdaf72..2a44e7dc82f 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/guides/report-website.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/guides/report-website.md @@ -123,7 +123,7 @@ This option is suitable for those who aren’t afraid of difficulties and don’ For example, you are faced with a situation that your favorite website won’t open, authorization has broken, or some page elements are displayed incorrectly. The cause may be using a specific filter/extension/Stealth Mode setting. To diagnose these problems, you need to do the following: -### **Filters** +### **Filtreler** 1. Disable **Ad Blocker**; 2. If it solved the problem, re-enable the module and disable filters one by one. This is done to identify filters that "break" the page; diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/intro.md b/i18n/tr/docusaurus-plugin-content-docs/current/intro.md index 57b9d9b1da6..d23d9670c1c 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/intro.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/intro.md @@ -1,23 +1,23 @@ --- -title: Overview +title: Genel Bakış sidebar_position: 1 slug: / --- -## What is AdGuard Ad Blocker? +## AdGuard Reklam Engelleyici nedir? -AdGuard is one of the leaders on the market of ad-blocking software with 10+ years of experience, almost a dozen products for various platforms, and over 30 million user installs. Unlike other ad-blocking solutions, most of which are browser-based, we offer standalone apps for all major platforms, both desktop and mobile. AdGuard apps are more powerful than browser extensions, can block more and do it more efficiently: +AdGuard, 10 yılı aşkın deneyimi, çeşitli platformlar için neredeyse onlarca ürünü ve 30 milyondan fazla kullanıcı yüklemesiyle reklam engelleme yazılımı pazarının liderlerinden biridir. Çoğu tarayıcı tabanlı olan diğer reklam engelleme çözümlerinin aksine, hem masaüstü hem de mobil olmak üzere tüm büyük platformlar için bağımsız uygulamalar sunuyoruz. AdGuard uygulamaları tarayıcı uzantılarından daha güçlüdür, daha fazlasını engelleyebilir ve bunu daha verimli bir şekilde yapabilir: -- [AdGuard for Windows](/adguard-for-windows/overview) -- [AdGuard for Mac](/adguard-for-mac/overview) -- [AdGuard for Android](/adguard-for-android/overview) -- [AdGuard for iOS](/adguard-for-ios/overview) +- [Windows için AdGuard](/adguard-for-windows/overview) +- [Mac için AdGuard](/adguard-for-mac/overview) +- [Android için AdGuard](/adguard-for-android/overview) +- [iOS için AdGuard](/adguard-for-ios/overview) -But we also develop and maintain free browser extensions for all popular browsers: +Ancak tüm popüler tarayıcılar için ücretsiz tarayıcı uzantıları da geliştiriyor ve sürdürüyoruz: - [AdGuard Tarayıcı Uzantısı](/adguard-browser-extension/overview) -- [AdGuard for Safari](/adguard-for-safari/overview) +- [Safari için AdGuard](/adguard-for-safari/overview) -## Not just ad blocking +## Sadece reklam engelleme değil -AdGuard Ad Blocker does more than just block ads. It will protect you from online tracking and enhance your privacy in many ways. Depending on the specific product, AdGuard can also offer such perks as DNS filtering for more rounded-up protection, Parental Control to shield your kids from inappropriate content, Filtering log to have better control over your internet traffic, and more. This Knowledge base contains detailed information about any and all of them — feel free to jump to any article that interests you. +AdGuard Reklam Engelleyici, reklamları engellemekten daha fazlasını yapar. It will protect you from online tracking and enhance your privacy in many ways. Belirli ürüne bağlı olarak AdGuard, daha kapsamlı koruma için DNS filtreleme, çocuklarınızı uygunsuz içerikten korumak için Ebeveyn Denetimi, internet trafiğiniz üzerinde daha iyi kontrol sahibi olmak için Filtreleme günlüğü ve daha fazlası gibi avantajlar da sunabilir. Bu Bilgi tabanı bunların hepsi hakkında ayrıntılı bilgi içerir — ilginizi çeken herhangi bir makaleye atlamaktan çekinmeyin. diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/miscellaneous/acknowledgements.md b/i18n/tr/docusaurus-plugin-content-docs/current/miscellaneous/acknowledgements.md index 107e336af72..ff483915693 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/miscellaneous/acknowledgements.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/miscellaneous/acknowledgements.md @@ -9,14 +9,14 @@ Geliştirme ekibimiz, bu üçüncü taraf yazılımın geliştiricilerine, beta Bu, AdGuard yazılım geliştirme sürecinde bize gerçekten yardımcı olan kütüphanelerin ve diğer kaynakların listesidir. -## AdGuard for Windows {#win} +## Windows için AdGuard {#win} -- SQLLite database engine: [https://sqlite.org](https://sqlite.org) -- ADO.NET provider for SQLite: [https://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki](https://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki) +- SQLLite veri tabanı motoru: [https://sqlite.org](https://sqlite.org) +- SQLite için ADO.NET sağlayıcısı: [https://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki](https://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki) - Json.NET — high-performance JSON framework for .NET: [https://www.newtonsoft.com/json](https://www.newtonsoft.com/json) - AvalonEdit — WPF-based text editor component: [https://avalonedit.net](https://avalonedit.net) -## AdGuard for Mac {#mac} +## Mac için AdGuard {#mac} - Red Sweater Software, LLC for RSVerticallyCenteredTextFieldCell component: [http://www.red-sweater.com/blog/148/what-a-difference-a-cell-makes](http://www.red-sweater.com/blog/148/what-a-difference-a-cell-makes) - Ilija Tovilo for ITProgressIndicator component: [https://github.com/iluuu1994/ITProgressIndicator](https://github.com/iluuu1994/ITProgressIndicator) @@ -28,7 +28,7 @@ Bu, AdGuard yazılım geliştirme sürecinde bize gerçekten yardımcı olan kü - Bartosz Janda for Acextract component: [https://github.com/bartoszj/acextract](https://github.com/bartoszj/acextract) - FLOPageViewController: [https://github.com/floschliep/FLOPageViewController](https://github.com/floschliep/FLOPageViewController) -## AdGuard for Android {#android} +## Android için AdGuard {#android} - Logback-android by Tony19: [https://tony19.github.io/logback-android](https://tony19.github.io/logback-android) - Otto by Square: [http://square.github.io/otto](http://square.github.io/otto) @@ -36,7 +36,7 @@ Bu, AdGuard yazılım geliştirme sürecinde bize gerçekten yardımcı olan kü - MaterialDateRangePicker by Supratim Chakraborty: [https://github.com/borax12/MaterialDateRangePicker](https://github.com/borax12/MaterialDateRangePicker) - HelloCharts by Leszek Wach: [https://github.com/lecho/hellocharts-android](https://github.com/lecho/hellocharts-android) -## AdGuard for iOS {#ios} +## iOS için AdGuard {#ios} - Reachability component by Tony Million: [https://github.com/tonymillion/Reachability](https://github.com/tonymillion/Reachability) - Fmdb component by August «Gus» Mueller: [https://github.com/ccgus/fmdb](https://github.com/ccgus/fmdb) @@ -55,7 +55,7 @@ Bu, AdGuard yazılım geliştirme sürecinde bize gerçekten yardımcı olan kü - crypto-js: [https://github.com/brix/crypto-js](https://github.com/brix/crypto-js) - ace: [https://github.com/ajaxorg/ace](https://github.com/ajaxorg/ace) -## AdGuard for Safari {#safari} +## Safari için AdGuard {#safari} - ace: [https://github.com/ajaxorg/ace](https://github.com/ajaxorg/ace) - adm-zip: [https://github.com/cthackers/adm-zip](https://github.com/cthackers/adm-zip) @@ -129,7 +129,7 @@ Also a huge thanks and gratitude to all beta testers and other engaged users, wh - Aikatsui — AdGuard Home'a aktif olarak katkıda bulunan - Andy Kleinert (AndyKl) — translator and proofreader to German in Crowdin - BigDargon — contributed the hostsVN project as a source to the list of AdGuard DNS -- Blaz — started as a filter contributor and now working at AdGuard +- Blaz — filtreye katkıda bulunan olarak başladı ve şimdi AdGuard'da çalışıyor - Boo Berry - forum ve Telegram grubu moderatörü - buuuuuuu190 — beta test kullanıcısı, aktif AdGuard Forum üyesi - clarke — beta test kullanıcısı, aktif AdGuard Forum üyesi @@ -139,7 +139,7 @@ Also a huge thanks and gratitude to all beta testers and other engaged users, wh - fabjazz — beta test kullanıcısı, aktif AdGuard Forum üyesi - Görkem Emrah Güler (gork7777) — translator and proofreader to Turkish in Crowdin - hanschke — beta test kullanıcısı, aktif AdGuard Forum üyesi -- iDjay — outstanding beta tester of AdGuard for iOS +- iDjay — iOS için AdGuard'ın olağan üstü beta test kullanıcısı - Imre Kristoffer Eilertsen (DandelionSprout) — maintainer of "Dandelion Sprout’s Nordic Filters" that are included in all AdGuard tools - IONIL — translator and proofreader to Hebrew in Crowdin - itabmedia — beta test kullanıcısı, aktif AdGuard Forum üyesi diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/miscellaneous/contribute/translate/guidelines.md b/i18n/tr/docusaurus-plugin-content-docs/current/miscellaneous/contribute/translate/guidelines.md index e387b63f4c4..c3b670e1293 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/miscellaneous/contribute/translate/guidelines.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/miscellaneous/contribute/translate/guidelines.md @@ -15,23 +15,23 @@ You'll also be able to switch between languages even after opening certain produ Choose any of available product folders and select a file — now you can start translating. -![Files *border](https://cdn.adtidy.org/content/Kb/ad_blocker/miscellaneous/adguard_translations/files.png) +![Dosyalar *border](https://cdn.adtidy.org/content/Kb/ad_blocker/miscellaneous/adguard_translations/files.png) :::note -You can also change the Crowdin interface language by clicking the *Settings* icon in the top right corner of the page. In the opened window scroll down to the *UI language* tab. Open it, choose a language and click **Change**. +Ayrıca sayfanın sağ üst köşesinde bulunan *Ayarlar* simgesine tıklayarak Crowdin arayüz dilini değiştirebilirsiniz. Açılan pencerede *Kullanıcı arayüz dili* sekmesine gidin. Açın, bir dil seçin ve **Değiştir** öğesine tıklayın. ::: ![Language1 *border](https://cdn.adtidy.org/content/Kb/ad_blocker/miscellaneous/adguard_translations/settings_en.png) -**The following guidelines will help you through the process.** +**Aşağıdaki yönergeler süreç boyunca size yardımcı olur.** -1. You can filter translations by clicking this button and selecting any offered option. +1. Bu düğmeye tıklayarak ve sunulan herhangi bir seçeneği seçerek çevirileri filtreleyebilirsiniz. ![crowdin *border](https://cdn.adtidy.org/public/Adguard/kb/en/ag-translations/filter.png) -1. Easily move between the files of the project. +1. Proje dosyaları arasında kolayca hareket edin. ![crowdin *border](https://cdn.adtidy.org/content/Kb/ad_blocker/miscellaneous/adguard_translations/filter_files.png) diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/miscellaneous/contribute/translate/plural-forms.md b/i18n/tr/docusaurus-plugin-content-docs/current/miscellaneous/contribute/translate/plural-forms.md index ba14cca5ae9..a6e7f60ef1c 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/miscellaneous/contribute/translate/plural-forms.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/miscellaneous/contribute/translate/plural-forms.md @@ -54,7 +54,7 @@ Let's take a closer look at them. ![crowdin *border](https://cdn.adtidy.org/public/Adguard/kb/en/plurals/dual_it.png) -Most of them are represented in the `AdGuard for Windows` project and consist of only one or two words: +Bunların çoğu `Windows için AdGuard` projesinde temsil edilir ve yalnızca bir veya iki kelimeden oluşur: - `days;` - `extensions;` diff --git a/i18n/tr/docusaurus-theme-classic/footer.json b/i18n/tr/docusaurus-theme-classic/footer.json index ce5dceb5d93..e0e2862d23d 100644 --- a/i18n/tr/docusaurus-theme-classic/footer.json +++ b/i18n/tr/docusaurus-theme-classic/footer.json @@ -20,7 +20,7 @@ "description": "The label of footer link with label=official_website linking to https://adguard.com" }, "link.item.label.about": { - "message": "About", + "message": "Hakkında", "description": "The label of footer link with label=about linking to https://adguard.com/contacts.html" }, "link.item.label.in_the_press": { @@ -36,19 +36,19 @@ "description": "The label of footer link with label=awards linking to https://adguard.com/awards.html" }, "link.item.label.adguard_for_windows": { - "message": "AdGuard for Windows", + "message": "Windows için AdGuard", "description": "The label of footer link with label=adguard_for_windows linking to https://adguard.com/adguard-windows/overview.html" }, "link.item.label.adguard_for_android": { - "message": "AdGuard for Android", + "message": "Android için AdGuard", "description": "The label of footer link with label=adguard_for_android linking to https://adguard.com/adguard-android/overview.html" }, "link.item.label.adguard_for_mac": { - "message": "AdGuard for Mac", + "message": "Mac için AdGuard", "description": "The label of footer link with label=adguard_for_mac linking to https://adguard.com/adguard-mac/overview.html" }, "link.item.label.adguard_for_ios": { - "message": "AdGuard for iOS", + "message": "iOS için AdGuard", "description": "The label of footer link with label=adguard_for_ios linking to https://adguard.com/adguard-ios/overview.html" }, "link.item.label.adguard_for_ios_pro": { diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/uk/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/uk/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/vi/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/vi/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/vi/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/vi/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/vi/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/vi/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index e8759c3647f..4b95abcd977 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 09be3719dba..9220a8ba1a4 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard iOS版][ios-app] | [AdGuard Safari版][ext-saf] | [AdGuard 内容拦截器][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:-----------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard iOS版][ios-app] | [AdGuard Safari版][ext-saf] | [AdGuard 内容拦截器][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------:|:--------------------------:|:-----------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard iOS版][ios-app] | [AdGuard Safari版][ext-saf] | [AdGuard 内容拦截器][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------:|:--------------------------:|:-----------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard iOS版][ios-app] | [AdGuard Safari版][ext-saf] | [AdGuard 内容拦截器][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------:|:--------------------------:|:-----------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard iOS版][ios-app] | [AdGuard Safari版][ext-saf] | [AdGuard 内容拦截器][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------:|:--------------------------:|:-----------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard iOS版][ios-app] | [AdGuard Safari版][ext-saf] | [AdGuard 内容拦截器][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------:|:--------------------------:|:-----------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard Safari版" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md index 4a6d1555725..696d824ed38 100644 --- a/i18n/zh-TW/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/adguard-for-windows/overview.md @@ -150,7 +150,7 @@ How does AdGuard VPN work? Without going into technical details, we can say that **What AdGuard VPN does:** - hides your real whereabouts and helps you stay anonymous -- сhanges your IP address to protect your data from tracking +- changes your IP address to protect your data from tracking - encrypts your traffic to make it unreachable to scammers - lets you configure where to use VPN and where not to (exclusions feature) diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md index 00432b80f16..00b43d18bdf 100644 --- a/i18n/zh-TW/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/general/ad-filtering/create-own-filters.md @@ -247,20 +247,32 @@ Example: ### Basic modifiers {#basic-rules-basic-modifiers} +The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. + -- [`$app`](#app-modifier) -- [`$denyallow`](#denyallow-modifier) -- [`$domain`](#domain-modifier) -- [`$header`](#header-modifier) -- [`$important`](#important-modifier) -- [`$match-case`](#match-case-modifier) -- [`$method`](#method-modifier) -- [`$popup`](#popup-modifier) -- [`$third-party`](#third-party-modifier) -- [`$to`](#to-modifier) +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:-----------------------------------:|:-----------------------------------:|:---------------------------------:| +| [$app](#app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$denyallow](#denyallow-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$domain](#domain-modifier) | ✅ | ✅ | ✅ | ✅ [*](#domain-modifier-limitations) | ✅ [*](#domain-modifier-limitations) | ✅ | +| [$header](#header-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$important](#important-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$match-case](#match-case-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$method](#method-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$popup](#popup-modifier) | ✅ * | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$third-party](#third-party-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$to](#to-modifier) | ⏳ | ✅ | ✅ | ❌ | ❌ | ❌ | -The following modifiers are the most simple and frequently used. Basically, they just limit the scope of rule application. +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: #### **`$app`** {#app-modifier} @@ -282,6 +294,12 @@ If you want the rule not to be applied to certain apps, start the app name with - `||baddomain.com^$app=~org.example.app` — a rule to block requests that match the specified mask and are sent from any app save for the `org.example.app`. - `||baddomain.com^$app=~org.example.app1|~org.example.app2` — same as above, but now two apps are excluded: `org.example.app1` and `org.example.app2`. +:::caution Restrictions + +Apps in the modifier value cannot have a wildcard, e.g. `$app=com.*.music`. Rules with such modifier are considered invalid. + +::: + :::info Compatibility - Only AdGuard for Windows, Mac, Android are technically capable of using rules with `$app` modifier. @@ -408,6 +426,8 @@ In the following examples it is implied that requests are sent from `http://exam - `/banner\d+/$domain=targetdomain.com` will not be matched as it contains a regular expression. - `page$domain=targetdomain.com|~example.org` will not be matched because the referrer domain is explicitly excluded. +#### `domain` modifier limitations {#domain-modifier-limitations} + :::caution Limitations Safari does not support the simultaneous use of allowed and disallowed domains, so rules like `||baddomain.com^$domain=example.org|~foo.example.org` will not work in AdGuard for iOS and AdGuard for Safari. @@ -483,9 +503,15 @@ This modifier defines a rule which applies only to addresses that match the case - `*/BannerAd.gif$match-case` — this rule will block `http://example.com/BannerAd.gif`, but not `http://example.com/bannerad.gif`. +:::info Compatibility + +Rules with `$match-case` modifier currently are not supported by [AdGuard for iOS and Safari](https://github.com/AdguardTeam/SafariConverterLib/issues/55). + +::: + #### **`$method`** {#method-modifier} -This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple domains to one rule, use the `|` character as a separator. +This modifier limits the rule scope to requests that use the specified set of HTTP methods. Negated methods are allowed. The methods must be specified in all lowercase characters, but are matched case-insensitively. To add multiple methods to one rule, use the vertical bar `|` as a separator. **Examples** @@ -502,7 +528,7 @@ Rules with mixed value restriction are considered invalid. So, for example, the :::info Compatibility -Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. +Rules with the `$method` are supported by AdGuard for Windows, Mac, Android, **running CoreLibs v1.12 or later**, and AdGuard Browser Extension for Chrome, Firefox, Edge, **running TSUrlFilter v2.1.1 or later**. ::: @@ -519,6 +545,7 @@ AdGuard will try to close the browser tab with any address that matches a blocki - `$popup` modifier works best in AdGuard Browser Extension. - In AdGuard for Safari and iOS, `$popup` rules simply block the page right away. - In AdGuard for Windows, Mac, and Android, `$popup` modifier may not detect a popup in some cases and it won't be blocked. `$popup` modifier applies the `document` content type with a special flag which is passed to a blocking page. Blocking page itself can do some checks and close the window if it is really a popup. Otherwise, page should be loaded. It can be combined with other request type modifiers, such as `$third-party` and `$important`. +- Rules with `$popup` modifier are not supported by AdGuard Content Blocker. ::: @@ -571,28 +598,11 @@ Rules with the `$to` modifier are supported by AdGuard for Windows, Mac, and And ### Content-type modifiers {#content-type-modifiers} - - -- [`$document`](#document-modifier) -- [`$font`](#font-modifier) -- [`$image`](#image-modifier) -- [`$media`](#media-modifier) -- [`$object`](#object-modifier) -- [`$other`](#other-modifier) -- [`$ping`](#ping-modifier) -- [`$script`](#script-modifier) -- [`$stylesheet`](#stylesheet-modifier) -- [`$subdocument`](#subdocument-modifier) -- [`$websocket`](#websocket-modifier) -- [`$xmlhttprequest`](#xmlhttprequest-modifier) -- [`$object-subrequest` (removed)](#object-subrequest-modifier) -- [`$webrtc` (removed)](#webrtc-modifier) - There is a set of modifiers, which can be used to limit the rule's application area to certain type of content. These modifiers can also be combined to cover, for example, both images and scripts. :::info Compatibility -There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, Android use following method: first we try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. +There is a big difference in how AdGuard determines the content type on different platforms. For AdGuard Browser Extension, content type for every request is provided by the browser. AdGuard for Windows, Mac, and Android use the following method: first, the apps try to determine the type of the request by the `Sec-Fetch-Dest` request header or by the filename extension. If the request is not blocked at this stage, the type will be determined using the `Content-Type` header at the beginning of the server response. ::: @@ -602,6 +612,34 @@ There is a big difference in how AdGuard determines the content type on differen - `||example.org^$script,stylesheet` — corresponds to all the scripts and styles from `example.org`. - `||example.org^$~image,~script,~stylesheet` — corresponds to all requests to `example.org` except for the images, scripts and styles. + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$document](#document-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$font](#font-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$image](#image-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$media](#media-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$object](#object-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$other](#other-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$ping](#ping-modifier) | ✅ * | ✅ | ✅ | ❌ | ❌ | ✅ | +| [$script](#script-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$stylesheet](#stylesheet-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$subdocument](#subdocument-modifier) | ✅ * | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$websocket](#websocket-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ✅ | +| [$xmlhttprequest](#xmlhttprequest-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$webrtc 🚫](#webrtc-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$object-subrequest 🚫](#object-subrequest-modifier "removed") | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported +- 🚫 — removed and no longer supported + +::: + #### **`$document`** {#document-modifier} The rule corresponds to the main frame document requests, i.e. HTML documents that are loaded in the browser tab. It does not match iframes, there is a [`$subdocument` modifier](#subdocument-modifier) for these. @@ -647,6 +685,8 @@ The rule corresponds to requests caused by either `navigator.sendBeacon()` or th AdGuard for Windows, Mac, and Android often cannot accurately detect `navigator.sendBeacon()`. Using `$ping` is not recommended in the filter lists that are supposed to be used by CoreLibs-based AdGuard products. +Rules with `$ping` modifier are not supported by AdGuard for Safari and iOS. + ::: #### **`$script`** {#script-modifier} @@ -666,6 +706,14 @@ The rule corresponds to requests for built-in pages — HTML tags `frame` and `i - `||example.com^$subdocument` blocks built-in page requests (`frame` and `iframe`) to `example.com` and all its subdomains anywhere. - `||example.com^$subdocument,domain=domain.com` blocks built-in page requests (`frame` и `iframe`) to `example.com` (and its subdomains) from `domain.com` and all its subdomains. +:::info Compatibility + +In AdGuard for Windows, Mac, and Android subdocuments are being detected by the [Sec-Fetch-Dest header][sec-fetch-dest-header] if it is present. Otherwise, some main pages may be treated as subdocuments. + +Rules with `$subdocument` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$websocket`** {#websocket-modifier} The rule applies only to WebSocket connections. @@ -711,19 +759,6 @@ The rule applies only to WebRTC connections. ### Exception rules modifiers {#exception-modifiers} - - -- [`$content`](#content-modifier) -- [`$elemhide`](#elemhide-modifier) -- [`$extension`](#extension-modifier) -- [`$jsinject`](#jsinject-modifier) -- [`$stealth`](#stealth-modifier) -- [`$urlblock`](#urlblock-modifier) -- [Generic rules](#exception-modifiers-generic-rules) - - [`$genericblock`](#genericblock-modifier) - - [`$generichide`](#generichide-modifier) - - [`$specifichide`](#specifichide-modifier) - Exception rules disable the other basic rules for the addresses to which they correspond. They begin with a `@@` mark. All the basic modifiers listed above can be applied to them and they also have a few special modifiers. :::note Visual representation @@ -732,6 +767,28 @@ We recommend to get acquainted with [this article](https://adblockplus.org/filte ::: + + +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| --------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$content](#content-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [$elemhide](#elemhide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$extension](#extension-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$jsinject](#jsinject-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$stealth](#stealth-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$urlblock](#urlblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$genericblock](#genericblock-modifier) | ✅ | ✅ | ✅ | ✅ * | ✅ * | ❌ | +| [$generichide](#generichide-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [$specifichide](#specifichide-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- ❌ — not supported + +::: + #### **`$content`** {#content-modifier} Disables [HTML filtering](#html-filtering-rules), [`$hls`](#hls-modifier), [`$replace`](#replace-modifier), and [`$jsonprune`](#jsonprune-modifier) rules on the pages that match the rule. @@ -859,6 +916,14 @@ Disables blocking of all requests sent from the pages matching the rule and disa - `@@||example.com^$urlblock` — any requests sent from the pages at `example.com` and all subdomains are not going to be blocked. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$urlblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$urlblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### Generic rules {#exception-modifiers-generic-rules} Before we can proceed to the next modifiers, we have to make a definition of *generic rules*. The rule is generic if it is not limited to specific domains. Wildcard character `*` is supported as well. @@ -890,6 +955,14 @@ Disables generic basic rules on pages that correspond to exception rule. - `@@||example.com^$genericblock` disables generic basic rules on any pages at `example.com` and all subdomains. +:::info Compatibility + +In AdGuard for iOS and Safari rules with `$genericblock` work as [$document exclusion](#document-modifier) — unblock everything. + +Rules with `$genericblock` modifier are not supported by AdGuard Content Blocker. + +::: + #### **`$generichide`** {#generichide-modifier} Disables all generic [cosmetic rules](#cosmetic-rules) on pages that correspond to the exception rule. @@ -914,35 +987,49 @@ All cosmetic rules — not just specific ones — can be disabled by [`$elemhide :::info Compatibility -Rules with `$specifichide` modifier are **not supported** by AdGuard for iOS and Safari. +Rules with `$specifichide` modifier are not supported by AdGuard for iOS and Safari and AdGuard Content Blocker. ::: -### Advanced capabilities +### Advanced capabilities {#advanced-modifiers} + +These modifiers are able to completely change the behavior of basic rules. -- [`$all`](#all-modifier) -- [`$badfilter`](#badfilter-modifier) -- [`$cookie`](#cookie-modifier) -- [`$csp`](#csp-modifier) -- [`$hls`](#hls-modifier) -- [`$inline-font`](#inline-font-modifier) -- [`$inline-script`](#inline-script-modifier) -- [`$jsonprune`](#jsonprune-modifier) -- [`$network`](#network-modifier) -- [`$permissions`](#permissions-modifier) -- [`$redirect`](#redirect-modifier) -- [`$redirect-rule`](#redirect-rule-modifier) -- [`$referrerpolicy`](#referrerpolicy-modifier) -- [`$removeheader`](#removeheader-modifier) -- [`$removeparam`](#removeparam-modifier) -- [`$replace`](#replace-modifier) -- [`noop`](#noop-modifier) -- [`$empty` (deprecated)](#empty-modifier) -- [`$mp4` (deprecated)](#mp4-modifier) - -These modifiers are able to completely change the behaviour of basic rules. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$all](#all-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$badfilter](#badfilter-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$cookie](#cookie-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$csp](#csp-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$hls](#hls-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$inline-font](#inline-font-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$inline-script](#inline-script-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$jsonprune](#jsonprune-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$network](#network-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$permissions](#permissions-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | +| [$redirect](#redirect-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$redirect-rule](#redirect-rule-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$referrerpolicy](#referrerpolicy-modifier) | ⏳ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$removeheader](#removeheader-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$removeparam](#removeparam-modifier) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$replace](#replace-modifier) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [noop](#noop-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$empty 👎](#empty-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| [$mp4 👎](#mp4-modifier "deprecated") | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details + + +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future + +::: #### **`$all`** {#all-modifier} @@ -1124,13 +1211,6 @@ Basic URL exceptions shall not disable rules with `$hls` modifier. They can be d ::: -**Restrictions** - -- `$hls` rules are only allowed in trusted filters -- `$hls` rules are only compatible with the modifiers `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` -- `$hls` rules only apply to HLS playlists, which are UTF-8 encoded text starting with the line `#EXTM3U`. Any other response will not be modified by these rules -- `$hls` rules do not apply if the size of the original response is more than 3 MB - :::note When multiple `$hls` rules match the same request, their effect is cumulative. @@ -1286,11 +1366,6 @@ Basic URL exceptions shall not disable rules with `$jsonprune` modifier. They ca `$jsonprune` rules can also be disabled by `$document`, `$content` and `$urlblock` exception rules. -**Restrictions** - -- `$jsonprune` rules are only compatible with `$domain`, `$third-party`, `$app`, `$important`, `$match-case`, and `$xmlhttprequest` modifiers. -- `$jsonprune` rules do not apply if the size of the original response is more than 3 MB. - :::note When multiple `$jsonprune` rules match the same request, they are sorted in lexicographical order, the first rule is applied to the original response, and each of the remaining rules is applied to the result of applying the previous one. @@ -1540,7 +1615,7 @@ In case if multiple `$permissions` rules match a single request, AdGuard will ap - `||example.org^$permissions=autoplay=()` disallows autoplay media requested through the `HTMLMediaElement` interface across `example.org`. - `@@||example.org/page/*$permissions=autoplay=()` disables all rules with the `$permissions` modifier exactly matching `autoplay=()` on all the pages matching the rule pattern. For instance, the rule above. - `@@||example.org/page/*$permissions` disables all the `$permissions` rules on all the pages matching the rule pattern. -- `$domain=example.org|example.com,permissions=storage-access=()\, сamera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. +- `$domain=example.org|example.com,permissions=storage-access=()\, camera=()` disallows using the Storage Access API to request access to unpartitioned cookies and using video input devices across `example.org` and `example.com`. - `@@||example.org^$document` or `@@||example.org^$urlblock` disables all the `$permission` rules on all the pages matching the rule pattern. :::caution Limitations @@ -1861,7 +1936,7 @@ With these rules, specified UTM parameters will be removed from any request save :::caution Restrictions - Rules with `$removeparam` modifier can be used [**only in trusted filters**](#trusted-filters). -- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-common-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. The rules which have any other modifiers are considered invalid and will be discarded. +- `$removeparam` rules are compatible with [basic modifiers](#basic-rules-basic-modifiers), [content-type modifiers](#content-type-modifiers), and with `$important` and `$app` modifiers. Rules with any other modifiers are considered invalid and will be discarded. ::: @@ -2208,10 +2283,25 @@ Rule weight: base weight + allowed content type, [category 2](#priority-category Rule weight: base weight + allowed content types, [category 2](#priority-category-2): `1 + (50 + 50/12) = 55`. - -# Non-basic rules +## Non-basic rules {#non-basic-rules} + +However, basic rules may not be enough to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. + +| Categories \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------------ |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [Element hiding](#cosmetic-elemhide-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS rules](#cosmetic-css-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Extended CSS](#extended-css-selectors) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [HTML filtering](#html-filtering-rules) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| [JavaScript](#javascript-rules) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [Scriptlets](#scriptlets) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | + +:::note + +- ✅ — fully supported +- ❌ — not supported -However, the capabilities of the basic rules may not be sufficient to block ads. Sometimes you need to hide an element or change part of the HTML code of a web page without breaking anything. The rules described in this section are created specifically for this purpose. +::: ## Cosmetic rules {#cosmetic-rules} @@ -3286,14 +3376,7 @@ Learn more about [how to debug scriptlets](#debug-scriptlets). More information about trusted scriptlets can be found [on GitHub](https://github.com/AdguardTeam/Scriptlets#trusted-scriptlets). -## Modifiers for non-basic type of rules - - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) +## Modifiers for non-basic type of rules {#non-basic-rules-modifiers} Each rule can be modified using the modifiers described in the following paragraphs. @@ -3311,6 +3394,21 @@ For example, `[$domain=example.com,app=test_app]##selector`. In the modifiers values of the following characters must be escaped: `[`, `]`, `,`, and `\` (unless it is used for the escaping). Use `\` to escape them. For example, an escaped bracket looks like this: `\]`. +| Modifier \ Products | [CoreLibs apps][cl-apps] | [AdGuard for Chromium][ext-chr] | [AdGuard for Firefox][ext-ff] | [AdGuard for iOS][ios-app] | [AdGuard for Safari][ext-saf] | [AdGuard Content Blocker][and-cb] | +| ------------------------------------- |:------------------------:|:-------------------------------:|:-----------------------------:|:--------------------------:|:-----------------------------:|:---------------------------------:| +| [$app](#non-basic-app-modifier) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| [$domain](#non-basic-domain-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$path](#non-basic-path-modifier) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| [$url](#non-basic-url-modifier) | ✅ | ⏳ | ⏳ | ❌ | ❌ | ❌ | + +:::note + +- ✅ — fully supported +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported + +::: + ### **`$app`** {#non-basic-app-modifier} `$app` modifier lets you narrow the rule coverage down to a specific application or a list of applications. The modifier's behavior and syntax perfectly match the corresponding [basic rules `$app` modifier](#app-modifier). @@ -3382,11 +3480,11 @@ If `pattern` is not set for `$path`, rule will apply only on the main page of we :::info Compatibility -Rules with `$path` modifier are supported by AdGuard for Windows, Mac, and Android, and AdGuard Browser Extension for Chrome, Firefox, and Edge. +Rules with `$path` modifier are not supported by AdGuard Content Blocker. ::: -### **`url`** {#non-basic-url-modifier} +### **`$url`** {#non-basic-url-modifier} `$url` modifier limits the rule application area to URLs matching the specified mask. @@ -3783,3 +3881,39 @@ The following scriptlets also may be used for debug purposes: We wish you luck with creating you own ad filters. If you need an advice on how to create your own filters properly, our forum has a [special section](https://forum.adguard.com/index.php?forums/69/) dedicated to writing your own filtering rules. + +* * * + +## Compatibility tables legend {#compatibility-tables-legend} + +### Product shortcuts {#what-product} + +1. `CoreLibs apps` — AdGuard for Windows, Mac, Android +1. `AdGuard for Chromium` — AdGuard Browser Extension for Chrome and other Chromium-based browsers, e.g. new Microsoft Edge, Opera +1. `AdGuard for Firefox` — AdGuard Browser Extension for Firefox +1. `AdGuard for iOS` — AdGuard for iOS and AdGuard for iOS Pro (for mobile Safari browser) +1. `AdGuard for Safari` — AdGuard for desktop Safari browser +1. `AdGuard Content Blocker` — Content Blocker for Android mobile browsers: Samsung Internet and Yandex Browser + +### Compatibility shortcuts {#what-compatibility} + +:::note + +- ✅ — fully supported +- ✅ * — supported, but reliability may vary or limitations may occur; check the modifier description for more details +- 🧩 — may already be implemented in nightly or beta versions but is not yet supported in release versions +- ⏳ — feature that has been implemented or is planned to be implemented but is not yet available in any product +- ❌ — not supported +- 👎 — deprecated; still supported but will be removed in the future +- 🚫 — removed and no longer supported + +::: + +[cl-apps]: #what-product "AdGuard for Windows, Mac, Android" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ios-app]: #what-product "AdGuard for iOS and AdGuard for iOS Pro" +[ext-saf]: #what-product "AdGuard for Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" + +[sec-fetch-dest-header]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest