diff --git a/i18n/be/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md b/i18n/be/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/be/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/be/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/be/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/be/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/be/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/bn/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/bn/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/bn/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/bn/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/bn/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/bn/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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/adguard-for-safari/extensions.md b/i18n/cs/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..b0b8d49a384 --- /dev/null +++ b/i18n/cs/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +Tento článek je o AdGuardu pro Safari, který chrání pouze váš prohlížeč Safari. Chcete-li chránit celé zařízení, [stáhněte si aplikaci AdGuard](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/cs/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/cs/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 01d2b836945..da661d544d9 100644 --- a/i18n/cs/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/cs/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard pro Safari je bezplatná aplikace uvedená v App Store. Chcete-li ji nai :::note -Pro správnou funkci AdGuardu pro Safari nejsou nutná všechna rozšíření. Například zaškrtnutím rozšíření *Icon* zapnete ikonu v nabídce. Doporučujeme však povolit všechny. +Pro správnou funkci AdGuardu pro Safari nejsou nutná všechna rozšíření. For instance, checking the *Icon* extension enables the icon next to the search bar. Doporučujeme však povolit všechny. ::: 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..8aca4259162 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** @@ -494,15 +520,15 @@ Tento modifikátor omezuje rozsah pravidla na požadavky, které používají za - `@@||evil.com$method=get` odblokuje pouze požadavky GET na doméně `evil.com`. - `@@||evil.com$method=~post` odblokuje jakékoliv požadavky na doméně `evil.com` kromě POST. -:::note +:::caution Omezení -Pravidla s omezením smíšených hodnot jsou považována za neplatná. Takže např. pravidlo `||evil.com^$method=get|~head` bude zamítnuto. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Afinita Safari {#safari-affinity-directive} -Safari je prohlížeč notoricky známý svým přísným maximálním limitem 150 tisíc pro pravidla filtrování v blokátorech obsahu. V aplikacích AdGuard pro Safari a AdGuard pro iOS je však maximální počet pravidel zvýšen na 300 tisíc rozdělením do několika blokátorů obsahu. Obecně platí, že několik kategorií filtrů je víceméně nezávislých, takže existují takové blokátory obsahu, které tyto kategorie obsahují: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Blokování reklam, jazykově specifické filtry - AdGuard Privacy — Soukromí @@ -3528,9 +3628,9 @@ Safari je prohlížeč notoricky známý svým přísným maximálním limitem 1 - AdGuard Other — Jiné - AdGuard Custom — Vlastní -`Uživatelská pravidla` a `Seznam povolených` jsou přidány do každého blokátoru obsahu. +User rules and allowlist are added to every content blocker. -Hlavním problémem při použití více blokátorů obsahu je, že pravidla uvnitř těchto blokátorů obsahu se nemohou navzájem ovlivňovat. To může vést k různým neočekávaným problémům. Správci filtrů tedy mohou použít `!#safari_cb_affinity` k definování afinity blokátorů obsahu Safari pro pravidla uvnitř blokování direktiv. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntaxe** @@ -3572,7 +3672,7 @@ example.org#@#.adBanner ### Nápovědy -"Nápověda" je speciální komentář, instrukce pro kompilátor filtrů používaný na straně serveru (viz [FiltersRegistry](https://github.com/AdguardTeam/FiltersRegistry)). +"Hint" is a special comment, instruction to the filters compiler used on the server side (see [FiltersRegistry](https://github.com/AdguardTeam/FiltersRegistry)). **Syntaxe** @@ -3580,13 +3680,13 @@ example.org#@#.adBanner !+ HINT_NAME1(PARAMS) HINT_NAME2(PARAMS) ``` -Lze použít více nápověd. +Multiple hints can be applied. #### Nápověda `NOT_OPTIMIZED` -Pro každý filtr sestavuje AdGuard dvě verze: plnou a optimalizovanou. Optimalizovaná verze je mnohem jednodušší a neobsahuje pravidla, která se nepoužívají vůbec nebo jen zřídka. +For each filter, AdGuard compiles two versions: full and optimized. Optimized version is much more lightweight and does not contain rules which are not used at all or used rarely. -Frekvence používání pravidel vychází ze shromážděných statistik [pravidel filtrování](../tracking-filter-statistics). Optimalizace filtrů je však založena na více než na tom — některé filtry mají specifickou konfiguraci. Takto to vypadá pro Základní filtr: +Rules usage frequency comes from the collected [filter rules statistics](../tracking-filter-statistics). But filters optimization is based on more than that — some filters have specific configuration. This is how it looks like for Base filter: ```text "filter": AdGuard Base filter, @@ -3604,21 +3704,21 @@ kde: - **maxPercent** — horní mez hodnoty `percent` value - **strict** — pokud je `percent < minPercent` NEBO `percent > maxPercent` a je zapnutý přísný režim, pak by kompilace filtru měla selhat, jinak je nutné použít původní pravidla -Jinými slovy, `percent` je "úroveň komprese". Například pro Základní filtr je nastavena na 40 %. To znamená, že optimalizační algoritmus by měl odstranit 60 % pravidel. +In other words, `percent` is the "compression level". For instance, for the Base filter it is configured to 40%. It means that optimization algorithm should strip 60% of rules. -Nakonec zde jsou dvě verze základního filtru pro Rozšíření prohlížeče AdGuard: +Eventually, here are the two versions of the Base filter for AdGuard Browser Extension: - úplná: https://filters.adtidy.org/extension/chromium/filters/2.txt - optimalizovaná: https://filters.adtidy.org/extension/chromium/filters/2_optimized.txt -**Pokud chcete přidat pravidlo, které by nemělo být při optimalizaci odstraněno, použijte nápovědu `NOT_OPTIMIZED`:** +**If you want to add a rule which should not be removed at optimization use the `NOT_OPTIMIZED` hint:** ```adblock !+ NOT_OPTIMIZED ||example.org^ ``` -**Toto pravidlo nebude optimalizováno pouze pro AdGuard pro Android:** +**And this rule will not be optimized only for AdGuard for Android:** ```adblock !+ NOT_OPTIMIZED PLATFORM(android) @@ -3627,7 +3727,7 @@ Nakonec zde jsou dvě verze základního filtru pro Rozšíření prohlížeče #### Nápověda `PLATFORM` a `NOT_PLATFORM` -Slouží k zadání platforem pro použití pravidel. Seznam existujících platforem a odkazy např. na Základní filtr: +Used to specify the platforms to apply the rules. List of existing platforms and links to Base filter, for example, for each of them: - `windows` — AdGuard pro Windows — [https://filters.adtidy.org/windows/filters/2.txt](https://filters.adtidy.org/windows/filters/2.txt) @@ -3653,14 +3753,14 @@ Slouží k zadání platforem pro použití pravidel. Seznam existujících plat **Příklady** -Toto pravidlo bude dostupné pouze v AdGuardu pro Windows, Mac a Android: +This rule will be available only in AdGuard for Windows, Mac, Android: ```adblock !+ PLATFORM(windows,mac,android) ||example.org^ ``` -Toto pravidlo bude k dispozici pro všechny platformy kromě AdGuardu pro Safari, Blokátoru obsahu AdGuard a AdGuardu pro iOS: +This rule will be available for every platform except AdGuard for Safari, AdGuard Content Blocker, and AdGuard for iOS: ```adblock !+ NOT_PLATFORM(ext_safari, ext_android_cb, ios) @@ -3669,13 +3769,13 @@ Toto pravidlo bude k dispozici pro všechny platformy kromě AdGuardu pro Safari ## Jak ladit pravidla filtrování -Jednoduchá pravidla filtrování je možné vytvořit "v hlavě", ale pro cokoli alespoň trochu složitějšího budete potřebovat další nástroje pro jejich ladění a iteraci. Existují nástroje, které vám s tím pomohou. V prohlížeči Chrome a jeho analogiích v ostatních prohlížečích můžete použít nástroj DevTools, ale většina produktů AdGuardu nabízí ještě jeden — Záznam filtrování. +It may be possible to create simple filtering rules "in your head" but for anything even slightly more complicated you will need additional tools to debug and iterate them. There are tools to assist you with that. You can use DevTools in Chrome and its analogs in other browsers but most AdGuard products provide another one — Filtering log. ### Záznam filtrování -Záznam filtrování je pokročilý nástroj, který bude užitečný především pro vývojáře filtrů. Obsahuje seznam všech webových požadavků, které procházejí skrze AdGuard, poskytuje vyčerpávající informace o každém z nich, nabízí několik možností třídění a další užitečné funkce. +Filtering log is an advanced tool that will be helpful mostly to filter developers. It lists all web requests that pass through AdGuard, gives you exhaustive information on each of them, offers multiple sorting options, and has other useful features. -V závislosti na tom, který AdGuard produkt používáte, se protokol filtrování může nacházet na různých místech. +Depending on which AdGuard product you are using, Filtering log can be located in different places. - V **AdGuardu pro Windows** jej najdete na kartě *Blokátor reklam* nebo prostřednictvím nabídky na hlavním panelu; - V **AdGuardu pro Mac** je pod *Nastavení → Pokročilé → Záznam filtrování*; @@ -3684,17 +3784,17 @@ V závislosti na tom, který AdGuard produkt používáte, se protokol filtrová :::note -V **AdGuardu pro iOS** a v **AdGuardu pro Safari** Záznam filtrování neexistuje kvůli způsobu, jakým jsou v Safari implementovány blokátory obsahu. AdGuard tyto webové požadavky nevidí, a proto je nemůže zobrazit. +In **AdGuard for iOS** and in **AdGuard for Safari** Filtering log does not exist because of the way content blockers are implemented in Safari. AdGuard does not see the web requests and therefore cannot display them. ::: ### Režim ladění selektorů {#selectors-debug-mode} -Někdy můžete potřebovat zkontrolovat výkonnost daného selektoru nebo souboru stylů. Abyste to mohli provést bez přímé interakce s JavaScript, můžete použít speciální vlastnost stylu `debug`. Když `ExtendedCss` splňuje tuto vlastnost, povolí režim ladění buď pro jeden selektor, nebo pro všechny selektory v závislosti na hodnotě `debug`. +Sometimes, you might need to check the performance of a given selector or a stylesheet. In order to do it without interacting with JavaScript directly, you can use a special `debug` style property. When `ExtendedCss` meets this property, it enables the debugging mode either for a single selector or for all selectors, depending on the `debug` value. -Otevřete konzolu prohlížeče na webové stránce a zobrazte statistiky časování pro selektor(y), které zde byly použity. Režim ladění zobrazí následující statistiky jako objekt, kde každý z laděných selektorů je klíč a hodnota je objekt s těmito vlastnostmi: +Open the browser console while on a web page to see the timing statistics for selector(s) that were applied there. Debugging mode displays the following stats as object where each of the debugged selectors are keys, and value is an object with such properties: -**Vždy vytištěno:** +**Always printed:** - `selectorParsed` — text případně parsovaného selektoru - `timings` — seznam uzlů DOM odpovídajících selektoru @@ -3704,44 +3804,44 @@ Otevřete konzolu prohlížeče na webové stránce a zobrazte statistiky časov - `standardDeviation` — standardní odchylka - `timingsSum` — celkový čas potřebný k použití selektoru na stránce ve všech instancích -**Vytištěno pouze pro odstranění pseudonymů:** +**Printed only for remove pseudos:** - `removed` — příznak, který signalizuje, zda jsme odstranili prvky -**Vytištěno, pokud prvky nejsou odstraněny:** +**Printed if elements are not removed:** - `matchedElements` — seznam uzlů DOM odpovídajících selektoru - `styleApplied` — parsovaná deklarace stylu pravidla související se selektorem **Příklady** -**Ladění jednoho selektoru:** +**Debugging a single selector:** -Pokud je hodnota vlastnosti `debug` `true`, zobrazí se v konzole prohlížeče pouze informace o tomto selektoru. +When the value of the `debug` property is `true`, only information about this selector will be shown in the browser console. ```adblock #$?#.banner { display: none; debug: true; } ``` -**Povolení globálního ladění:** +**Enabling global debug:** -Pokud je hodnota vlastnosti `debug` `global`, konzola zobrazí informace o všech rozšířených selektorech CSS, které mají na aktuální stránce shodu pro všechna pravidla z libovolného povoleného filtru. +When the value of the `debug` property is `global`, the console will display information about all extended CSS selectors that have matches on the current page, for all the rules from any of the enabled filters. ```adblock #$?#.banner { display: none; debug: global; } ``` -**Testování rozšířených selektorů bez AdGuardu** +**Testing extended selectors without AdGuard** -ExtendedCss lze spustit na libovolné stránce bez použití AdGuard produktu. Za tímto účelem byste měli zkopírovat a spustit následující kód v konzoli prohlížeče: +ExtendedCss can be executed on any page without using any AdGuard product. In order to do that you should copy and execute the following code in a browser console: ```js !function(e,t,d){C=e.createElement(t),C.src=d,C.onload=function(){alert("ExtendedCss loaded successfully")},s=e.getElementsByTagName(t)[0],s?s.parentNode.insertBefore(C,s):(h=e.getElementsByTagName("head")[0],h.appendChild(C))}(document,"script","https://AdguardTeam.github.io/ExtendedCss/extended-css.min.js"); ``` -Případně nainstalujte uživatelský skript [ExtendedCssDebugger](https://github.com/AdguardTeam/Userscripts/blob/master/extendedCssDebugger/extended-css.debugger.user.js). +Alternatively, install the [ExtendedCssDebugger userscript](https://github.com/AdguardTeam/Userscripts/blob/master/extendedCssDebugger/extended-css.debugger.user.js). -Nyní můžete použít `ExtendedCss` z globálního rozsahu a spustit jeho metodu [`query()`](https://github.com/AdguardTeam/ExtendedCss#extended-css-query) jako `Document.querySelectorAll()`. +Now you can now use the `ExtendedCss` from global scope, and run its method [`query()`](https://github.com/AdguardTeam/ExtendedCss#extended-css-query) as `Document.querySelectorAll()`. **Příklady** @@ -3754,9 +3854,9 @@ ExtendedCss.query(selector); ### Ladění skriptletů {#debug-scriptlets} -Pokud používáte Rozšíření prohlížeče AdGuard a chcete vyladit pravidlo [skriptlet](#scriptlets) nebo [důvěryhodný skriptlet](#trusted-scriptlets), můžete získat další informace otevřením protokolu filtrování. V takovém případě se skriptlety přepnou do režimu ladění a v konzoli prohlížeče se zobrazí více informací. +If you are using AdGuard Browser Extension and want to debug a [scriptlet](#scriptlets) or a [trusted scriptlet](#trusted-scriptlets) rule, you can get additional information by opening the Filtering log. In that case, scriptlets will switch to debug mode and there will be more information in the browser console. -Následující skriptlety jsou speciálně vyvinuty zejména pro účely ladění: +The following scriptlets are especially developed for debug purposes: - [`debug-current-inline-script`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#debug-current-inline-script) - [`debug-on-property-read`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#debug-on-property-read) @@ -3766,7 +3866,7 @@ Následující skriptlety jsou speciálně vyvinuty zejména pro účely laděn - [`log-eval`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#log-eval) - [`log`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#log) -Následující skriptlety lze také použít pro účely ladění: +The following scriptlets also may be used for debug purposes: - [`json-prune`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#json-prune) - [`prevent-fetch`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#prevent-fetch) @@ -3780,6 +3880,42 @@ Následující skriptlety lze také použít pro účely ladění: ## Hodně štěstí při vytváření filtrů -Přejeme vám hodně štěstí při vytváření vlastních filtrů reklam. +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 pro Safari" +[and-cb]: #what-product "AdGuard Content Blocker for Samsung Internet and Yandex Browser on Android" -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í. +[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-safari/extensions.md b/i18n/da/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/da/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/da/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/da/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/da/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/da/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/de/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..8803241ff74 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +In diesem Artikel geht es um AdGuard für Safari, der nur Ihren Safari-Browser schützt. Um Ihr gesamtes Gerät zu schützen, [laden Sie die App AdGuard herunter](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/de/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/de/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 79ab3ba544c..6dd39ffe84e 100644 --- a/i18n/de/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/de/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..4786d71dab2 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Beschränkungen -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/es/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..a17057fb45c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +Este artículo trata sobre AdGuard para Safari, que protege solo tu navegador Safari. Para proteger todo tu dispositivo, [descarga la aplicación AdGuard](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/es/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index eb55b53c572..863aa38c04d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..a451e811236 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/fa/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/fa/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/fa/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/fa/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/fa/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/fa/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/fi/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/fi/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/fi/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/fi/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/fi/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/fi/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/fr/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..e40150e2b91 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +Cet article concerne AdGuard pour Safari, qui protège uniquement votre navigateur Safari. Pour une protection complète de votre appareil, [téléchargez l'application AdGuard](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/fr/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index fca98e0bfec..52b02329fd7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..84d1c381439 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/hr/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/hr/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/hr/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/hr/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/hr/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/hr/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/hu/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/hu/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/hu/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/hu/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/hu/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/hu/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/it/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..0b295d54789 --- /dev/null +++ b/i18n/it/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +Questo articolo riguarda AdGuard per Safari, che protegge solo il tuo browser Safari. Per proteggere il tuo dispositivo intero, [scarica l'app AdGuard](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/it/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/it/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b5f99b46da..acd9f70b9ad 100644 --- a/i18n/it/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/it/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..a077d5e94bb 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/ja/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..a6f82b26bfb --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +この記事は、お使いのSafariブラウザのみを保護する「AdGuard for Safari」に関するものです。 デバイス全体を保護するには、[AdGuardアプリをダウンロード](https://adguard.com/download.html?auto=true)してください。 + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/ja/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 0dfdca85c3d..0f77baf409d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..87458d8825e 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/ko/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..93f6353f2d1 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +Safari 브라우저만 보호하는 Safari용 AdGuard에 관한 문서입니다. 기기 전체를 보호하려면, [AdGuard 앱을 다운로드](https://adguard.com/download.html?auto=true)하세요. + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/ko/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 8b8585454c3..bfdd4cab08e 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..408ad7b9a3c 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/nl/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/nl/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/nl/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/nl/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/nl/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/nl/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/no/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/no/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/no/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/no/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/no/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/no/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/pl/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/pl/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/pl/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/pl/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/pl/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/pl/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/pt-BR/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..bf69a41859d --- /dev/null +++ b/i18n/pt-BR/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +Este artigo é sobre o AdGuard para Safari, que protege apenas o seu navegador Safari. Para proteger todo o seu dispositivo, [baixe o aplicativo AdGuard](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/pt-BR/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/pt-BR/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index ffaafca59d0..d0af45ead2e 100644 --- a/i18n/pt-BR/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/pt-BR/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..32289fa5b20 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/pt/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..64464d8473b --- /dev/null +++ b/i18n/pt/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +Este artigo é sobre o AdGuard para Safari, que protege apenas o seu navegador Safari. Para proteger todo o seu dispositivo, [descarregue a aplicação AdGuard](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/pt/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index b9a18c34249..2fdc184c155 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..08329bcd91a 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/ro/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/ro/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/ro/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/ro/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/ro/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/ro/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/ru/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..545fd29e318 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +Эта статья об AdGuard для Safari, которое защищает только этот браузер. Чтобы защитить всё устройство, [скачайте приложение AdGuard](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/ru/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 2cc8ad41b5b..1d9debe42a3 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard для Safari — это бесплатная программа. Она :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..a0ca411bfa0 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. **Примеры** @@ -494,15 +520,15 @@ h_value = string / regexp - `@@|||evil.com$method=get` разблокирует только GET-запросы к `evil.com`. - `@@|||evil.com$method=~post` разблокирует любые запросы к `evil.com`, кроме POST. -:::note +:::caution Ограничения -Правила со смешанным ограничением значения считаются недействительными. Так, например, правило `||evil.com^$method=get|~head` будет отклонено. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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 которых соответствует указанной маске. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Влияние на Safari {#safari-affinity-directive} -В Safari существует строгое ограничение в 150 тысяч правил на один блокировщик контента. Но в AdGuard для Safari и в AdGuard для iOS максимальное число поддерживаемых правил увеличено до 300 тысяч. Это получилось благодаря условному их разделению на несколько блокировщиков контента. Как правило, отдельные категории фильтров более или менее независимы, поэтому они поделены между блокировщиками контента следующим образом: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Блокировка рекламы, Языковые - AdGuard Privacy — Антитрекинг @@ -3528,9 +3628,9 @@ domain.com##div.ad - AdGuard Other — Другие - AdGuard Custom — Собственные -`Пользовательские правила` и `Белый список` добавляются в каждый блокировщик контента. +User rules and allowlist are added to every content blocker. -Главный недостаток использования нескольких блокировщиков контента — это то, что они не могут работать вместе и ссылаться в своих правилах фильтрации друг на друга. Это может привести к неожиданным проблемам. Чтобы избежать этого и заставить правила внутри блока (из одного блокировщика) применяться вместе с правилами из другого блокировщика контента, разработчики фильтров могут использовать директиву `!#safari_cb_affinity`. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Синтаксис** @@ -3572,7 +3672,7 @@ example.org#@#.adBanner ### Подсказки -«Подсказка» (hint) — это специальный комментарий, инструкция к компилятору фильтров, используемому на стороне сервера (см. [FiltersRegistry](https://github.com/AdguardTeam/FiltersRegistry)). +"Hint" is a special comment, instruction to the filters compiler used on the server side (see [FiltersRegistry](https://github.com/AdguardTeam/FiltersRegistry)). **Синтаксис** @@ -3580,13 +3680,13 @@ example.org#@#.adBanner !+ HINT_NAME1(PARAMS) HINT_NAME2(PARAMS) ``` -Можно применить несколько подсказок. +Multiple hints can be applied. #### `NOT_OPTIMIZED` hint -Для каждого фильтра AdGuard существуют две версии: полная и оптимизированная. Оптимизированная версия намного легче и не содержит правил, которые не используются вообще или используются редко. +For each filter, AdGuard compiles two versions: full and optimized. Optimized version is much more lightweight and does not contain rules which are not used at all or used rarely. -Частота использования правил определяется собранной [статистикой по рекламным фильтрам](../tracking-filter-statistics). Но оптимизация основана также на исходной конфигурации для каждого фильтра. Например, вот так это выглядит для Базового фильтра: +Rules usage frequency comes from the collected [filter rules statistics](../tracking-filter-statistics). But filters optimization is based on more than that — some filters have specific configuration. This is how it looks like for Base filter: ```text "filter": Базовый фильтр AdGuard, @@ -3604,21 +3704,21 @@ example.org#@#.adBanner - **maxPercent** — верхняя граница значения `percent` - **Strict** — если `percent < minPercent` или `percent > maxPercent` и включён режим Strict, то компиляция фильтра должна завершиться неудачно, в противном случае должны использоваться оригинальные правила -Другими словами, `percent` — это «уровень сжатия». Например, для Базового фильтра он настроен на 40%. Это означает, что алгоритм оптимизации должен убрать 60% правил. +In other words, `percent` is the "compression level". For instance, for the Base filter it is configured to 40%. It means that optimization algorithm should strip 60% of rules. -В итоге, вот так выглядят версии Базового фильтра для Браузерного расширения AdGuard для Chrome: +Eventually, here are the two versions of the Base filter for AdGuard Browser Extension: - полная: https://filters.adtidy.org/extension/chromium/filters/2.txt - оптимизированная: https://filters.adtidy.org/extension/chromium/filters/2_optimized.txt -**Если вы хотите добавить правило, которое не должно удаляться при оптимизации, используйте подсказку `NOT_OPTIMIZED`:** +**If you want to add a rule which should not be removed at optimization use the `NOT_OPTIMIZED` hint:** ```adblock !+ NOT_OPTIMIZED ||example.org^ ``` -**А такое правило не будет оптимизировано только для AdGuard для Android:** +**And this rule will not be optimized only for AdGuard for Android:** ```adblock !+ NOT_OPTIMIZED PLATFORM(android) @@ -3627,7 +3727,7 @@ example.org#@#.adBanner #### Подсказки `PLATFORM` и `NOT_PLATFORM` -Записи этого типа позволяют указывать платформу, для которой применяется правило. Ниже представлен список используемых платформ и ссылки на Базовый фильтр для каждой из них: +Used to specify the platforms to apply the rules. List of existing platforms and links to Base filter, for example, for each of them: - `windows` — AdGuard для Windows — [https://filters.adtidy.org/windows/filters/2.txt](https://filters.adtidy.org/windows/filters/2.txt) @@ -3653,14 +3753,14 @@ example.org#@#.adBanner **Примеры** -Это правило будет действовать только в AdGuard для Windows, Mac, Android: +This rule will be available only in AdGuard for Windows, Mac, Android: ```adblock !+ PLATFORM(windows,mac,android) ||example.org^ ``` -Это правило будет действовать для всех платформ, кроме AdGuard для Safari, AdGuard Content Blocker и AdGuard для iOS: +This rule will be available for every platform except AdGuard for Safari, AdGuard Content Blocker, and AdGuard for iOS: ```adblock !+ NOT_PLATFORM(ext_safari, ext_android_cb, ios) @@ -3669,13 +3769,13 @@ example.org#@#.adBanner ## Отладка правил фильтрации -Хоть самые простые правила фильтрации и возможно придумать «в голове», для чего-то чуть более сложного вам потребуются дополнительная помощь в их отладке и повторении. Есть инструменты, которые помогут вам в этом. Вы можете использовать «Инструменты разработчика» в Chrome и их аналоги в других браузерах, но большинство продуктов AdGuard предоставляют и другой инструмент — Журнал фильтрации. +It may be possible to create simple filtering rules "in your head" but for anything even slightly more complicated you will need additional tools to debug and iterate them. There are tools to assist you with that. You can use DevTools in Chrome and its analogs in other browsers but most AdGuard products provide another one — Filtering log. ### Журнал фильтрации -Журнал фильтрации — продвинутый инструмент, который полезен в основном разработчикам фильтров. В нём отображаются все веб-запросы, проходящие через AdGuard, даётся исчерпывающая информация по каждому из них, предлагаются различные опции сортировки и другие полезные возможности. +Filtering log is an advanced tool that will be helpful mostly to filter developers. It lists all web requests that pass through AdGuard, gives you exhaustive information on each of them, offers multiple sorting options, and has other useful features. -В зависимости от используемого вами продукта AdGuard, Журнал фильтрации может находиться в различных пунктах меню. +Depending on which AdGuard product you are using, Filtering log can be located in different places. - В **AdGuard для Windows** вы найдёте его во вкладке настроек *Антибаннер* или через меню трея; - В **AdGuard для Mac** он располагается в разделе *Настройки → Дополнительно → Журнал запросов*; @@ -3684,17 +3784,17 @@ example.org#@#.adBanner :::note -В **AdGuard для iOS** и в **AdGuard для Safari** Журнал фильтрации отсутствует из-за особенностей реализации блокировщиков контента в Safari. AdGuard сам не видит веб-запросы и поэтому не может отображать их. +In **AdGuard for iOS** and in **AdGuard for Safari** Filtering log does not exist because of the way content blockers are implemented in Safari. AdGuard does not see the web requests and therefore cannot display them. ::: ### Режим отладки селекторов {#selectors-debug-mode} -Иногда у вас может возникнуть необходимость проверить производительность того или иного селектора или таблицы стилей. Чтобы сделать это без непосредственного взаимодействия с JavaScript, вы можете использовать свойство стиля `debug`. Когда `ExtendedCss` встречает это свойство, он включает режим отладки для конкретного селектора или для всех селекторов, в зависимости от значения `debug`. +Sometimes, you might need to check the performance of a given selector or a stylesheet. In order to do it without interacting with JavaScript directly, you can use a special `debug` style property. When `ExtendedCss` meets this property, it enables the debugging mode either for a single selector or for all selectors, depending on the `debug` value. -Откройте консоль браузера, находясь на веб-странице, чтобы посмотреть статистику по времени, затраченному на применение селектора(-ов). В режиме отладки следующая статистика отображается в виде объекта, где каждый из отлаживаемых селекторов является ключом, а значение — объектом с такими свойствами: +Open the browser console while on a web page to see the timing statistics for selector(s) that were applied there. Debugging mode displays the following stats as object where each of the debugged selectors are keys, and value is an object with such properties: -**Всегда выводится:** +**Always printed:** - `selectorParsed` — окончательный текст селектора после парсинга - `timings` — список узлов DOM, соответствующих селектору @@ -3704,44 +3804,44 @@ example.org#@#.adBanner - `standardDeviation` — стандартное отклонение - `timingsSum` — общее время, ушедшее на все применения селектора на текущей странице -**Выводится только для удалённых псевдоэлементов:** +**Printed only for remove pseudos:** - `removed` — флаг, сигнализирующий об удалении элементов -**Выводится, если элементы не удалены:** +**Printed if elements are not removed:** - `matchedElements` — список узлов DOM, соответствующих селектору - `styleApplied` — объявление обработанного стиля правила, связанного с селектором **Примеры** -**Отладка конкретного селектора:** +**Debugging a single selector:** -Когда значение свойства `debug` равно `true`, информация только по этому селектору будет отображена в консоли браузера. +When the value of the `debug` property is `true`, only information about this selector will be shown in the browser console. ```adblock #$?#.banner { display: none; debug: true; } ``` -**Включение глобальной отладки:** +**Enabling global debug:** -Когда значение свойства `debug` равно `global`, в консоли будет отображаться информация по всем CSS-селекторам, которые были применены на данной странице, для всех правил из любого из включённых фильтров. +When the value of the `debug` property is `global`, the console will display information about all extended CSS selectors that have matches on the current page, for all the rules from any of the enabled filters. ```adblock #$?#.banner { display: none; debug: global; } ``` -**Тестирование расширенных селекторов без AdGuard** +**Testing extended selectors without AdGuard** -ExtendedCss может быть выполнен на любой странице без использования какого-либо продукта AdGuard. Чтобы сделать это, скопируйте и запустите следующий код в консоли браузера: +ExtendedCss can be executed on any page without using any AdGuard product. In order to do that you should copy and execute the following code in a browser console: ```js !function(e,t,d){C=e.createElement(t),C.src=d,C.onload=function(){alert("ExtendedCss loaded successfully")},s=e.getElementsByTagName(t)[0],s?s.parentNode.insertBefore(C,s):(h=e.getElementsByTagName("head")[0],h.appendChild(C))}(document,"script","https://AdguardTeam.github.io/ExtendedCss/extended-css.min.js"); ``` -В качестве альтернативы установите [пользовательский скрипт ExtendedCssDebugger](https://github.com/AdguardTeam/Userscripts/blob/master/extendedCssDebugger/extended-css.debugger.user.js). +Alternatively, install the [ExtendedCssDebugger userscript](https://github.com/AdguardTeam/Userscripts/blob/master/extendedCssDebugger/extended-css.debugger.user.js). -Теперь вы можете использовать `ExtendedCss` глобально и запустить его метод [`query()`](https://github.com/AdguardTeam/ExtendedCss#extended-css-query) как `Document.querySelectorAll()`. +Now you can now use the `ExtendedCss` from global scope, and run its method [`query()`](https://github.com/AdguardTeam/ExtendedCss#extended-css-query) as `Document.querySelectorAll()`. **Примеры** @@ -3754,9 +3854,9 @@ ExtendedCss.query(selector); ### Отладка скриптлетов {#debug-scriptlets} -Если вы используете браузерное расширение AdGuard и хотите отладить правило [скриптлета](#scriptlets) или [доверенного скриптлета](#trusted-scriptlets), то можете получить дополнительную информацию, открыв журнал фильтрации. В этом случае скриптлеты перейдут в режим отладки и будут записывать больше информации в браузерную консоль. +If you are using AdGuard Browser Extension and want to debug a [scriptlet](#scriptlets) or a [trusted scriptlet](#trusted-scriptlets) rule, you can get additional information by opening the Filtering log. In that case, scriptlets will switch to debug mode and there will be more information in the browser console. -Следующие скриптлеты разработаны специально для отладки: +The following scriptlets are especially developed for debug purposes: - [`debug-current-inline-script`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#debug-current-inline-script) - [`debug-on-property-read`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#debug-on-property-read) @@ -3766,7 +3866,7 @@ ExtendedCss.query(selector); - [`log-eval`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#log-eval) - [`log`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#log) -Следующие скриптлеты тоже могут быть использованы для отладки: +The following scriptlets also may be used for debug purposes: - [`json-prune`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#json-prune) - [`prevent-fetch`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#prevent-fetch) @@ -3780,6 +3880,42 @@ ExtendedCss.query(selector); ## Good luck with creating filters -Желаем вам удачи в создании собственных рекламных фильтров. +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" -Если вы хотите узнать, как правильно создавать собственные фильтры, ознакомьтесь с разделом на нашем форуме [](https://forum.adguard.com/index.php?forums/69/), посвящёном написанию правил фильтрации. +[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-safari/extensions.md b/i18n/sk/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/sk/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/sk/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/sk/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/sk/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/sk/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/sl/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/sl/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/sl/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/sl/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/sl/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/sl/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/sv/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/sv/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/sv/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/sv/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/sv/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/sv/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/ta/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/ta/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/ta/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/ta/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/ta/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/ta/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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..fd4a215011d 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. @@ -400,7 +400,7 @@ In this section, you can find information about your license and manage it: Use this section if you have any questions or suggestions regarding AdGuard for Android. We recommend consulting *[FAQ](https://adguard.com/support/adguard_for_android.html)* or this knowledge base before contacting support. -![Support *mobile_border](https://cdn.adtidy.org/blog/new/cz55usupport.png) +![Destek *mobile_border](https://cdn.adtidy.org/blog/new/cz55usupport.png) If you notice a missed ad, please report it via *Report incorrect blocking*. diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-android/solving-problems/low-level-settings.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-android/solving-problems/low-level-settings.md index a4c4d522e9a..25a57295dbb 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-android/solving-problems/low-level-settings.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-android/solving-problems/low-level-settings.md @@ -103,7 +103,7 @@ Here you can enable HAR file capture. Use it only for debugging purposes! If the #### Encrypted Client Hello -Every encrypted Internet connection has an unencrypted part. This is the very first packet which contains the name of the server you are connecting to. Encrypted Client Hello technology is supposed to solve this issue and encrypt that last bit of unencrypted information. To benefit from it, enable the *Encrypted Client Hello* option. Alan adı için ECH yapılandırmasını aramak için yerel bir DNS proxy'si kullanır. If it is found, ClientHello packet will be encrypted. +Every encrypted Internet connection has an unencrypted part. This is the very first packet which contains the name of the server you are connecting to. Encrypted Client Hello teknolojisinin bu sorunu çözmesi ve şifrelenmemiş bilgilerin son kısmını şifrelemesi gerekiyor. To benefit from it, enable the *Encrypted Client Hello* option. Alan adı için ECH yapılandırmasını aramak için yerel bir DNS proxy'si kullanır. If it is found, ClientHello packet will be encrypted. #### OCSP checking 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-ios/solving-problems/system-wide-filtering.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-ios/solving-problems/system-wide-filtering.md index 4ec5f872674..2266bbe6fe4 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-ios/solving-problems/system-wide-filtering.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-ios/solving-problems/system-wide-filtering.md @@ -15,7 +15,7 @@ System-wide filtering means blocking ads and trackers beyond the Safari browser, On iOS, the only way to block ads and trackers system-wide is to use [DNS filtering](https://adguard-dns.io/kb/general/dns-filtering/). -First, you have to enable DNS protection. To do so: +First, you have to enable DNS protection. Bunu yapmak için: 1. Open *AdGuard for iOS*. 2. Tap *Protection* icon (the second icon in the bottom menu bar). 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/extensions.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..b1845872804 --- /dev/null +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari uzantıları +sidebar_position: 3 +--- + +:::bilgi + +Bu makale, yalnızca Safari tarayıcınızı koruyan Safari için AdGuard hakkındadır. Tüm cihazınızı korumak için [AdGuard uygulamasını indirin](https://adguard.com/download.html?auto=true) + +::: + +## Safari uzantıları nelerdir + +Safari uzantıları, Safari web tarayıcısına işlevsellik ekleyen küçük yazılım programlarıdır. Tarayıcıda yerel olarak yerleşik olmayan özellikler ekleyerek kullanıcıların göz atma deneyimlerini özelleştirmelerine ve geliştirmelerine olanak tanırlar. Safari için AdGuard, uzantıları öncelikle Safari'de açılan sitelere filtreleme kuralları uygulamak için kullanır. + +## Nasıl çalışır + +AdGuard, sitelerdeki reklamları, izleyicileri ve can sıkıcı öğeleri engellemek için filtreleme kuralları kullanır. AdGuard'ın ve sizin özel filtrelerinizin kuralları, Safari tarafından anlaşılır olanlara dönüştürülür ve 6 Safari uzantısına entegre edilir: + +– AdGuard Genel – AdGuard Gizlilik – AdGuard Sosyal – AdGuard Güvenlik – AdGuard Diğer + +Her içerik engelleme uzantısı, 150.000 adede kadar etkin filtreleme kuralı içerebilir. Çoğu filtre grubundaki kural sayısı 150.000'i geçmez. Ancak çok fazla dile özgü veya özel filtre etkinleştirirseniz sınırı aşabilirsiniz. Bu gibi durumlarda, sınırı aşan rastgele kurallar otomatik olarak devre dışı bırakılır ve bu da yanlış engellemeye yol açabilir. **Yalnızca ihtiyacınız olan filtreleri etkinleştirmenizi önemle tavsiye ederiz**. + +Diğer özelliklerden sorumlu iki uzantı da vardır: + +– *AdGuard Safari Simgesi*, Safari'deki arama çubuğunun yanında AdGuard'ın simgesini etkinleştirir – *AdGuard Gelişmiş Engelleme*, karmaşık reklamları engellemek için gelişmiş kuralların kullanılmasını sağlar + +![Safari uzantıları](https://uploads.adguard.org/safari_extensions.png) + +Her bir uzantı hakkında daha fazla bilgi aşağıdadır. + +## İçerik engelleme uzantıları + +*AdGuard Genel* *Filtreler* → *Reklam engelleme* ve *Filtreler* → *Dile özgü* öğesinde bulabileceğiniz filtrelerdeki kuralları uygular. Bu uzantı, kapsamlı reklam engellemeye odaklanır ve belirli dillerdeki reklamlar için filtreler içerir. + +*AdGuard Gizlilik*, *Filtreleme* → *Gizlilik* öğesinde bulunan filtrelerdeki kuralları uygular. İzleme mekanizmalarını engeller ve göz atma etkinliğinizin gizli kalmasını sağlar. + +*AdGuard Sosyal*, *Filtreler* → *Sosyal Ağ Araçları* ve *Filtreler* → *Can Sıkıcı Öğeler* öğelerinde bulunan filtrelerdeki kuralları uygular. Açılır pencereleri, sosyal medya düğmelerini, çevrimiçi asistan pencerelerini ve web sayfalarındaki rahatsız edici bulabileceğiniz diğer öğeleri engeller. + +*AdGuard Güvenlik*, *Filtreler* → *Güvenlik* altındaki filtrelerdeki kuralları uygular. Bu uzantı, potansiyel olarak zararlı öğeleri tanımlayıp engelleyerek kullanıcıları kötü amaçlı içerikten korur. + +*AdGuard Diğer*,, yukarıda belirtilen kategorilere girmeyen ve *Filtreler* → *Diğer*: *Arama motoru reklamları ve öz tanıtımına izin veren filtre*, *AdGuard DNS filtresi* ve *AdGuard Deneysel filtre* öğelerinde bulunan filtrelerdeki kuralları uygular. + +*AdGuard Özel*, kendi eklediğiniz filtrelerdeki kuralları *Özel filtreler* öğesine uygular. + +Kullanıcı kuralları ve izin listesi kuralları her uzantıya dahildir. + +## Diğer uzantılar + +*AdGuard Safari Simgesi* arama çubuğunun yanındaki AdGuard simgesini etkinleştirir. Belirli bir sitede hızlı bir şekilde koruma ayarlamak veya reklamları elle engellemek istiyorsanız kullanışlıdır. + +*AdGuard Gelişmiş engelleme*, Safari tarafından desteklenen biçime dönüştürülmeyen gelişmiş kurallar içerir. Buna, AdGuard'ın örneğin YouTube'daki karmaşık reklamları engellemesine olanak tanıyan CSS kuralları, CSS seçiciler ve komut dosyaları dahildir. + +## Safari uzantıları nasıl yönetilir + +1. Safari'yi açın ve menüyü genişletmek için ekranın sol üst köşesindeki *Safari* öğesine tıklayın. ![Safari ayarları *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. *Tercihler...* öğesine tıklayın +1. *Uzantılar* öğesini seçin. ![Uzantılar sekmesi](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Neden bazı uzantılar izin gerektiriyor + +Bazı Safari uzantılarını etkinleştirirken, **web sayfası içeriğine erişim** ve **tarama geçmişine erişim** istediklerini fark edebilirsiniz. İşte Safari için AdGuard'ın bunlara neden ihtiyacı var: + +– Elle reklam engelleme ve gelişmiş engelleme kurallarının doğru çalışması için web sayfası içeriğine erişim gereklidir – Sitelerdeki koruma durumunu kontrol etmek ve hangi gelişmiş kuralların uygulanması gerektiğini belirlemek için tarama geçmişine erişim gereklidir + +Bu verileri başka hiç kimse için kullanmayız veya kimseyle paylaşmayız. Daha fazla bilgi için [Gizlilik politikamıza](https://adguard.com/privacy.html) bakabilirsiniz. diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 8921691f88c..1a2479b0477 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ Safari için AdGuard, App Store'da sunulan ücretsiz bir uygulamadır. Cihazın :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. Örneğin, *Simge* uzantısını kontrol etmek, arama çubuğunun yanındaki simgeyi etkinleştirir. However, we recommend enabling all of them. ::: 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/admins-documentation.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/admins-documentation.md index 663b941144e..2b5069f6529 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/admins-documentation.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/admins-documentation.md @@ -1,9 +1,9 @@ --- -title: Documentation for admins +title: Yöneticiler için belgeler sidebar_position: 5 --- -This page describes the features and details of AdGuard’s central management of policies and preferences. +Bu sayfada AdGuard'ın politika ve tercihlere ilişkin merkezi yönetiminin özellikleri ve ayrıntıları açıklanmaktadır. ## 1. MSI'ı indirin {#msi-download} @@ -33,14 +33,14 @@ You must run these commands with admin privileges. ::: -If you want to install AdGuard on a Windows 7 computer, make sure that it has .NET 4 Client Profile installed: https://www.microsoft.com/en-us/download/details.aspx?id=24872 +AdGuard'ı Windows 7 yüklü bir bilgisayara kurmak istiyorsanız, .NET 4 İstemci Profilinin kurulu olduğundan emin olun: https://www.microsoft.com/en-us/download/details.aspx?id=24872 -:::info +:::bilgi -Automatic updates are disabled when you install AdGuard for Windows from MSI. If you want to allow updates for a user (which is not recommended because centralized updates will become impossible), set the value of the `AllowCheckUpdates` parameter for the `HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Adguard` key to `YES` (case insensitive). In this case automatic updates will be allowed, any other value or no value for this parameter disables automatic updates. +MSI'dan Windows için AdGuard'ı yüklediğinizde otomatik güncellemeler devre dışı bırakılır. If you want to allow updates for a user (which is not recommended because centralized updates will become impossible), set the value of the `AllowCheckUpdates` parameter for the `HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Adguard` key to `YES` (case insensitive). In this case automatic updates will be allowed, any other value or no value for this parameter disables automatic updates. :::note ## 5. Test your installation {#installation-test} -On a target machine, launch AdGuard. Open the license screen to check that it uses the one you've set. You might need to click "Refresh status" to make AdGuard validate the license key. +Hedef makinede AdGuard'ı başlatın. Ayarladığınız lisansı kullanıp kullanmadığını kontrol etmek için lisans ekranını açın. AdGuard'ın lisans anahtarını doğrulamasını sağlamak için "Durumu yenile" öğesine tıklamanız gerekebilir. diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/browser-assistant.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/browser-assistant.md index 59a27911abd..6eb77e6f792 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/browser-assistant.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/browser-assistant.md @@ -3,33 +3,33 @@ title: Browser Assistant sidebar_position: 3 --- -AdGuard Asistanı'nın birincil işlevi filtrelemeyi doğrudan tarayıcıdan yönetmektir. It has existed for quite a long time, and its form and content have changed. More precisely, it used to be a mere userscript incorporated into AdGuard for Windows app and became a full-fledged browser extension. Now it yields more benefits. +AdGuard Asistanı'nın birincil işlevi filtrelemeyi doğrudan tarayıcıdan yönetmektir. Oldukça uzun bir süredir kullanılmakta olup, şekli ve içeriği değişmiştir. Daha doğrusu, Windows için AdGuard uygulamasına dahil edilen yalnızca bir kullanıcı metniydi ve tam teşekküllü bir tarayıcı uzantısı hâline geldi. Artık daha fazla avantaj sağlıyor. -![Browser Assistant *mobile](https://cdn.adtidy.org/content/kb/ad_blocker/windows/browser-assistant/assistant-menu.png) +![Tarayıcı Asistanı *mobile](https://cdn.adtidy.org/content/kb/ad_blocker/windows/browser-assistant/assistant-menu.png) -## Benefits +## Avantajlar -### Independence +### Bağımsızlık -AdGuard Browser Assistant is a browser extension, it is installed in a browser, so there is no need to wait for the userscript to be injected into the filtered web page, as it was with the preceding one. Başka bir deyişle, ana AdGuard uygulamasından daha bağımsızdır. Still, Browser Assistant needs the installed AdGuard for Windows, because there is no point in using the extension without the app. +AdGuard Tarayıcı Asistanı bir tarayıcı uzantısıdır, bir tarayıcıya yüklenir, bu nedenle bir öncekinde olduğu gibi kullanıcı betiğinin filtrelenmiş web sayfasına enjekte edilmesini beklemeye gerek yoktur. Başka bir deyişle, ana AdGuard uygulamasından daha bağımsızdır. Yine de Tarayıcı Asistanı'nın kurulu Windows için AdGuard'a ihtiyacı vardır çünkü uygulama olmadan uzantıyı kullanmanın bir anlamı yoktur. ### Ana uygulama ile uyumluluk -If you got into the habit of using our previous AdGuard Ad Blocker extension [in Integration mode](/adguard-browser-extension/integration-mode), you may like the solution that we have developed for the new Browser Assistant. +Önceki AdGuard Reklam Engelleyici uzantımız [Entegre modunda](/adguard-browser-extension/integration-mode) kullanma alışkanlığı edindiyseniz, yeni Tarayıcı Asistanı için geliştirdiğimiz çözümü beğenebilirsiniz. -Background information: +Arka plan bilgisi: -In previous versions of the AdGuard Browser Extension (before v3.5), if you had it installed along with the AdGuard for Windows app, the extension took over the functions of Assistant, stopped filtering itself and relied on the app to do this. +AdGuard Tarayıcı Uzantısının önceki sürümlerinde (v3.5'ten önce), Windows için AdGuard uygulamasıyla birlikte yüklediyseniz, uzantı Asistanı işlevlerini devralıyor, kendini filtrelemeyi bırakıyor ve bunu yapmak için uygulamaya güveniyordu. -Eklenti ve uygulama birlikte çalışıyordu ancak bazen entegrasyon başarısız oluyordu. Some websites would stop being protected by the desktop program and be backed up only by the less powerful extension. +Eklenti ve uygulama birlikte çalışıyordu ancak bazen entegrasyon başarısız oluyordu. Bazı siteler masaüstü programı tarafından korunmuyor ve yalnızca daha az seçeneğe sahip uzantı tarafından korunuyordu. -Tarayıcı Asistanını kullanırken, özünde herhangi bir çakışma olamayacağı için tüm bu sorunlar önemli değildir. The role of the Browser Assistant is well-defined and it can’t hinder the functioning of the main app, so there is no need to worry. +Tarayıcı Asistanını kullanırken, özünde herhangi bir çakışma olamayacağı için tüm bu sorunlar önemli değildir. Tarayıcı Asistanının rolü iyi tanımlanmıştır ve ana uygulamanın işleyişini engelleyemez, bu nedenle endişelenmenize gerek yoktur. ## Ayarlar'da ayrı sekme -The new Browser Assistant has its own tab in AdGuard for Windows settings, along with Stealth Mode, Browsing Security, Parental Control and others. There you will find a link to download the extension for your default browser. Ayrıca, eski Asistanı etkinleştirmek için bir onay kutusu vardır. +Yeni Tarayıcı Asistanı, Windows için AdGuard ayarlarında Gizlilik Modu, Gezinti Koruması, Ebeveyn Denetimi ve diğerleriyle birlikte kendi sekmesine sahiptir. Burada varsayılan tarayıcınız için uzantıyı indirmek üzere bir bağlantı bulacaksınız. Ayrıca, eski Asistanı etkinleştirmek için bir onay kutusu vardır. -![Settings *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/browser-assistant/browser-assistant.png) +![Ayarlar *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/browser-assistant/browser-assistant.png) ## Legacy Assistant @@ -37,6 +37,6 @@ Eski Asistan, bir tarayıcı uzantısı değil, yalnızca bir kullanıcı betiğ ## AdGuard Tarayıcı Asistanı nasıl yüklenir -If you want to install the Browser Assistant for your default browser, you can do it directly from the app settings, but you also have an opportunity to install it for other browsers. +Tarayıcı Asistanını varsayılan tarayıcınız için yüklemek isterseniz bunu doğrudan uygulama ayarlarından yapabilirsiniz ancak diğer tarayıcılar için de yükleme olanağınız vardır. -AdGuard Browser Assistant is available for all popular browsers: Chrome, Firefox, Edge, Opera, and Yandex. To install the one you need (or many, it is not prohibited but even encouraged), go to [our website](https://adguard.com/adguard-assistant/overview.html), click the browser icon and tap the *Install* button. Bu kadar! +AdGuard Tarayıcı Asistanı tüm popüler tarayıcılarda kullanılabilir: Chrome, Firefox, Edge, Opera ve Yandex. İhtiyacınız olanı (veya birçoğunu, yasak değil, hatta teşvik edilir) yüklemek için [sitemize](https://adguard.com/adguard-assistant/overview.html) gidin, tarayıcı simgesine tıklayın ve *Yükle* düğmesine dokunun. Bu kadar! 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..7c28a1c8167 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,75 +11,75 @@ 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. Ardından aşağıdaki talimatı takip edin: - Choose *Standard uninstall*, *Delete AdGuard* and click *Uninstall*. -![Standard uninstall *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/standard-uninstall.png) +![Standart kaldırma *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/standard-uninstall.png) -- Wait until uninstall is finished — there will be a string in the window: `[OK] Uninstall finished` +- Kaldırma tamamlanana kadar bekleyin — pencerede bir metin olacaktır: `[OK] Uninstall finished` -![Uninstall finished *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/standard-uninstall-2.png) +![Kaldırma işlemi tamamlandı *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/standard-uninstall-2.png) :::caution @@ -87,12 +87,12 @@ Follow the next steps only if after performing first two steps wasn’t enough f ::: -- Choose *Advanced uninstall* and click *Uninstall*. +- *Gelişmiş kaldırma* öğesini seçin ve *Kaldır* öğesine tıklayın. -![Advanced uninstall *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/advanced-uninstall.png) +![Gelişmiş kaldırma *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/advanced-uninstall.png) -- Wait until uninstall is finished — there will be a string in the window: `[OK] Uninstall finished` +- Kaldırma tamamlanana kadar bekleyin — pencerede bir metin olacaktır: `[OK] Uninstall finished` -![Uninstall finished *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/advanced-uninstall-2.png) +![Kaldırma işlemi tamamlandı *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/installation/advanced-uninstall-2.png) -AdGuard is successfully uninstalled! +AdGuard başarıyla kaldırıldı! 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..f9090fcc1ae 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 @@ -13,29 +13,29 @@ Windows için AdGuard can sıkıcı afişleri, açılır pencereleri, video rekl ## Home screen -![Main screen *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/home-screen.png) +![Ana ekran *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/home-screen.png) -Once you start AdGuard for Windows, you will see the main screen of the app. Its most noticeable detail is the *enable/disable protection* button. Also, on this screen you can monitor blocked ads, trackers and threats statistics, find out the current version of the app or update it. Furthermore, there are four tabs in the upper right corner: *Settings*, *Support*, *License*, and *About*. Each of these is worth talking about separately. +Windows için AdGuard'ı başlattığınızda, uygulamanın ana ekranını göreceksiniz. En göze çarpan detayı, *korumayı etkinleştirme veya devre dışı bırakma* düğmesidir. Ayrıca bu ekranda engellenen reklamları, izleyicileri ve tehdit istatistiklerini izleyebilir, uygulamanın güncel sürümünü öğrenebilir veya güncelleyebilirsiniz. Ayrıca, sağ üst köşede dört sekme vardır: *Ayarlar*, *Destek*, *Lisans* ve *Hakkında*. Bunların her biri hakkında ayrı ayrı konuşmaya değer. ## Settings -![Settings *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/settings.png) +![Ayarlar *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/settings.png) -*Settings* is the section that requires the most attention. This is where you can configure the app so that it fully meets your requirements: blocks only what bothers you, uses the DNS server of the trusted provider, removes third-party cookies, and so on. +*Ayarlar* en fazla dikkat gerektiren bölümdür. Burası, uygulamayı gereksinimlerinizi tam olarak karşılayacak şekilde yapılandırabileceğiniz yerdir: yalnızca sizi rahatsız edenleri engeller, güvenilir sağlayıcının DNS sunucusunu kullanır, üçüncü taraf tanımlama bilgilerini kaldırır, vb. ### Genel ayarlar -Here you can set the language and theme (Dark or Light), enable AdGuard launching at system start-up and silent automatic updates, choose the update channel and filter update check interval. Also Settings is the place to go if AdGuard for Windows is not working properly and the support team asked you to [collect *Debug logs*](../solving-problems/adguard-logs). +Burada dili ve temayı (Koyu veya Açık) ayarlayabilir, AdGuard'ın sistem başlangıcında başlatılmasını ve sessiz otomatik güncellemeleri etkinleştirebilir, güncelleme kanalını ve filtre güncelleme denetimi aralığını seçebilirsiniz. Also Settings is the place to go if AdGuard for Windows is not working properly and the support team asked you to [collect *Debug logs*](../solving-problems/adguard-logs). ![Gelişmiş Ayarlar *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/advanced-settings.png) -Ekranın en altında *Gelişmiş Ayarlar* öğesini bulacaksınız. Changing some of them mindlessly may potentially cause problems with AdGuard's performance, break the Internet connection or compromise your security and privacy. That's why we suggest you open this section only if you are sure of what you are doing or our support team has asked you about it. If you want to know what can be set up in *Advanced Setting* read the [dedicated article](../solving-problems/low-level-settings). +Ekranın en altında *Gelişmiş Ayarlar* öğesini bulacaksınız. Changing some of them mindlessly may potentially cause problems with AdGuard's performance, break the Internet connection or compromise your security and privacy. Bu nedenle, bu bölümü yalnızca ne yaptığınızdan eminseniz veya destek ekibimiz size sormuşsa açmanızı tavsiye ederiz. *Gelişmiş Ayar* bölümünde nelerin ayarlanabileceğini öğrenmek istiyorsanız [özel makalesini](../solving-problems/low-level-settings) okuyun. ### Reklam Engelleyici -This is the main module of AdGuard for Windows that removes ads from the websites you visit and from the apps installed on your device. To filter out advertising and privacy-threatening content such as banners, pop-ups, or trackers AdGuard uses different filters: groups of rules with a similar purpose written with a [special syntax](/general/ad-filtering/create-own-filters). To understand what filters are and how they work read [this article](/general/ad-filtering/how-ad-blocking-works). +Bu, ziyaret ettiğiniz sitelerden ve cihazınızda yüklü uygulamalardan reklamları kaldıran Windows için AdGuard'ın ana modülüdür. Reklamları ve afişleri, açılır pencereleri veya izleyiciler gibi gizliliği tehdit eden içeriği filtrelemek için AdGuard farklı filtreler kullanır: [özel söz dizimi](/general/ad-filtering/create-own-filters) ile yazılmış, benzer amaca sahip kural grupları. Filtrelerin ne olduğunu ve nasıl çalıştığını anlamak için [bu makaleyi](/general/ad-filtering/how-ad-blocking-works) okuyun. -![Ad Blocker *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/ad-blocker.png) +![Reklam Engelleyici *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/ad-blocker.png) Reklam Engelleyici modülünde şunları yapabilirsiniz: @@ -57,65 +57,65 @@ 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 -AdGuard can significantly broaden website functionality working as a [user script manager](/general/userscripts). AdGuard Users can add their own scripts, as well as manage existing ones. +AdGuard, [kullanıcı betik yöneticisi](/general/userscripts) olarak çalışan site işlevselliğini önemli ölçüde genişletebilir. AdGuard Kullanıcıları kendi betiklerini ekleyebilir ve mevcut olanları yönetebilir. ![Uzantılar *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/userscripts.png) -**Automatically detect userscripts** +**Kullanıcı betiklerini otomatik olarak tespit et** -With this option enabled, AdGuard will automatically define browser queries to userscripts and suggest their installation. Otherwise, extensions can be downloaded and installed manually. +Bu seçenek etkinleştirildiğinde, AdGuard tarayıcı sorgularını otomatik olarak kullanıcı betiklerini tanımlar ve bunların yüklenmesini önerir. Aksi takdirde, uzantılar elle indirilebilir ve yüklenebilir. -The following extensions are installed with AdGuard: +Aşağıdaki uzantılar AdGuard ile birlikte yüklenir: -![Preinstalled userscripts *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/preinstalled-userscripts.png) +![Önceden yüklenmiş kullanıcı betikleri *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/preinstalled-userscripts.png) **AdGuard Assistant** -AdGuard Assistant is Legacy Assistant that you may use if the [new Assistant](../browser-assistant) is not available for your browser. The name of this extension is quite deliberate: it actually assists the user in changing basic AdGuard settings right in the browser, without the need to open the app itself. AdGuard Assistant works with all Microsoft Windows compatible browsers. In addition, the AdGuard Assistant icon will not be displayed on websites listed as exceptions by the user and on certain web pages where there is a risk of incorrect content display. +AdGuard Asistanı, tarayıcınız için [yeni Asistan](../browser-assistant) yoksa kullanabileceğiniz Eski Asistandır. Bu uzantının adı oldukça bilinçli: Aslında, kullanıcının uygulamayı açmaya gerek kalmadan doğrudan tarayıcıda temel AdGuard ayarlarını değiştirmesine yardımcı oluyor. AdGuard Asistanı, tüm Microsoft Windows uyumlu tarayıcılarla çalışır. Ayrıca, AdGuard Asistanı simgesi, kullanıcı tarafından istisna olarak listelenen sitelerde ve yanlış içerik görüntüleme riski bulunan belirli web sayfalarında görüntülenmeyecektir. **AdGuard Extra** @@ -125,7 +125,7 @@ AdGuard Extra is essentially a mini-program that changes the way pages work,and **AdGuard Popup Blocker** -This extension prevents popup windows from opening when you view web pages. Some pop-ups are considered useful — they may contain settings for site administering or additional reference information demonstrated upon clicking a link. That is why you can turn off the Blocker if needed. This extension doesn’t work on websites added to the AdGuard exceptions list either. Varsayılan olarak kapalıdır, ancak uygulama ayarlarından açabilirsiniz. Bu uzantı hakkında daha ayrıntılı bilgiyi Bilgi tabanımızda bulabilirsiniz. +Bu uzantı, web sayfalarını görüntülediğinizde açılır pencerelerin açılmasını engeller. Bazı açılır pencereler yararlı kabul edilir — site yönetimi için ayarlar veya bir bağlantıya tıklandığında gösterilen ek referans bilgileri içerebilirler. Bu nedenle gerekirse Engelleyiciyi kapatabilirsiniz. This extension doesn’t work on websites added to the AdGuard exceptions list either. Varsayılan olarak kapalıdır, ancak uygulama ayarlarından açabilirsiniz. Bu uzantı hakkında daha ayrıntılı bilgiyi Bilgi tabanımızda bulabilirsiniz. **Web of Trust** @@ -133,71 +133,71 @@ Web of Trust lets you see the reputation of each website based on its users’ o ### Network -The penultimate module is dedicated to network filtering, and here you will find additional network-related options. Two of them are enabled by default: *Enable traffic filtering* and *Filter HTTPS protocol*. These are important extra precautions to better filter your web space. Most websites are now using HTTPS, and the same applies to advertising. From many sites, like youtube.com, facebook.com and twitter.com, it is impossible to remove ads without HTTPS filtering. So keep the *Filter HTTPS protocol* feature enabled unless you have a strong reason not to. +Sondan bir önceki modül ağ filtrelemeye ayrılmıştır ve burada ağla ilgili ek seçenekler bulacaksınız. Bunlardan ikisi varsayılan olarak etkindir: *Trafik filtrelemeyi etkinleştir* ve *HTTPS protokolünü filtrele*. Bunlar, web alanınızı daha iyi filtrelemek için önemli olağanüstü önlemlerdir. Çoğu site artık HTTPS kullanıyor ve aynı durum reklamcılık için de geçerli. Youtube.com, facebook.com ve twitter.com gibi birçok siteden HTTPS filtreleme olmadan reklamları kaldırmak imkansızdır. Bu nedenle, güçlü bir nedeniniz olmadığı sürece *HTTPS protokolünü filtrele* özelliğini etkin tutun. -![Network Settings *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/network-settings.png) +![Ağ Ayarları *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/network-settings.png) -In this module you can check the checkbox "Use AdGuard as an HTTP proxy" to use AdGuard as a regular HTTP proxy which will filter all traffic passing through it. You can also enable the *Filter websites with EV certificates* feature. Extended Validation (EV) SSL Certificates offer a stronger safety guarantee; owners of such websites have to pass a thorough and globally standardized identity verification process defined by EV guidelines. Which is the reason why some users trust websites with such certificates and prefer not to filter them. +Bu modülde, AdGuard'ı içinden geçen tüm trafiği filtreleyecek normal bir HTTP proxy olarak kullanmak için "AdGuard'ı HTTP proxy olarak kullan" onay kutusunu işaretleyebilirsiniz. Ayrıca *EV sertifikalarına sahip siteleri filtrele* özelliğini de etkinleştirebilirsiniz. Genişletilmiş Doğrulama (EV) SSL Sertifikaları daha güçlü bir güvenlik garantisi sunar; bu tür sitelerin sahipleri EV yönergeleri tarafından tanımlanan kapsamlı ve küresel olarak standartlaştırılmış bir kimlik doğrulama sürecinden geçmek zorundadır. Bazı kullanıcıların bu tür sertifikalara sahip sitelere güvenmelerinin ve bunları filtrelememeyi tercih etmelerinin nedeni budur. -At last, there is a section with proxy settings. There you can specify which proxy server AdGuard should use to update filters, get new versions and so on. +Son olarak, proxy ayarlarının bulunduğu bir bölüm vardır. Burada, filtreleri güncellemek, yeni sürümleri edinmek, vb. için AdGuard'ın hangi proxy sunucusunu kullanması gerektiğini belirleyebilirsiniz. ### AdGuard VPN -The last section is dedicated to AdGuard VPN — an ideal tool that provides security and anonymity each time you browse the Internet. You can download it by clicking the *Download* button or go to the AdGuard VPN website by clicking the *Homepage* button. +Son bölüm, internette her gezindiğinizde güvenlik ve anonimlik sağlayan ideal bir araç olan AdGuard VPN'e ayrılmıştır. *İndir* düğmesine tıklayarak indirebilir veya *Ana Sayfa* düğmesine tıklayarak AdGuard VPN sitesine gidebilirsiniz. -How does AdGuard VPN work? Without going into technical details, we can say that VPN creates a secure encrypted tunnel between the user's computer or mobile device and a remote VPN server. In this way, data confidentiality is preserved, as well as the anonymity of the user, because a third-party observer sees the IP address of the VPN server and not the actual user's IP. +How does AdGuard VPN work? Without going into technical details, we can say that VPN creates a secure encrypted tunnel between the user's computer or mobile device and a remote VPN server. Bu şekilde, üçüncü taraf bir gözlemci gerçek kullanıcının IP'sini değil VPN sunucusunun IP adresini gördüğünden, kullanıcının anonimliğinin yanı sıra veri gizliliği de korunur. **What AdGuard VPN does:** -- hides your real whereabouts and helps you stay anonymous -- сhanges 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) +- gerçek yerinizi gizler ve anonim kalmanıza yardımcı olur +- verilerinizi izlemekten korumak için IP adresinizi değiştirir +- trafiğinizi dolandırıcıların erişemeyeceği şekilde şifreler +- VPN'nin nerede kullanılacağını ve nerede kullanılmayacağını yapılandırmanıza olanak tanır (istisnalar özelliği) -To get more information about AdGuard VPN dive into the [AdGuard VPN Knowledge Base](https://adguard-vpn.com/kb/). +AdGuard VPN hakkında daha fazla bilgi edinmek için [AdGuard VPN Bilgi Tabanın](https://adguard-vpn.com/kb/) içinde dalın. ## Others -There are other useful AdGuard options that shouldn't go unnoticed in this article, since they add much to user experience. +Kullanıcı deneyimine çok şey kattığı için bu makalede gözden kaçırılmaması gereken başka yararlı AdGuard seçenekleri de var. ### Destek -![Support *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/support.png) +![Destek *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/support.png) -By clicking the Support tab you will open a dialog box through which you can report a bug, submit a feature request, or simply share your opinion of the product. +Destek sekmesine tıkladığınızda, bir hatayı bildirebileceğiniz, bir özellik talebi gönderebileceğiniz veya sadece ürün hakkındaki görüşlerinizi paylaşabileceğiniz bir uyarı kutusu açılır. ### Lisans -![License *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/license.png) +![Lisans *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/license.png) -This tab contains information about your license. Here you can: +Bu sekme lisansınızla ilgili bilgileri içerir. Burada şunları yapabilirsiniz: -- 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. +- lisans türünü (nightly derleme, beta veya sürüm), AdGuard'a aynı anda bağlanabilecek cihaz sayısını ve lisansın sona erme tarihini öğrenin; +- lisans satın alma sayfasına gitmek ve lisansı etkinleştirmek, sıfırlamak veya kurtarmak için düğmeye tıklayın. -### About +### Hakkında -![About *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/about.png) +![Hakkında *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/about.png) -In addition to information about the current version of the program, this tab provides some useful links to Licese Agreement, Privacy Policy, Acknowledgements, Discussions, and Version history pages. +Bu sekme, programın geçerli sürümü hakkındaki bilgilere ek olarak Lisans Sözleşmesi, Gizlilik Politikası, Katkıda Bulunanlar, Tartışmalar ve Sürüm geçmişi sayfalarına bazı yararlı bağlantılar sağlar. ### Check for updates -![Check for updates *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/check-updates.png) +![Güncellemeleri denetle *mobile_border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/overview/check-updates.png) -To check for filters and userscripts updates, click the rotating arrows icon in the upper right corner of the app's main screen. +Filtre ve kullanıcı betikleri güncellemelerini denetlemek için uygulamanın ana ekranının sağ üst köşesindeki dönen ok simgesine tıklayın. -### Tray menu +### Tepsi menüsü -To save you time navigating around AdGuard menus, many of the frequently used options and settings are available from the tray menu. To call the menu, right-click the AdGuard icon in the tray. Size aşağıdaki seçenekleri sunar: +AdGuard menülerinde gezinirken size zaman kazandırmak için sık kullanılan seçeneklerin ve ayarların çoğuna tepsi menüsünden ulaşılabilir. Menüyü açmak için tepsideki AdGuard simgesine sağ tıklayın. Size aşağıdaki seçenekleri sunar: - enable protection -- disable protection: completely or for 30 seconds -- go to *Settings* -- open the *Tools* and *Advanced* menus +- korumayı devre dışı bırakın: tamamen veya 30 saniyeliğine +- *Ayarlar* öğesine gidin +- *Araçlar* ve *Gelişmiş* menülerini açın - check for filter updates - check for app updates -- to recall the last pop-up message -- reach the *Support* and *About* sections -- close AdGuard, but continue filtering -- exit AdGuard +- son açılır mesajı tekrar görüntülemek için +- *Destek* ve *Hakkında* bölümlerine ulaşın +- AdGuard'ı kapatın ama filtrelemeye devam edin +- AdGuard'dan çıkın diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/adguard-logs.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/adguard-logs.md index 8046de36e63..a20934643cf 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/adguard-logs.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/adguard-logs.md @@ -17,40 +17,40 @@ To analyze and diagnose different problems that may potentially arise, the AdGua 1. Reproduce the issue. - We strongly advise to take note of the exact time when you reproduced the issue: it will help our support team to find relevant log entries and solve the problem faster. + Sorunu yeniden oluşturduğunuz tam zamanı not almanızı önemle tavsiye ederiz: bu, destek ekibimizin ilgili günlük girdilerini bulmasına ve sorunu daha hızlı çözmesine yardımcı olur. -1. Export the recorded logs using the *Export Logs* button. +1. *Günlükleri dışa aktar* düğmesine kullanarak kaydedilen günlükleri dışa aktarın. - ![Export logs *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/solving-problems/adg-logs-2.png) + ![Günlükleri dışa aktar *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/solving-problems/adg-logs-2.png) - Save the archive to any folder. + Arşivi herhangi bir klasöre kaydedin. -1. **Important**: after exporting the logs, set the logging level back to *Standard*. *Debug* logging level will slow down the application. +1. **Önemli**: Günlükleri dışa aktardıktan sonra, günlük kayıt düzeyini tekrar *Varsayılan* olarak ayarlayın. *Hata ayıklama* günlük kayıt düzeyi uygulamayı yavaşlatır. -1. Send the archive to the AdGuard support service at **support@adguard.com**, describe the problem and don't forget to mention the time when you reproduced the issue. +1. Arşivi **support@adguard.com** adresinden AdGuard destek servisine gönderin, sorunu açıklayın ve sorunu yeniden oluşturduğunuz zamanı belirtmeyi unutmayın. ### Trace logs {#trace-logs} -Sometimes support team members may ask you to send *trace* logs. Then you will need to do the following: +Sometimes support team members may ask you to send *trace* logs. Daha sonra aşağıdakileri yapmanız gerekir: -1. Stop AdGuard by right-clicking the AdGuard icon in the tray menu and choosing *Exit AdGuard*: +1. Tepsi menüsündeki AdGuard simgesine sağ tıklayıp *AdGuard'dan çık* öğesini seçerek AdGuard'ı durdurun: - ![Exit AdGuard *mobile](https://cdn.adtidy.org/content/kb/ad_blocker/windows/solving-problems/adg-logs-3.png) + ![AdGuard'dan çık *mobile](https://cdn.adtidy.org/content/kb/ad_blocker/windows/solving-problems/adg-logs-3.png) - Please don't leave the service running: + Lütfen servisi çalışır durumda bırakmayın: - ![Stop AdGuard Service *mobile_border](https://cdn.adtidy.org/public/Adguard/kb/newscreenshots/En/eng_logs_4.png) + ![AdGuard Hizmetini Durdur *mobile_border](https://cdn.adtidy.org/public/Adguard/kb/newscreenshots/En/eng_logs_4.png) -1. Open the console (type `cmd` in the start panel). +1. Konsolu açın (başlat paneline `cmd` yazın). -1. Run the app with the command `C:\"Program Files (x86)"\Adguard\Adguard.exe /trace` if you are using 64-bit Windows, and `C:\"Program Files"\Adguard\Adguard.exe /trace` in case if you use 32-bit one. +1. Uygulamayı, 64 bit Windows kullanıyorsanız `C:\"Program Files (x86)"\Adguard\Adguard.exe /trace` ve 32 bit Windows kullanıyorsanız `C:\"Program Files"\Adguard\Adguard.exe /trace` komutuyla çalıştırın. -1. Reproduce the issue. +1. Sorunu yeniden oluşturun. - We strongly advise to take note of the exact time when you reproduced the issue: it will help our support team to find relevant log entries and solve the problem faster. + Sorunu yeniden oluşturduğunuz tam zamanı not almanızı önemle tavsiye ederiz: bu, destek ekibimizin ilgili günlük girdilerini bulmasına ve sorunu daha hızlı çözmesine yardımcı olur. -1. Export the recorded logs using the *Export Logs* button. +1. *Günlükleri dışa aktar* düğmesine kullanarak kaydedilen günlükleri dışa aktarın. - ![Export logs *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/solving-problems/adg-logs-2.png) + ![Günlükleri dışa aktar *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/solving-problems/adg-logs-2.png) - Don't worry if the log file is large. We need to know as much detail as possible to fix your problem. + Günlük dosyası büyükse endişelenmeyin. Sorununuzu çözebilmemiz için mümkün olduğunca fazla ayrıntı bilmemiz gerekiyor. diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/common-installer-errors.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/common-installer-errors.md index e7128a6b341..7dfc2e14713 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/common-installer-errors.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/common-installer-errors.md @@ -1,96 +1,96 @@ --- -title: Common installer errors +title: Yaygın kurulum programı hataları sidebar_position: 6 --- -:::info +:::bilgi Bu makale, cihazınızı sistem düzeyinde koruyan çok işlevli bir reklam engelleyici olan Windows için AdGuard'ı ele alır. Nasıl çalıştığını görmek için [AdGuard uygulamasını indirin](https://adguard.com/download.html?auto=true) ::: -This article contains some of the most common errors that you can encounter during the AdGuard for Windows installation, and possible ways to solve them. +Bu makale, Windows için AdGuard kurulumu sırasında karşılaşabileceğiniz en yaygın hatalardan bazılarını ve bunları çözmenin olası yollarını içerir. ### Error 5: Access Denied {#error-5} -This error occurs when there's something wrong with permissions. There may be several different reasons why AdGuard installer doesn't have the permissions it requires to properly finish the installation process. You can try the following steps: +Bu hata, izinlerle ilgili bir sorun olduğunda ortaya çıkar. AdGuard kurulum programının, kurma işlemini düzgün bir şekilde tamamlamak için ihtiyaç duyduğu izinlere sahip olmamasının birkaç farklı nedeni olabilir. You can try the following steps: -- Antivirüslerinizi geçici olarak devre dışı bırakın. Some of them may interfere with the installation, depending on the severity of their settings. +- Antivirüslerinizi geçici olarak devre dışı bırakın. Bazıları, ayarlarının ciddiyetine bağlı olarak kuruluma müdahale edebilir. -- Choose a different installation folder. It is possible that the current installation folder has some access restrictions. Also make sure you don't select an external drive, a virtual drive, etc. +- Farklı bir kurulum klasörü seçin. Mevcut kurulum klasörünün bazı erişim kısıtlamaları olabilir. Ayrıca harici sürücü, sanal sürücü, vb. seçmediğinizden emin olun. -- Bilgisayarınızı yeniden başlatın. Sometimes the permission issues are temporary and can be solved by restarting the PC. +- Bilgisayarınızı yeniden başlatın. Bazen izin sorunları geçicidir ve bilgisayarı yeniden başlatarak çözülebilir. -### Error 112: Disk is full, Error 1632: Temporary folder full or inaccessible {#error-112} +### Hata 112: Disk dolu, Hata 1632: Geçici klasör dolu veya erişilemiyor {#error-112} -These are two different errors with very similar solutions. As their names suggest, AdGuard installer didn't find enough disk space to complete the installation. There are several things you can attempt to fix the problem: +Bunlar çok benzer çözümlere sahip iki farklı hatadır. Adlarından da anlaşılacağı gibi, AdGuard kurulum programı, kurulumu tamamlamak için yeterli disk alanı bulamadı. Sorunu çözmek için deneyebileceğiniz birkaç şey var: -- Uninstall some programs or delete unnecessary files from the drive you were trying to install AdGuard to. +- AdGuard'ı kurmaya çalıştığınız sürücüden bazı programları kaldırın veya gereksiz dosyaları silin. -- Download, install, and run [AdwCleaner](http://www.bleepingcomputer.com/download/adwcleaner/), a free piece of software by Malwarebytes. It will, among other things, clean your system from all kinds of extra "leftover" files that remain after incorrectly uninstall programs and such. It will help clean up some disk space. +- Malwarebytes'in ücretsiz bir yazılımı olan [AdwCleaner](http://www.bleepingcomputer.com/download/adwcleaner/) yazılımını indirin, kurun ve çalıştırın. Diğer şeylerin yanı sıra, sisteminizi yanlış bir şekilde kaldırılan programlar ve benzerlerinden sonra kalan her türlü fazladan "artık" dosyalardan temizler. Biraz disk alanı temizlemeye yardımcı olur. -- Bilgisayarınızı yeniden başlatın. Sometimes temporary files can take up a considerable amount of disk space, and restarting your PC is the most reliable way to get rid of them. +- Bilgisayarınızı yeniden başlatın. Bazen geçici dosyalar önemli miktarda disk alanı kaplayabilir ve PC'nizi yeniden başlatmak bunlardan kurtulmanın en güvenilir yoludur. -### Error 1601: Windows Installer is not accessible {#error-1601} +### Hata 1601: Windows Installer Hizmetine Erişilemiyor {#error-1601} -You could say this is a particular sub-case of Error 1603. The possible solutions are similar: +Bunun, Hata 1603'ün belirli bir alt türü olduğunu söyleyebilirsiniz. Olası çözümler benzerdir: -- Start and re-register Microsoft Installer service. Bu biraz uğraş gerektirir. +- Microsoft Installer hizmetini başlatın ve yeniden kaydettirin. Bu biraz uğraş gerektirir. - 1) Press *Win + R* and enter **services.msc**. 2) Find in the list and double click *Windows Installer*. 3) Hit *Start* button under *Service status* and hit *OK*. If the service status is **running**, you should click *Stop* first and then hit *Start*. 4) Press *Win + R*, type and enter ***msiexec /unregister*** and hit *Enter*. 5) Press *Win + R* again, type and enter ***msiexec /regserver*** and hit *Enter* + 1) *Win + R* tuşlarına basın ve **services.msc** yazın. 2) Listeden *Windows Installer* öğesini bulun ve çift tıklayın. 3) *Hizmet durumu* altındaki *Başlat* düğmesine basın ve *Tamam* öğesine basın. Hizmet durumu **çalışıyor** ise, önce *Durdur* öğesine ve ardından *Başlat* öğesine tıklamalısınız. 4) *Win + R* tuşlarına basın, ***msiexec /unregister*** yazın ve *Enter* düğmesine basın. 5) *Win + R* tuşlarına tekrar basın, ***msiexec /regserver*** yazın ve *Enter* düğmesine basın -- Reboot the PC and start the installation all over again. Bazen sorunu çözmek için bu yeterli olur. +- PC'yi yeniden başlatın ve kurulumu baştan başlatın. Bazen sorunu çözmek için bu yeterli olur. ### Error 1602: Canceled by user {#error-1602} -If you got this error code, chances are you have interrupted the installation process manually in one way or another. What you can do is: +Bu hata kodunu aldıysanız, kurma işlemini bir şekilde elle kesintiye uğratmış olabilirsiniz. What you can do is: -- Don't close the installer window. When the installation is complete, it will close automatically. +- Kurulum programı penceresini kapatmayın. Kurulum tamamlandığında otomatik olarak kapanır. -- If a dialogue window pops up during the installation, hit "Yes" to grant the installer the required permissions. Clicking "No" will cancel the installation. +- Kurma sırasında bir diyalog penceresi açılırsa, kurulum programına gerekli izinleri vermek için "Evet" öğesine basın. "Hayır" öğesine tıklandığında kurulum iptal edilir. -- Don't start other processes while the installation process is going on. +- Kurulum devam ederken başka işlemler başlatmayın. ### Hata 1603: Kurulum sırasında kritik hata oluştu {#error-1603} -The error sounds scarier than it actually is. In reality, this is a rather generic error that can have many different causes, and some of them are easily fixed. Aşağıdaki çözümleri deneyin: +Hata kulağa gerçekte olduğundan daha korkutucu geliyor. Gerçekte bu, birçok farklı nedeni olabilen oldukça genel bir hatadır ve bazıları kolayca düzeltilebilir. Aşağıdaki çözümleri deneyin: -- Press the *Win* key, search for *Command Prompt* and run it. There, type in `sfc /scannow` and press *Enter*. +- *Win* tuşuna basın, *Komut İstemi* öğesini arayın ve çalıştırın. Orada, `sfc /scannow` yazın ve *Enter* düğmesine basın. -- Choose a different installation folder. It is possible that the current installation folder has some access restrictions. Also make sure you don't select an external drive, a virtual drive, etc. +- Farklı bir kurulum klasörü seçin. Mevcut kurulum klasörünün bazı erişim kısıtlamaları olabilir. Ayrıca harici sürücü, sanal sürücü, vb. seçmediğinizden emin olun. -- Uninstall AdGuard using our special [uninstall tool](../../installation#advanced) and then repeat the installation. +- Özel [kaldırma aracımızı](../../installation#advanced) kullanarak AdGuard'ı kaldırın ve ardından kurulumu tekrarlayın. -- Start and re-register Microsoft Installer service. Bu biraz uğraş gerektirir. +- Microsoft Installer hizmetini başlatın ve yeniden kaydettirin. Bu biraz uğraş gerektirir. - 1) Press *Win + R* and enter ***services.msc***. 2) Find in the list and double click *Windows Installer*. 3) Hit *Start* button under *Service status* and hit *OK*. If the service status is **running**, you should click *Stop* first and then hit *Start*. 4) Press *Win + R*, type and enter ***msiexec /unregister*** and hit *Enter*. 5) Press *Win + R* again, type and enter ***msiexec /regserver*** and hit *Enter* + 1) *Win + R* tuşlarına basın ve ***services.msc*** yazın. 2) Listeden *Windows Installer* öğesini bulun ve çift tıklayın. 3) *Hizmet durumu* altındaki *Başlat* düğmesine basın ve *Tamam* öğesine basın. Hizmet durumu **çalışıyor** ise, önce *Durdur* öğesine ve ardından *Başlat* öğesine tıklamalısınız. 4) *Win + R* tuşlarına basın, ***msiexec /unregister*** yazın ve *Enter* düğmesine basın. 5) *Win + R* tuşlarına tekrar basın, ***msiexec /regserver*** yazın ve *Enter* düğmesine basın -- Acquire full permissions on the drive for installation. It is possible that the error 1603 occurs because you don’t have full permissions on the file location. It's also not as easy as some of the other solutions: +- Kurulum için sürücüde tam izinleri alın. Dosya konumunda tam izinlere sahip olmadığınız için 1603 hatasının oluşması olasıdır. Ayrıca diğer bazı çözümler kadar kolay değildir: - 1) Open *File Explorer*, right-click the drive containing the installation location and select *Properties*. 2) Go to *Security* tab and click *Edit*. 3) Single-click *SYSTEM* and ensure that the *Allow* box of every item in *Permissions for SYSTEM* is checked (if it is checkable). Do the same check for *Administrators*. 4) Click *OK* to go back to *Properties* dialog. Ardından *Gelişmiş* öğesine tıklayın. 5) Click *Change Permissions*. 6) On *Permissions* tab, double-click *Administrators*. 7) Select *This folder, subfolders and files* for *Applies to* field and tick all the available *Basic permissions*. After that hit *OK*. 8) Do the same operation above (from item 7) for *SYSTEM*. 9) Click *OK* all the way out. Try installing AdGuard again. + 1) *Dosya Gezgini* öğesini açın, kurulum konumunu içeren sürücüye sağ tıklayın ve *Özellikler* öğesini seçin. 2) *Güvenlik* sekmesine gidin ve *Düzenle* öğesine tıklayın. 3) *SYSTEM* öğesine tek tıklayın ve *İzin ver* kutusundaki her öğenin *SİSTEM için izinler* işaretli olduğundan emin olun (işaretlenebilirse). Aynı kontrolü *Administrators* için de yapın. 4) *Özellikler* uyarı kutusuna geri dönmek için *Tamam* öğesine tıklayın. Ardından *Gelişmiş* öğesine tıklayın. 5) *İzinleri Değiştir* öğesine tıklayın. 6) On *Permissions* tab, double-click *Administrators*. 7) *Uygulandığı öğe* alanı için *Bu klasör, alt klasörler ve dosyalar* öğesini seçin ve mevcut tüm *Temel izinleri* işaretleyin. Bundan sonra *Tamam* öğesine basın. 8) *SYSTEM* için yukarıdaki (madde 7'den itibaren) aynı işlemi yapın. 9) Sonuna kadar *Tamam* öğesine tıklayın. AdGuard'ı yeniden kurmayı deneyin. -### Error 1618: Another installation is already in progress {#error-1618} +### Hata 1618: Başka bir kurulum zaten devam ediyor {#error-1618} -This error occurs when there are several instances of AdGuard installer launched at the same time. What to do if you get this error: +Bu hata, aynı anda başlatılan birkaç AdGuard kurulum programı olduğunda ortaya çıkar. Bu hatayı alırsanız yapmanız gerekenler: -- Reboot your PC and start the installer again. When you restart the computer, all ongoing processes will stop, including all copies of the installer. +- PC'yi yeniden başlatın ve kurulum programını tekrar başlatın. Bilgisayarı yeniden başlattığınızda, kurulum programının tüm kopyaları dahil devam eden tüm işlemler durur. -- Don't make multiple clicks on the installer even if doesn't start right away. Sometimes it may take a few seconds to display the installer UI. +- Hemen başlamasa bile kurulum programına birden çok tıklama yapmayın. Bazen kurulum programı kullanıcı arayüzünün görüntülenmesi birkaç saniye sürebilir. -### Error 1638: Another version of this product is already installed {#error-1638} +### Error 1638: Bu ürünün başka bir sürümü zaten kurulu {#error-1638} -It's very likely that you've already installed AdGuard before. +Daha önce AdGuard kurmuş olmanız çok olasıdır. -- Check if AdGuard is already installed on your computer. You can do it by pressing the *Win* key and typing in ***AdGuard***. +- AdGuard'ın bilgisayarınızda kurulu olup olmadığını kontrol edin. Bunu *Win* tuşuna basarak ve ***AdGuard*** yazarak yapabilirsiniz. -- Maybe there's some leftover files from a previous AdGuard installation. Uninstall AdGuard using our special [uninstall tool](../../installation#advanced) and then repeat the installation. +- Belki önceki bir AdGuard kurulumundan kalan bazı dosyalar vardır. Özel [kaldırma aracımızı](../../installation#advanced) kullanarak AdGuard'ı kaldırın ve ardından kurulumu tekrarlayın. ### Diğer hatalar {#other} -If you've encountered an error that's not listed above, it is possible that we can solve it by ourselves. But in order to do that, we need log files from you. Please perform the following steps: +Yukarıda listelenmeyen bir hatayla karşılaştıysanız, bunu kendimiz çözmemiz mümkündür. Ancak bunu yapabilmek için sizden günlük dosyalarına ihtiyacımız var. Lütfen aşağıdaki adımları uygulayın: - Find and archive **AdGuard installation logs** as it is described in [this article](../installation-logs). -- Find and save to disk **Event Viewer** logs. [This article](../system-logs) explains how to do that. +- **Olay Görüntüleyicisi** günlüklerini bulun ve diske kaydedin. [Bu makale](../system-logs) bunun nasıl yapılacağını açıklar. -- Please email all these files from two previous steps to the support team at **support@adguard.com** and describe the problem in the message body. Our tech support agents will reply to you as soon as possible. +- Please email all these files from two previous steps to the support team at **support@adguard.com** and describe the problem in the message body. Teknik destek temsilcilerimiz size mümkün olan en kısa sürede cevap verir. diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/dns-leaks.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/dns-leaks.md index 9aa224e02c4..2b480a166ee 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/dns-leaks.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/dns-leaks.md @@ -3,7 +3,7 @@ title: Olası DNS sızıntıları sidebar_position: 9 --- -:::info +:::bilgi Bu makale, cihazınızı sistem düzeyinde koruyan çok işlevli bir reklam engelleyici olan Windows için AdGuard'ı ele alır. Nasıl çalıştığını görmek için [AdGuard uygulamasını indirin](https://adguard.com/download.html?auto=true) diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/low-level-settings.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/low-level-settings.md index e2e84d3d5f4..df38c2f8a66 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/low-level-settings.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/low-level-settings.md @@ -31,71 +31,71 @@ If enabled, AdGuard will block TCP Fast Open in the Edge browser. To apply setti ### Use Encrypted ClientHello -Every encrypted Internet connection has an unencrypted part. This is the very first packet which contains the name of the server you are connecting to. Encrypted Client Hello technology is supposed to solve this issue and encrypt that last bit of unencrypted information. To benefit from it, enable the *Use Encrypted ClientHello* option. Alan adı için ECH yapılandırmasını aramak için yerel bir DNS proxy'si kullanır. If it is found, ClientHello packet will be encrypted. +Every encrypted Internet connection has an unencrypted part. This is the very first packet which contains the name of the server you are connecting to. Encrypted Client Hello teknolojisinin bu sorunu çözmesi ve şifrelenmemiş bilgilerin son kısmını şifrelemesi gerekiyor. To benefit from it, enable the *Use Encrypted ClientHello* option. Alan adı için ECH yapılandırmasını aramak için yerel bir DNS proxy'si kullanır. If it is found, ClientHello packet will be encrypted. -### Check websites' certificate transparency +### Sitelerin sertifika şeffaflığını kontrol et -Verifies the authenticity of all certificates for the domain based on Chrome Certificate Transparency Policy. Sertifika, Chrome Sertifika Şeffaflığı Politikasına uymuyorsa, AdGuard siteyi filtrelemez. Chrome, in turn, will block it. +Chrome Sertifika Şeffaflığı Politikasını temel alarak alan adı için tüm sertifikaların orijinalliğini doğrular. Sertifika, Chrome Sertifika Şeffaflığı Politikasına uymuyorsa, AdGuard siteyi filtrelemez. Chrome da onu engeller. -### Enable SSL/TLS certificate revocation checks +### SSL/TLS sertifika iptal kontrollerini etkinleştir -Once enabled, this option runs asynchronous OCSP checks to check whether the website’s SSL/TLS certificate is revoked. +Bu seçenek etkinleştirildiğinde, sitenin SSL/TLS sertifikasının iptal edilip edilmediğini kontrol etmek için eşzamansız OCSP kontrolleri gerçekleştirir. -If the OCSP check completes within the minimum timeout, AdGuard will immediately apply the result: block the connection if the certificate is revoked or establish a connection if the certificate is valid. +OCSP kontrolü minimum zaman aşımı süresi içinde tamamlanırsa AdGuard hemen sonucu uygular: sertifika iptal edilirse bağlantıyı engelleyin veya sertifika geçerliyse bağlantı kurun. -If the verification takes too long, AdGuard will establish a connection and continue checking in the background. If the certificate is revoked, current and future connections to the domain will be blocked. +Doğrulama çok uzun sürerse AdGuard bir bağlantı kurar ve arka planda kontrol etmeye devam eder. Sertifika iptal edilirse alan adına yapılan mevcut ve gelecekteki bağlantılar engellenecektir. ### Show AdGuard VPN in Settings -Enabling this option allows you to display the AdGuard VPN tab in Settings for easy opening of the app and the product's website. +Bu seçeneğin etkinleştirilmesi, uygulamanın ve ürünün sitenin kolayca açılması için Ayarlar'da AdGuard VPN sekmesini görüntülemenize olanak tanır. -### Exclude app from filtering by entering the full path +### Tam dosya yolu girerek uygulamayı filtrelemeden hariç tut -If you want AdGuard not to filter any specific application, specify the full path to them and the apps will be excluded from filtering. Separate different paths by semicolons. +AdGuard'ın belirli bir uygulamayı filtrelememesini istiyorsanız, bunların tam yolunu belirtin; uygulamalar filtrelemenin dışında bırakılacaktır. Farklı yolları noktalı virgülle ayırın. -### Enable AdGuard pop-up notifications +### AdGuard açılır pencere bildirimlerini etkinleştir -Enable this feature to see AdGuard pop-up notifications. They do not appear too often and contain only important information. You can also use the tray menu to recall the last pop-up notification. +AdGuard açılır bildirimlerini görmek için bu özelliği etkinleştirin. Çok sık görünmezler ve yalnızca önemli bilgiler içerirler. Son açılan bildirimi geri çağırmak için tepsi menüsünü de kullanabilirsiniz. -### Automatically intercept filter subscription URLs +### Filtre aboneliği URL bağlantılarını otomatik yakala -Enable this feature if you want AdGuard to automatically intercept filter subscription URLs (i.e. `abp:subscribe` and alike) and to open a custom filter installation dialog. +AdGuard'ın filtre aboneliği URL'lerini (ör. `abp:subscribe` ve benzeri) otomatik olarak engellemesini ve özel bir filtre yükleme uyarı kutusu açmasını istiyorsanız bu özelliği etkinleştirin. -### Use redirect driver mode +### Yönlendirme sürücü modunu kullan -If this option is enabled, AdGuard intercepts all the traffic and redirects it to the local proxy server for further filtering. +Bu seçenek etkinleştirilirse AdGuard tüm trafiği keser ve daha fazla filtreleme için yerel proxy sunucusuna yönlendirir. -Otherwise, AdGuard will filter all the traffic on the fly, without redirection. In this case, the system will consider AdGuard to be the sole application that connects to the Internet (other applications are routed through it). The downside is that it will make the system Firewall less effective. The upside is that this approach works a little bit faster. +Aksi takdirde, AdGuard tüm trafiği yönlendirme olmadan anında filtreler. Bu durumda sistem, AdGuard'ı internete bağlanan tek uygulama olarak kabul eder (diğer uygulamalar onun üzerinden yönlendirilir). Dezavantajı ise sistem Güvenlik Duvarı'nı daha az etkili hâle getirmesidir. Bunun iyi yanı, bu yaklaşımın biraz daha hızlı çalışmasıdır. -### Open main window at system start-up +### Sistem başlangıcında ana pencereyi aç -Enable this option to make the main AdGuard window open after the system is loaded. Note that it doesn't affect whether the actual filtering service is launched or not, this setting is located in *Settings → General Settings* +Sistem yüklendikten sonra ana AdGuard penceresinin açılmasını sağlamak için bu seçeneği etkinleştirin. Gerçek filtreleme hizmetinin başlatılıp başlatılmamasını etkilemediğini unutmayın, bu ayar *Ayarlar → Genel Ayarlar* öğesinde bulunur. -### Enable filtering at system start-up +### Sistem başlangıcında filtrelemeyi etkinleştir -Starting from v7.12, by default, AdGuard's service does not filter traffic after OS startup if the option Launch AdGuard at system start-up is disabled. In other words, the AdGuard's service is started in “idle” mode. Enable this option to make AdGuard filter traffic even if the app is not launched. +v7.12'den başlayarak, varsayılan olarak AdGuard'ın hizmeti, AdGuard'ı sistem başlangıcında başlat seçeneği devre dışı bırakılırsa işletim sistemi başlatıldıktan sonra trafiği filtrelemez. Başka bir deyişle, AdGuard'ın hizmeti "boşta" modunda başlatılır. Uygulama başlatılmamış olsa bile AdGuard'ın trafiği filtrelemesini sağlamak için bu seçeneği etkinleştirin. -:::note +:::not -Before v7.12, the AdGuard service started in filtering mode by default (even if the *Launch AdGuard at system start-up* was disabled). If you were satisfied with the old behavior, enable this option. +v7.12'den önce, AdGuard hizmeti varsayılan olarak filtreleme modunda başlatılıyordu ( *AdGuard'ı sistem başlangıcında başlat* devre dışı bırakılmış olsa bile). Eski davranıştan memnunsanız, bu seçeneği etkinleştirin. ::: ### localhost'u filtrele -If you want AdGuard to filter loopback connections, check the box. This option will always be on if you have AdGuard VPN installed, because otherwise it won't be able to work. +AdGuard'ın geri dönen bağlantılarını filtrelemesini istiyorsanız, kutuyu işaretleyin. AdGuard VPN'iniz kuruluysa bu seçenek her zaman açık olur, aksi halde çalışmayacaktır. -### Exclude specified IP ranges from filtering +### Belirtilen IP aralıklarını filtrelemeden hariç tut If you don't want AdGuard to filter particular subnets, enable this feature and specify the IP ranges in the CIDR notation (e.g. 98.51.100.14/24) in the **IP ranges excluded from filtering** section below. -### Enable HAR writing +### HAR yazımını etkinleştir -This option should be enabled **only for debugging purposes**. If you tick the checkmark, AdGuard will create a file that contains information about all filtered HTTP requests in HAR 1.2 format. This file can be analyzed with the Fiddler app. Note that it may slow down your web browsing significantly. +Bu seçenek **yalnızca hata ayıklama amacıyla** etkinleştirilmelidir. Onay işaretini işaretlerseniz AdGuard, filtrelenen tüm HTTP istekleri hakkında bilgileri içeren HAR 1.2 biçiminde bir dosya oluşturur. Bu dosya Fiddler uygulamasıyla analiz edilebilir. İnternette gezinmeyi önemli ölçüde yavaşlatabileceğini unutmayın. -### Add an extra space to the plain HTTP request +### Düz HTTP isteğine fazladan boşluk ekle -Adds extra space between the HTTP method and the URL and removes space after the "Host:" field to avoid deep packet inspection. For instance, the request +HTTP yöntemi ile URL arasına fazladan boşluk ekler ve Derin Paket İncelemesini önlemek için "Ana makine:" alanından sonraki boşluğu kaldırır. Örneğin, istek `GET /foo/bar/ HTTP/1.1 Host: example.org` @@ -117,49 +117,49 @@ Geçerli değerler: 1–1500. If invalid size is specified, the value selected b ### Plain HTTP request fragment size -HTTP istek parçalanmasının boyutunu ayarlar. This option only affects plain HTTP traffic. If this option is enabled, AdGuard splits the initial packet into two parts: the first one has the specified length and the second one has the rest, up to the length of the whole original packet. +HTTP istek parçalanmasının boyutunu ayarlar. Bu seçenek yalnızca düz HTTP trafiğini etkiler. Bu seçenek etkinleştirilirse, AdGuard ilk paketi iki parçaya böler: ilki belirtilen uzunluğa sahiptir ve ikincisi tüm orijinal paketin uzunluğuna kadar geri kalanına sahiptir. -Geçerli değerler: 1–1500. If invalid size is specified, the value selected by the system will be used. This option is only applied when the *Protect from DPI* Stealth mode option is enabled. +Geçerli değerler: 1–1500. Geçersiz boyut belirtilirse, sistem tarafından seçilen değer kullanılır. This option is only applied when the *Protect from DPI* Stealth mode option is enabled. ### Show QUIC -Allows displaying the QUIC protocol records in the filtering log. For blocked requests only. +QUIC protokolü kayıtlarının filtreleme günlüğünde görüntülenmesine izin verir. Yalnızca engellenen istekler için. ### Enable TCP keepalive -Periodically sends TCP packets over idle connection to ensure it is alive and to renew NAT timeouts. This option can be useful to bypass the strict network address translation (NAT) settings that some ISPs use. +Etkin olduğundan emin olmak ve NAT zaman aşımlarını yenilemek için boşta olan bağlantı üzerinden periyodik olarak TCP paketleri gönderir. Bu seçenek, bazı İSS'lerin kullandığı katı ağ adresi dönüştürme (NAT) ayarlarını atlamak için yararlı olabilir. ### TCP keepalive interval -Here you can specify an idle time period, in seconds, before sending a keepalive probe. 0 belirtilirse, sistem tarafından seçilen değer kullanılacaktır. +Burada, bir keepalive probu göndermeden önce saniye cinsinden boşta kalma süresini belirtebilirsiniz. 0 belirtilirse, sistem tarafından seçilen değer kullanılacaktır. -:::note +:::not -This setting only works when the *Enable TCP keepalive* option is enabled. +Bu ayar yalnızca *TCP keepalive'ı etkinleştir* seçeneği etkinleştirildiğinde çalışır. ::: ### TCP keepalive timeout -Here you can specify time in seconds before sending another keepalive probe to an unresponsive peer. 0 belirtilirse, sistem tarafından seçilen değer kullanılacaktır. +Burada, yanıt vermeyen bir eşe başka bir keepalive probu göndermeden önce geçen süreyi saniye cinsinden belirtebilirsiniz. 0 belirtilirse, sistem tarafından seçilen değer kullanılacaktır. -:::note +:::not -This setting only works when the *Enable TCP keepalive* option is enabled. +Bu ayar yalnızca *TCP keepalive'ı etkinleştir* seçeneği etkinleştirildiğinde çalışır. ::: ### Block Java -Some websites and web services still support Java Plug-Ins. The API that serves as the basis for Java plug-ins has serious security vulnerabilities. You can disable such plug-ins for security purposes. Nevertheless, even if you decide to use *Block Java* option, JavaScript will still be enabled. +Bazı siteler ve web hizmetleri hâlâ Java Eklentilerini desteklemektedir. Java eklentilerine temel oluşturan API'nin ciddi güvenlik açıkları bulunmaktadır. Güvenlik amacıyla bu tür eklentileri devre dışı bırakabilirsiniz. Bununla birlikte, *Java'yı engelle* seçeneğini kullanmaya karar verseniz bile, JavaScript hâlâ etkin olacaktır. -### DNS server timeout period +### DNS sunucusu zaman aşımı süresi Here you can specify the time in milliseconds that AdGuard will wait for the response from the selected DNS server before resorting to fallback. If you don’t fill in this field or enter an invalid value, the value of 5000 will be used. ### Use HTTP/3 for DNS-over-HTTPS -Enables HTTP/3 for DNS-over-HTTPS upstreams to accelerate connection if the selected upstream supports this protocol. This means that enabling this option does not guarantee that all DNS requests will be sent via HTTP/3. +Seçilen üst kaynak bu protokolü destekliyorsa, bağlantıyı hızlandırmak amacıyla DNS-over-HTTPS üst kaynakları için HTTP/3'ü etkinleştirir. Bu, bu seçeneğin etkinleştirilmesinin tüm DNS isteklerinin HTTP/3 aracılığıyla gönderileceğini garanti etmediği anlamına gelir. ### Use fallback DNS upstreams @@ -167,15 +167,15 @@ Seçilen üst kaynaklara yönelik tüm DNS istekleri başarısız olursa, normal ### Query DNS upstreams in parallel -All upstreams will be queried in parallel and the first response is returned. Since DNS queries are made in parallel, enabling this feature increases the Internet speed. +All upstreams will be queried in parallel and the first response is returned. DNS sorguları paralel olarak yapıldığından bu özelliğin etkinleştirilmesi internet hızını artırır. ### Always respond to failed DNS queries -If address resolving failed on each of the forwarded upstreams, as well as on the fallback domains, then the response to the DNS request will be `SERVFAIL`. +Yönlendirilen üst kaynakların her birinde ve yedek alan adlarında adres çözümlemesi başarısız olursa, DNS isteğine verilen yanıt `SERVFAIL` olacaktır. -### Enable filtering of secure DNS requests +### Güvenli DNS isteklerinin filtrelenmesini etkinleştir -AdGuard will redirect secure DNS requests to the local DNS proxy, in addition to plain DNS requests. +AdGuard, düz DNS isteklerine ek olarak güvenli DNS isteklerini yerel DNS proxy'sine yönlendirir. ### Blocking mode for hosts rules @@ -213,20 +213,20 @@ Here you can specify an alternate DNS server to which a DNS request will be rero If enabled, AdGuard strips Encrypted Client Hello parameters from responses. -### List of custom fallback servers +### Özel yedek sunucuların listesi -If you want AdGuard to use custom fallback servers, list them in this section, one per line. +AdGuard'ın özel yedek sunucular kullanmasını istiyorsanız, bunları bu bölümde her satıra bir tane gelecek şekilde listeleyin. -### List of custom bootstrap addresses +### Özel önyükleme adresleri listesi -A bootstrap is an intermediate DNS server used to get the IP address of the secure DNS server you chose earlier in *DNS protection*. Such a "middle ground" is needed when using protocols that denote the server address by letters (such as DNS-over-TLS, for example). In this case, the bootstrap acts as a translator, transforming the letters into numbers your system can understand. +Önyükleme, daha önce *DNS koruması* içinde seçtiğiniz güvenli DNS sunucusunun IP adresini almak için kullanılan bir ara DNS sunucusudur. Sunucu adresini harflerle belirten protokoller (örneğin, DNS-over-TLS gibi) kullanılırken böyle bir "orta yol" gereklidir. Bu durumda, önyüklemeyi bir çevirmen görevi görerek harfleri sisteminizin anlayabileceği sayılara dönüştürür. -By default, the system DNS resolver is used, and the initial bootstrap request is made through port 53. If this does not suit you, list here the IP addresses of the DNS servers that will be used to determine the address of the encrypted DNS server in the top-to-bottom order. The specified IP addresses will be applied in the order listed. If you specify invalid addresses, or no addresses at all, the system IPs will be used. +Varsayılan olarak sistem DNS çözümleyicisi kullanılır ve ilk önyükleme isteği bağlantı noktası 53 aracılığıyla yapılır. Eğer bu size uymuyorsa, şifrelenmiş DNS sunucusunun adresini belirlemek için kullanılacak DNS sunucularının IP adreslerini yukarıdan aşağıya doğru listeleyin. Belirtilen IP adresleri listelenen sıraya göre uygulanacaktır. Geçersiz adres belirtirseniz veya hiç adres belirtmezseniz sistem IP'leri kullanılacaktır. ### DNS exclusions -All DNS requests to domains listed here will be redirected to the system default DNS server instead of the DNS server specified in the app’s settings. Also, DNS blocking rules will not be applied to such requests. +Burada listelenen alan adlarına yapılan tüm DNS istekleri, uygulamanın ayarlarında belirtilen DNS sunucusu yerine sistemin varsayılan DNS sunucusuna yönlendirilecektir. Ayrıca, DNS engelleme kuralları bu tür isteklere uygulanmayacaktır. -### Exclude specified Wi-Fi networks names (SSIDs) from the DNS filtering +### Belirtilen Wi-Fi ağ adlarını (SSID'ler) DNS filtrelemesinden hariç tut -DNS koruması, bu bölümde listelenen Wi-Fi ağlarını kapsamaz. Specify Wi-Fi networks names (SSIDs) one per line. This can be useful if a particular Wi-Fi network is already protected by AdGuard Home or another DNS protection system. In this case, it is superfluous to filter DNS requests again. +DNS koruması, bu bölümde listelenen Wi-Fi ağlarını kapsamaz. Wi-Fi ağ adlarını (SSID'leri) her satıra bir tane belirtin. Belirli bir Wi-Fi ağı AdGuard Home veya başka bir DNS koruma sistemi tarafından zaten korunuyorsa bu yararlı olabilir. Bu durumda DNS isteklerini tekrar filtrelemek gereksizdir. diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/system-logs.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/system-logs.md index 0c80c9f40a1..66100c0f7e9 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/system-logs.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/system-logs.md @@ -1,27 +1,27 @@ --- -title: How to collect Windows system logs +title: Windows sistem günlükleri nasıl toplanır sidebar_position: 5 --- -:::info +:::bilgi Bu makale, cihazınızı sistem düzeyinde koruyan çok işlevli bir reklam engelleyici olan Windows için AdGuard'ı ele alır. Nasıl çalıştığını görmek için [AdGuard uygulamasını indirin](https://adguard.com/download.html?auto=true) ::: -To analyze and diagnose different problems that may potentially arise, the AdGuard support service might need Windows system log files. Windows event logs contain records about all errors that occurr with the installed software, including AdGuard. Below is the brief instruction describing the way to get the log files and to send them to our support service if necessary. +Ortaya çıkabilecek farklı sorunları analiz etmek ve teşhis etmek için AdGuard destek hizmetinin Windows sistem günlük dosyalarına ihtiyacı olabilir. Windows olay günlükleri, AdGuard da dahil olmak üzere yüklü yazılımda meydana gelen tüm hatalara ilişkin kayıtları içerir. Aşağıda günlük dosyalarını nasıl alacağınızı ve gerekirse destek servisimize nasıl göndereceğinizi açıklayan kısa talimat bulunmaktadır. -1. Press *Win + R* +1. *Win + R* tuşlarına basın -1. In the window that appears type in `eventvwr` and click *OK*: +1. Açılan pencerede `eventvwr` yazın ve *Tamam* öğesine tıklayın: - ![Run window *mobile](https://cdn.adtidy.org/public/Adguard/kb/newscreenshots/En/eng_event_logs_1.png) + ![Pencereyi çalıştır *mobile](https://cdn.adtidy.org/public/Adguard/kb/newscreenshots/En/eng_event_logs_1.png) -1. Event Viewer window appears as shown in the picture. +1. Olay Görüntüleyicisi penceresi resimde gösterildiği gibi görünür. - ![Event viewer *border](https://cdn.adtidy.org/public/Adguard/kb/newscreenshots/En/eng_event_logs_2.png) + ![Olay görüntüleyicisi *border](https://cdn.adtidy.org/public/Adguard/kb/newscreenshots/En/eng_event_logs_2.png) - To save files that we need, do the following: + İhtiyacımız olan dosyaları kaydetmek için aşağıdakileri yapın: - *Uygulama* öğesini açın: *Olay Görüntüleyicisi (Yerel)* → *Windows Günlükleri* → *Uygulama*. diff --git a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/wfp-driver.md b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/wfp-driver.md index 3151ccac578..b225e1edd0f 100644 --- a/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/wfp-driver.md +++ b/i18n/tr/docusaurus-plugin-content-docs/current/adguard-for-windows/solving-problems/wfp-driver.md @@ -3,18 +3,18 @@ title: WFP driver sidebar_position: 1 --- -:::info +:::bilgi Bu makale, cihazınızı sistem düzeyinde koruyan çok işlevli bir reklam engelleyici olan Windows için AdGuard'ı ele alır. Nasıl çalıştığını görmek için [AdGuard uygulamasını indirin](https://adguard.com/download.html?auto=true) ::: -To filter netwrok traffic, AdGuard uses a network driver. There are two options: TDI driver and WFP driver. While WFP driver is generally preferrable and is enabled by default for all newer Windows OS versions (Windows 8 and newer), it can potentially cause compatibility problems, especially with some antiviruses. These problems and subsequent errors can be very different in each case. +Ağ trafiğini filtrelemek için AdGuard bir ağ sürücüsü kullanır. İki seçenek vardır: TDI sürücüsü ve WFP sürücüsü. WFP sürücüsü genellikle tercih edilir ve tüm yeni Windows işletim sistemi sürümleri için (Windows 8 ve daha yeni) varsayılan olarak etkinleştirilmiş olsa da, özellikle bazı antivirüslerde uyumluluk sorunlarına neden olabilir. Bu sorunlar ve sonraki hatalar her durumda çok farklı olabilir. -If you encounter a problem that you suspect might be caused by this, you can always switch to the older but more stable TDI network driver. To do so: +If you encounter a problem that you suspect might be caused by this, you can always switch to the older but more stable TDI network driver. Bunu yapmak için: -1. Go to *Settings → Network*. +1. *Ayarlar → Ağ* öğesine gidin. -2. Disable WFP driver as it’s done in this picture: +2. Bu resimde yapıldığı gibi WFP sürücüsünü devre dışı bırakın: -![WFP driver *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/solving-problems/wfp-driver.png) +![WFP sürücüsü *border](https://cdn.adtidy.org/content/kb/ad_blocker/windows/solving-problems/wfp-driver.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..918f35254f7 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 @@ -1,5 +1,5 @@ --- -title: How to create your own ad filters +title: Kendi reklam filtrelerinizi nasıl oluşturursunuz sidebar_position: 5 toc_min_heading_level: 2 toc_max_heading_level: 4 @@ -7,13 +7,13 @@ toc_max_heading_level: 4 :::info -In this article, we explain how to write custom filtering rules for use in AdGuard products. Kurallarınızı test etmek için [AdGuard uygulamasını indirebilirsiniz](https://adguard.com/download.html?auto=true) +Bu makalede, AdGuard ürünlerinde kullanılmak üzere özel filtreleme kurallarının nasıl yazılacağı anlatıyoruz. Kurallarınızı test etmek için [AdGuard uygulamasını indirebilirsiniz](https://adguard.com/download.html?auto=true) ::: -A filter is a set of filtering rules applied to specific content, such as banners or pop-ups. AdGuard has a list of standard filters created by our team. We constantly improve and update them, striving to meet the needs of most of our users. +Filtre, başlıklar veya açılır pencereler gibi belirli içeriğe uygulanan bir dizi filtreleme kuralıdır. AdGuard, ekibimiz tarafından oluşturulmuş standart filtrelerin bir listesine sahiptir. Kullanıcılarımızın çoğunun ihtiyaçlarını karşılamaya çalışarak bunları sürekli olarak geliştiriyor ve güncelliyoruz. -At the same time, AdGuard allows you to create your own custom filters using the same types of rules that we have in our filters. +Aynı zamanda AdGuard, filtrelerimizde sahip olduğumuz aynı türde kuralları kullanarak kendi özel filtrelerinizi oluşturmanıza olanak tanır. To describe the syntax of our filtering rules, we use [Augmented BNF for Syntax Specifications](https://tools.ietf.org/html/rfc5234), but we do not always strictly follow this specification. @@ -23,9 +23,9 @@ Originally, the AdGuard's syntax was based on the syntax of Adblock Plus rules. ::: -## Comments +## Yorumlar -Any line that starts with an exclamation mark is a comment. In the list of rules it is displayed in gray color. AdGuard will ignore this line, so you can write anything you want. Comments are usually placed above the rules and used to describe what a rule does. +Ünlem işaretiyle başlayan her satır bir yorumdur. Kurallar listesinde gri renkte görüntülenir. AdGuard bu satırı yok sayar, böylece istediğiniz her şeyi yazabilirsiniz. Yorumlar genellikle kuralların üzerine yerleştirilir ve bir kuralın ne yaptığını açıklamak için kullanılır. Örneğin: @@ -46,12 +46,12 @@ Any line that starts with an exclamation mark is a comment. In the list of rules - `http://subdomain.example.org/ad1.gif` - `https://ads.example.org:8000/` -**This rule does not block:** +**Bu kural şunları engellemez:** - `http://ads.example.org.us/ad1.gif` - `http://example.com/redirect/http://ads.example.org/` -### Blocking exact address +### Tam adresi engelleme ![Blocking exact address](https://cdn.adtidy.org/content/kb/ad_blocker/general/1_exact_address.svg) @@ -59,21 +59,21 @@ Any line that starts with an exclamation mark is a comment. In the list of rules - `http://example.org/` -**This rule does not block:** +**Bu kural şunları engellemez:** - `https://example.org/banner/img` -### Basic rule modifiers +### Temel kural değiştiriciler Filtering rules support numerous modifiers that allow you to fine-tune the rule behavior. Here is an example of a rule with some simple modifiers. -![Basic rule modifiers](https://cdn.adtidy.org/content/kb/ad_blocker/general/2_basic_rule_options.svg) +![Temel kural değiştiriciler](https://cdn.adtidy.org/content/kb/ad_blocker/general/2_basic_rule_options.svg) **Bu kural şunları engeller:** - `http://example.org/script.js` if this script is loaded from `example.org`. -**This rule does not block:** +**Bu kural şunları engellemez:** - `https://example.org/script.js` if this script is loaded from `example.org`. - `https://example.org/banner.png` because it is not a script. @@ -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 + +Değiştirici değerindeki uygulamaların joker karakteri olamaz, örneğin `$app=com.*.music`. Bu tür değiştiriciye sahip kurallar geçersiz kabul edilir. + +::: + :::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. Bir kurala birden fazla yöntem eklemek için ayırıcı olarak dikey çubuk `|` kullanın. **Örnekler** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. -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. +| 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 + +- ✅ — fully supported +- ❌ — not supported + +::: ## Cosmetic rules {#cosmetic-rules} @@ -2819,7 +2909,7 @@ The `:nth-ancestor()` pseudo-class allows to lookup the *nth* ancestor relative subject:nth-ancestor(n) ``` -- `subject` — required, standard or extended CSS selector +- `subject` — gerekli, standart veya genişletilmiş CSS seçici - `n` — required, number >= 1 and < 256, distance to the needed ancestor from the element selected by `subject` **Söz dizimi** @@ -2828,7 +2918,7 @@ subject:nth-ancestor(n) subject:nth-ancestor(n) ``` -- `subject` — required, standard or extended CSS selector +- `subject` — gerekli, standart veya genişletilmiş CSS seçici - `n` — required, number >= 1 and < 256, distance to the needed ancestor from the element selected by `subject` ##### `:nth-ancestor()` limitations {#extended-css-nth-ancestor-limitations} @@ -2866,7 +2956,7 @@ The `:upward()` pseudo-class allows to lookup the ancestor relative to the previ subject:upward(ancestor) ``` -- `subject` — required, standard or extended CSS selector +- `subject` — gerekli, standart veya genişletilmiş CSS seçici - `ancestor` — required, specification for the ancestor of the element selected by `subject`, can be set as: - *number* >= 1 and < 256 for distance to the needed ancestor, same as [`:nth-ancestor()`](#extended-css-nth-ancestor) - *standard CSS selector* for matching closest ancestor @@ -3270,7 +3360,7 @@ Trusted scriptlets are not compatible with other ad blockers except AdGuard. ::: -:::caution Restrictions +:::dikkat Kısıtlamalar Trusted scriptlets rules can be used [**only in trusted filters**](#trusted-filters). @@ -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 +## Temel olmayan kural türleri için değiştiriciler {#non-basic-rules-modifiers} - - -- [`$app`](#non-basic-app-modifier) -- [`$domain`](#non-basic-domain-modifier) -- [`$path`](#non-basic-path-modifier) -- [`$url`](#non-basic-url-modifier) - -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. @@ -3430,7 +3528,7 @@ Preprocessor directives can be used in the user rules or in the custom filters. ::: -#### Including a file {#include-directive} +#### Dosya dahil etme {#include-directive} The `!#include` directive allows to include contents of a specified file into the filter. It supports only files from the same origin to make sure that the filter maintainer is in control of the specified file. The included file can also contain pre- directives (even other `!#include` directives). Ad blockers should consider the case of recursive `!#include` and implement a protection mechanism. @@ -3450,7 +3548,7 @@ Same-origin limitation should be disabled for local custom filters. **Örnekler** -Filter URL: `https://example.org/path/filter.txt` +Filtre URL'si: `https://example.org/path/filter.txt` ```adblock ! Valid (same origin): @@ -3480,10 +3578,10 @@ rules_list !#endif ``` -where: +nerede: - `!#if (conditions)` — start of the block -- `conditions` — just like in some popular programming languages, preprocessor conditions are based on constants declared by ad blockers. Ad blocker authors define on their own what exact constants do they declare. Possible values: +- `conditions` — just like in some popular programming languages, preprocessor conditions are based on constants declared by ad blockers. Ad blocker authors define on their own what exact constants do they declare. Olası değerler: - `adguard` always declared; shows maintainers that this is one of AdGuard products; should be enough in 95% of cases - product-specific constants for cases when you need a rule to work (or not work — then `!` should be used before constant) in a specific product only: - `adguard_app_windows` — AdGuard for Windows @@ -3519,18 +3617,20 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari'nin her içerik engelleyici için sınırı 150.000 etkin kuraldır. Ancak Safari için AdGuard ve iOS için AdGuard'da kuralları 6 içerik engelleyiciye ayırdık, böylece kural sınırını 900.000'e çıkardık. + +Her bir içerik engelleyicinin bileşimi şöyledir: -- AdGuard General — Ad Blocking, Language-specific -- AdGuard Privacy — Privacy -- AdGuard Social — Social Widgets, Annoyances -- AdGuard Security — Security -- AdGuard Other — Other -- AdGuard Custom — Custom +- AdGuard Genel — Reklam Engelleme, Dile Özgü +- AdGuard Gizlilik — Gizlilik +- AdGuard Sosyal — Sosyal Ağ Araçları, Can Sıkıcı Öğeler +- AdGuard Güvenliği — Güvenlik +- AdGuard Diğer — Diğer +- AdGuard Özel — Özel -`User rules` and `Allowlist` are added to every content blocker. +Her içerik engelleyiciye kullanıcı kuralları ve izin listesi eklenir. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +Birden fazla içerik engelleyici kullanmanın ana sorunu, bu içerik engelleyicilerdeki kuralların birbirini etkileyemeyecek olmasıdır. Bu, beklenmedik farklı sorunlara yol açabilir. Bu nedenle, filtre koruyucuları, yönerge bloğunun içindeki kurallar için Safari içerik engelleyici yakınlığını tanımlamak üzere `!#safari_cb_affinity` kullanabilir. **Söz dizimi** @@ -3540,10 +3640,10 @@ rules_list !#safari_cb_affinity ``` -where: +nerede: - `!#safari_cb_affinity(content_blockers)` — start of the block -- `content_blockers` — comma-separated list of content blockers. Possible values: +- `content_blockers` — comma-separated list of content blockers. Olası değerler: - `general` — AdGuard General content blocker - `privacy` — AdGuard Privacy content blocker - `social` — AdGuard Social content blocker @@ -3570,9 +3670,9 @@ example.org#@#.adBanner !#safari_cb_affinity ``` -### Hints +### İpuçları -"Hint" is a special comment, instruction to the filters compiler used on the server side (see [FiltersRegistry](https://github.com/AdguardTeam/FiltersRegistry)). +"İpucu" özel bir yorumdur, sunucu tarafında kullanılan filtreler derleyicisine verilen talimattır (bkz [FiltersRegistry](https://github.com/AdguardTeam/FiltersRegistry)). **Söz dizimi** @@ -3582,119 +3682,119 @@ example.org#@#.adBanner Birden fazla ipucu uygulanabilir. -#### `NOT_OPTIMIZED` hint +#### `NOT_OPTIMIZED` ipucu -For each filter, AdGuard compiles two versions: full and optimized. Optimized version is much more lightweight and does not contain rules which are not used at all or used rarely. +AdGuard, her filtre için iki sürüm derler: tam ve iyileştirilmiş. İyileştirilmiş sürüm çok daha hafiftir ve hiç kullanılmayan veya nadiren kullanılan kuralları içermez. -Rules usage frequency comes from the collected [filter rules statistics](../tracking-filter-statistics). But filters optimization is based on more than that — some filters have specific configuration. This is how it looks like for Base filter: +Kuralların kullanım sıklığı toplanan [filtre kuralları istatistiklerinden](../tracking-filter-statistics) gelir. Ancak filtre iyileştirmesi bundan daha fazlasına dayanır — bazı filtrelerin özel yapılandırması vardır. Temel filtre için bu şekilde görünür: ```text -"filter": AdGuard Base filter, +"filter": AdGuard Temel filtresi, "percent": 30, "minPercent": 20, "maxPercent": 40, "strict": true ``` -where: +nerede: -- **filter** — filter identifier -- **percent** — expected optimization percent `~= (rules count in optimized filter) / (rules count in original filter) * 100` -- **minPercent** — lower bound of `percent` value -- **maxPercent** — upper bound of `percent` value -- **strict** — if `percent < minPercent` OR `percent > maxPercent` and strict mode is on then filter compilation should fail, otherwise original rules must be used +- **filter** — filtre tanımlayıcısı +- **yüzde** — beklenen iyileştime yüzde `~= (iyileştirilmiş filtrede kurallar sayılır) / (orijinal filtrede kurallar sayılır) * 100` +- **minPercent** — `yüzde` değerinin alt sınırı +- **maxPercent** — `yüzde` değerinin üst sınırı +- **strict** — `percent < minPercent` VEYA `percent > maxPercent` ve strict modu açıksa filtre derlemesi başarısız olmalıdır, aksi takdirde orijinal kurallar kullanılmalıdır -In other words, `percent` is the "compression level". For instance, for the Base filter it is configured to 40%. It means that optimization algorithm should strip 60% of rules. +Başka bir deyişle, `yüzde` "sıkıştırma seviyesidir". Örneğin, Temel filtre için %40 olarak yapılandırılmıştır. Bu, iyileştirme algoritmasının kuralların %60'ını arındırması gerektiği anlamına gelir. -Eventually, here are the two versions of the Base filter for AdGuard Browser Extension: +Sonuç olarak, AdGuard Tarayıcı Uzantısı için Temel filtrenin iki sürümü şunlardır: -- full: https://filters.adtidy.org/extension/chromium/filters/2.txt -- optimized: https://filters.adtidy.org/extension/chromium/filters/2_optimized.txt +- tam: https://filters.adtidy.org/extension/chromium/filters/2.txt +- iyileştirilmiş: https://filters.adtidy.org/extension/chromium/filters/2_optimized.txt -**If you want to add a rule which should not be removed at optimization use the `NOT_OPTIMIZED` hint:** +**İyileştirme sırasında kaldırılmaması gereken bir kural eklemek istiyorsanız, `NOT_OPTIMIZED` ipucunu kullanın:** ```adblock !+ NOT_OPTIMIZED ||example.org^ ``` -**And this rule will not be optimized only for AdGuard for Android:** +**Ve bu kural sadece Android için AdGuard için iyileştirilmiş olmayacaktır:** ```adblock !+ NOT_OPTIMIZED PLATFORM(android) ||example.org^ ``` -#### `PLATFORM` and `NOT_PLATFORM` hints +#### `PLATFORM` ve `NOT_PLATFORM` ipuçları -Used to specify the platforms to apply the rules. List of existing platforms and links to Base filter, for example, for each of them: +Kuralların uygulanacağı platformları belirtmek için kullanılır. Mevcut platformların listesi ve örneğin her biri için Temel filtresine giden bağlantılar: -- `windows` — AdGuard for Windows — [https://filters.adtidy.org/windows/filters/2.txt](https://filters.adtidy.org/windows/filters/2.txt) +- `windows` — Windows için AdGuard — [https://filters.adtidy.org/windows/filters/2.txt](https://filters.adtidy.org/windows/filters/2.txt) -- `mac` — AdGuard for Mac — [https://filters.adtidy.org/mac_v2/filters/2.txt](https://filters.adtidy.org/mac_v2/filters/2.txt) +- `mac` — Mac için AdGuard — [https://filters.adtidy.org/mac_v2/filters/2.txt](https://filters.adtidy.org/mac_v2/filters/2.txt) -- `android` — AdGuard for Android — [https://filters.adtidy.org/android/filters/2.txt](https://filters.adtidy.org/android/filters/2.txt) +- `android` — Android için AdGuard — [https://filters.adtidy.org/android/filters/2.txt](https://filters.adtidy.org/android/filters/2.txt) -- `ios` — AdGuard for iOS — [https://filters.adtidy.org/ios/filters/2.txt](https://filters.adtidy.org/ios/filters/2.txt) +- `ios` — iOS için AdGuard — [https://filters.adtidy.org/ios/filters/2.txt](https://filters.adtidy.org/ios/filters/2.txt) -- `ext_chromium` — AdGuard Browser Extension for Chrome — [https://filters.adtidy.org/extension/chromium/filters/2.txt](https://filters.adtidy.org/extension/chromium/filters/2.txt) +- `ext_chromium` — Chrome için AdGuard Tarayıcı Uzantısı — [https://filters.adtidy.org/extension/chromium/filters/2.txt](https://filters.adtidy.org/extension/chromium/filters/2.txt) -- `ext_ff` — AdGuard Browser Extension for Firefox — [https://filters.adtidy.org/extension/firefox/filters/2.txt](https://filters.adtidy.org/extension/firefox/filters/2.txt) +- `ext_ff` — Firefox için AdGuard Tarayıcı Uzantısı — [https://filters.adtidy.org/extension/firefox/filters/2.txt](https://filters.adtidy.org/extension/firefox/filters/2.txt) -- `ext_edge` — AdGuard Browser Extension for Edge — [https://filters.adtidy.org/extension/edge/filters/2.txt](https://filters.adtidy.org/extension/edge/filters/2.txt) +- `ext_edge` — Edge için AdGuard Tarayıcı Uzantısı — [https://filters.adtidy.org/extension/edge/filters/2.txt](https://filters.adtidy.org/extension/edge/filters/2.txt) -- `ext_opera` — AdGuard Browser Extension for Opera — [https://filters.adtidy.org/extension/opera/filters/2.txt](https://filters.adtidy.org/extension/opera/filters/2.txt) +- `ext_opera` — Opera için AdGuard Tarayıcı Uzantısı — [https://filters.adtidy.org/extension/opera/filters/2.txt](https://filters.adtidy.org/extension/opera/filters/2.txt) -- `ext_safari` — AdGuard for Safari — [https://filters.adtidy.org/extension/safari/filters/2.txt](https://filters.adtidy.org/extension/safari/filters/2.txt) +- `ext_safari` — Safari için AdGuard — [https://filters.adtidy.org/extension/safari/filters/2.txt](https://filters.adtidy.org/extension/safari/filters/2.txt) -- `ext_android_cb` — AdGuard Content Blocker — [https://filters.adtidy.org/extension/android-content-blocker/filters/2.txt](https://filters.adtidy.org/extension/android-content-blocker/filters/2.txt) +- `ext_android_cb` — AdGuard İçerik Engelleyici — [https://filters.adtidy.org/extension/android-content-blocker/filters/2.txt](https://filters.adtidy.org/extension/android-content-blocker/filters/2.txt) - `ext_ublock` — uBlock Origin — [https://filters.adtidy.org/extension/ublock/filters/2.txt](https://filters.adtidy.org/extension/ublock/filters/2.txt) **Örnekler** -This rule will be available only in AdGuard for Windows, Mac, Android: +Bu kural yalnızca Windows, Mac, Android için AdGuard'da kullanılabilecektir: ```adblock !+ PLATFORM(windows,mac,android) ||example.org^ ``` -This rule will be available for every platform except AdGuard for Safari, AdGuard Content Blocker, and AdGuard for iOS: +Bu kural, Safari için AdGuard, AdGuard İçerik Engelleyici ve iOS için AdGuard dışındaki tüm platformlarda kullanılabilecektir: ```adblock !+ NOT_PLATFORM(ext_safari, ext_android_cb, ios) ||example.org^ ``` -## How to debug filtering rules +## Filtreleme kurallarında hata ayıklama -It may be possible to create simple filtering rules "in your head" but for anything even slightly more complicated you will need additional tools to debug and iterate them. There are tools to assist you with that. You can use DevTools in Chrome and its analogs in other browsers but most AdGuard products provide another one — Filtering log. +"Kafanızda" basit filtreleme kuralları oluşturmak mümkün olabilir, ancak biraz daha karmaşık herhangi bir şey için hata ayıklamak ve bunları yinelemek için ek araçlara ihtiyacınız olur. Bu konuda size yardımcı olacak araçlar var. DevTools'u Chrome'da ve benzerlerini diğer tarayıcılarda kullanabilirsiniz, ancak çoğu AdGuard ürünü başka bir tane sunar — Filtreleme günlüğü. -### Filtering log +### Filtreleme günlüğü -Filtering log is an advanced tool that will be helpful mostly to filter developers. It lists all web requests that pass through AdGuard, gives you exhaustive information on each of them, offers multiple sorting options, and has other useful features. +Filtreleme günlüğü, çoğunlukla geliştiricileri filtrelemek için yardımcı olacak gelişmiş bir araçtır. AdGuard'dan geçen tüm web isteklerini listeler, size her biri hakkında ayrıntılı bilgi verir, birden çok sıralama seçeneği sunar ve başka yararlı özelliklere sahiptir. -Depending on which AdGuard product you are using, Filtering log can be located in different places. +Hangi AdGuard ürününü kullandığınıza bağlı olarak, Filtreleme günlüğü farklı yerlerde olabilir. - In **AdGuard for Windows** you will find it inside *Ad Blocker* tab or via the tray menu; - In **AdGuard for Mac** it is under *Settings → Advanced → Filtering log*; - In **AdGuard for Android** it is a separate item in the side menu, also filtering log for a specific app or website is accessible from the Assistant. - In **AdGuard Browser Extension** it is accessible from the *Miscellaneous* settings tab or by right-clicking the extension icon. Only Chromium- and Firefox-based browsers show applied **element hiding rules** (including CSS, ExtCSS) and **JS rules and scriptlets** in their Filtering logs. -:::note +:::not -In **AdGuard for iOS** and in **AdGuard for Safari** Filtering log does not exist because of the way content blockers are implemented in Safari. AdGuard does not see the web requests and therefore cannot display them. +**iOS için AdGuard** ve **Safari için AdGuard** İçerik engelleyicilerin Safari'de uygulanma şekli nedeniyle Filtreleme günlüğü mevcut değil. AdGuard web isteklerini görmez ve bu nedenle görüntüleyemez. ::: -### Selectors debugging mode {#selectors-debug-mode} +### Seçiciler hata ayıklama modu {#selectors-debug-mode} -Sometimes, you might need to check the performance of a given selector or a stylesheet. In order to do it without interacting with JavaScript directly, you can use a special `debug` style property. When `ExtendedCss` meets this property, it enables the debugging mode either for a single selector or for all selectors, depending on the `debug` value. +Bazen belirli bir seçicinin veya stil sayfasının performansını kontrol etmeniz gerekebilir. Doğrudan JavaScript ile etkileşime girmeden yapmak için, özel bir `hata ayıklama` stil özelliğini kullanabilirsiniz. `ExtendedCss` bu özelliği karşıladığında, `debug` değerine bağlı olarak tek bir seçici veya tüm seçiciler için hata ayıklama modunu etkinleştirir. -Open the browser console while on a web page to see the timing statistics for selector(s) that were applied there. Debugging mode displays the following stats as object where each of the debugged selectors are keys, and value is an object with such properties: +Orada uygulanan seçici(ler) için zamanlama istatistiklerini görmek için bir web sayfasındayken tarayıcı konsolunu açın. Hata ayıklama modu, hata ayıklanan seçicilerin her birinin anahtar olduğu ve değerin bu tür özelliklere sahip bir nesne olduğu nesne olarak aşağıdaki istatistikleri görüntüler: -**Always printed:** +**Her zaman yazdırılır:** - `selectorParsed` — text of eventually parsed selector - `timings` — list of DOM nodes matched by the selector @@ -3704,20 +3804,20 @@ Open the browser console while on a web page to see the timing statistics for se - `standardDeviation` — standard deviation - `timingsSum` — total time it took to apply the selector on the page across all instances -**Printed only for remove pseudos:** +**Yalnızca sözdeleri kaldırmak için yazdırılır:** - `removed` — flag to signal if elements we removed -**Printed if elements are not removed:** +**Öğeler kaldırılmazsa yazdırılır:** - `matchedElements` — list of DOM nodes matched by the selector - `styleApplied` — parsed rule style declaration related to the selector **Örnekler** -**Debugging a single selector:** +**Tek bir seçicide hata ayıklama:** -When the value of the `debug` property is `true`, only information about this selector will be shown in the browser console. +`debug` özelliğinin değeri `true` olduğunda, tarayıcı konsolunda yalnızca bu seçiciyle ilgili bilgiler gösterilecektir. ```adblock #$?#.banner { display: none; debug: true; } @@ -3725,15 +3825,15 @@ When the value of the `debug` property is `true`, only information about this se **Global hata ayıklamayı etkinleştirme:** -When the value of the `debug` property is `global`, the console will display information about all extended CSS selectors that have matches on the current page, for all the rules from any of the enabled filters. +`debug` özelliğinin değeri `global` olduğunda, konsol, etkinleştirilmiş filtrelerin herhangi birindeki tüm kurallar için geçerli sayfada eşleşen tüm genişletilmiş CSS seçicileri hakkında bilgi görüntüler. ```adblock #$?#.banner { display: none; debug: global; } ``` -**Testing extended selectors without AdGuard** +**Genişletilmiş seçicileri AdGuard olmadan test etme** -ExtendedCss can be executed on any page without using any AdGuard product. In order to do that you should copy and execute the following code in a browser console: +ExtendedCss, herhangi bir AdGuard ürünü kullanılmadan herhangi bir sayfada yürütülebilir. Bunu yapmak için aşağıdaki kodu bir tarayıcı konsolunda kopyalayıp çalıştırmalısınız: ```js !function(e,t,d){C=e.createElement(t),C.src=d,C.onload=function(){alert("ExtendedCss loaded successfully")},s=e.getElementsByTagName(t)[0],s?s.parentNode.insertBefore(C,s):(h=e.getElementsByTagName("head")[0],h.appendChild(C))}(document,"script","https://AdguardTeam.github.io/ExtendedCss/extended-css.min.js"); @@ -3741,7 +3841,7 @@ ExtendedCss can be executed on any page without using any AdGuard product. In or Alternatively, install the [ExtendedCssDebugger userscript](https://github.com/AdguardTeam/Userscripts/blob/master/extendedCssDebugger/extended-css.debugger.user.js). -Now you can now use the `ExtendedCss` from global scope, and run its method [`query()`](https://github.com/AdguardTeam/ExtendedCss#extended-css-query) as `Document.querySelectorAll()`. +Artık global kapsamdan `ExtendedCss` kullanabilir ve [`query()`](https://github.com/AdguardTeam/ExtendedCss#extended-css-query) yöntemini `Document.querySelectorAll()` olarak çalıştırabilirsiniz. **Örnekler** @@ -3752,11 +3852,11 @@ const selector = 'div.block:has=(.header:matches-css(after, content: Ads))'; ExtendedCss.query(selector); ``` -### Debugging scriptlets {#debug-scriptlets} +### Hata ayıklama komut dosyaları {#debug-scriptlets} -If you are using AdGuard Browser Extension and want to debug a [scriptlet](#scriptlets) or a [trusted scriptlet](#trusted-scriptlets) rule, you can get additional information by opening the Filtering log. In that case, scriptlets will switch to debug mode and there will be more information in the browser console. +AdGuard Tarayıcı Uzantısı kullanıyorsanız ve bir hata ayıklamak istiyorsanız [komut dosyası](#scriptlets) veya bir [güvenilir komut dosyası](#trusted-scriptlets) kuralı varsa, Filtreleme günlüğünü açarak ek bilgi alabilirsiniz. Bu durumda, komut dosyaları hata ayıklama moduna geçer ve tarayıcı konsolunda daha fazla bilgi bulunur. -The following scriptlets are especially developed for debug purposes: +Aşağıdaki komut dosyaları özellikle hata ayıklama amacıyla geliştirilmiştir: - [`debug-current-inline-script`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#debug-current-inline-script) - [`debug-on-property-read`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#debug-on-property-read) @@ -3766,20 +3866,61 @@ The following scriptlets are especially developed for debug purposes: - [`log-eval`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#log-eval) - [`log`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#log) -The following scriptlets also may be used for debug purposes: +Aşağıdaki komut dosyaları hata ayıklama amacıyla da kullanılabilir: - [`json-prune`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#json-prune) - [`prevent-fetch`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#prevent-fetch) - [`prevent-requestAnimationFrame`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#prevent-requestanimationframe) - [`prevent-setInterval`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#prevent-setinterval) - [`prevent-setTimeout`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#prevent-settimeout) -- [`prevent-window-open`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#prevent-window-open) with specified `replacement` parameter +- Belirtilen `replacement` parametresiyle [`prevent-window-open`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#prevent-window-open) - [`prevent-xhr`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-scriptlets.md#prevent-xhr) - [`trusted-replace-fetch-response`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-trusted-scriptlets.md#trusted-replace-fetch-response) - [`trusted-replace-xhr-response`](https://github.com/AdguardTeam/Scriptlets/blob/master/wiki/about-trusted-scriptlets.md#trusted-replace-xhr-response) -## Good luck with creating filters +## Filtreler oluştururken bol şanslar + +Kendi reklam filtrelerinizi oluşturma konusunda size bol şans diliyoruz. + +Kendi filtrelerinizi doğru bir şekilde nasıl oluşturacağınız konusunda bir tavsiyeye ihtiyacınız varsa, forumumuzda kendi filtreleme kurallarınızı yazmaya adanmış [özel bir bölüm](https://forum.adguard.com/index.php?forums/69/) vardır. + +* * * + +## Uyumluluk tabloları açıklaması {#compatibility-tables-legend} + +### Ürün kısayolları {#what-product} + +1. `CoreLibs uygulamaları` — Windows, Mac, Android için AdGuard +1. `Chromium için AdGuard` — Chrome ve diğer Chromium tabanlı tarayıcılar için AdGuard Tarayıcı Uzantısı, örneğin yeni Microsoft Edge, Opera +1. `Firefox için AdGuard` — Firefox için AdGuard Tarayıcı Uzantısı +1. `iOS için AdGuard` — iOS için AdGuard ve iOS Pro için AdGuard (mobil Safari tarayıcısı için) +1. `Safari için AdGuard` — Masaüstü Safari tarayıcısı için AdGuard +1. `AdGuard İçerik Engelleyici` — Android mobil tarayıcılar için İçerik Engelleyici: Samsung Internet ve Yandex Browser + +### Uyumluluk kısayolları {#what-compatibility} + +:::not + +- ✅ — 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" -We wish you luck with creating you own ad filters. +[cl-apps]: #what-product "Windows, Mac, Android için AdGuard" +[ext-chr]: #what-product "AdGuard Browser Extension for Chrome and other Chromium-based browsers" +[ext-ff]: #what-product "AdGuard Browser Extension for Firefox" +[ext-ff]: #what-product "Firefox için AdGuard Tarayıcı Uzantısı" +[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" -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. +[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-safari/extensions.md b/i18n/uk/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/uk/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/uk/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/vi/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/vi/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/vi/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/vi/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/vi/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..2d69f4beab3 --- /dev/null +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +这篇文章是关于 Safari 版的 AdGuard,它只能保护用户的 Safari 浏览器。 要保护整个设备, [请下载 AdGuard 应用程序](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index d6e4627c823..b1e0667217a 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..757aade1a4d 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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-safari/extensions.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md new file mode 100644 index 00000000000..56301e0035c --- /dev/null +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/adguard-for-safari/extensions.md @@ -0,0 +1,66 @@ +--- +title: Safari extensions +sidebar_position: 3 +--- + +:::info + +This article is about AdGuard for Safari, which safeguards only your Safari browser. To protect your entire device, [download the AdGuard app](https://adguard.com/download.html?auto=true) + +::: + +## What Safari extensions are + +Safari extensions are small software programs that add functionality to the Safari web browser. They allow users to customize and enhance their browsing experience by adding features that are not natively built into the browser. AdGuard for Safari uses extensions primarily to apply filtering rules on websites opened in Safari. + +## How it works + +To block ads, trackers, and annoyances on websites, AdGuard uses filtering rules. The rules from AdGuard's and your custom filters are converted into ones comprehensible by Safari and are integrated into 6 Safari extensions: + +– AdGuard General – AdGuard Privacy – AdGuard Social – AdGuard Security – AdGuard Other + +Each content-blocking extension can include up to 150,000 active filtering rules. The number of rules within most filter groups does not surpass 150,000. However, if you activate too many language-specific or custom filters, you might exceed the limit. In such cases, random rules that are over the limit will be automatically disabled, which may lead to incorrect blocking. **We strongly recommend activating only the filters you need**. + +There are also two extensions responsible for other features: + +– *AdGuard Safari Icon* enables AdGuard's icon next to the search bar in Safari – *AdGuard Advanced Blocking* allows using advanced rules to block complex ads + +![Safari extensions](https://uploads.adguard.org/safari_extensions.png) + +More on each extension below. + +## Content-blocking extensions + +*AdGuard General* applies rules from filters that you can find in *Filters* → *Ad blocking* and *Filters* → *Language-specific*. This extension focuses on comprehensive ad blocking and includes filters for ads in specific languages. + +*AdGuard Privacy* applies rules from filters located in *Filters* → *Privacy*. It blocks tracking mechanisms and ensures that your browsing activity remains private. + +*AdGuard Social* applies rules from filters that can be found in *Filters* → *Social Widgets* and *Filters* → *Annoyances*. It blocks popups, social media buttons, online assistant windows, and other elements on web pages that you might find annoying. + +*AdGuard Security* applies rules from filters under *Filters* → *Security*. This extension identifies and blocks potentially harmful elements, safeguarding users from malicious content. + +*AdGuard Other* applies rules from filters that that don't fall under the above-mentioned categories and that are located in *Filters* → *Other*: *Filter unblocking search ads and self-promotion*, *AdGuard DNS filter*, and *AdGuard Experimental filter*. + +*AdGuard Custom* applies rules from filters that you add on your own to *Custom filters*. + +User rules and allowlist rules are included into every extension. + +## Other extensions + +*AdGuard Safari Icon* enables the AdGuard icon next to the search bar. It's useful if you want to quickly set up protection on a particular website or block ads manually. + +*AdGuard Advanced blocking* contains advanced rules that aren't converted into the format supported by Safari. This includes CSS rules, CSS selectors, and scriptlets that allow AdGuard to block complex ads — for example, on YouTube. + +## How to manage Safari extensions + +1. Open Safari and click *Safari* in the upper left corner of the screen to expand the menu. ![Safari settings *mobile](https://cdn.adtidy.org/blog/new/sxaqgfsafari_settings.png) +1. Click *Preferences...* +1. Select *Extensions*. ![Extensions tab](https://cdn.adtidy.org/blog/new/ocofdextensions_tab.png) + +## Why some extensions require permissions + +When enabling some Safari extensions, you might notice that they ask for **access to web page content** and **access to browsing history**. Here's why AdGuard for Safari needs them: + +– Access to web page content is required for manual ad blocking and advanced blocking rules to work correctly – Access to browsing history is required to check the protection status on websites and determine which advanced rules should be applied + +We do not use this data for any other person or share it with anyone. For more info, you can consult our [Privacy policy](https://adguard.com/privacy.html). diff --git a/i18n/zh-TW/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md b/i18n/zh-TW/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md index 5b4e031c3dd..8020ecd938e 100644 --- a/i18n/zh-TW/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md +++ b/i18n/zh-TW/docusaurus-plugin-content-docs/current/adguard-for-safari/installation.md @@ -25,7 +25,7 @@ AdGuard for Safari is a free app presented on the App Store. To install it on yo :::note -Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon in the tray menu. However, we recommend enabling all of them. +Not all extensions are required for AdGuard for Safari to function correctly. For instance, checking the *Icon* extension enables the icon next to the search bar. However, we recommend enabling all of them. ::: 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..f52810c7171 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** @@ -494,15 +520,15 @@ This modifier limits the rule scope to requests that use the specified set of HT - `@@||evil.com$method=get` unblocks only GET requests to `evil.com`. - `@@||evil.com$method=~post` unblocks any requests to `evil.com` except POST. -:::note +:::caution Restrictions -Rules with mixed value restriction are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. +Rules with mixed negated and not negated values are considered invalid. So, for example, the rule `||evil.com^$method=get|~head` will be rejected. ::: :::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. @@ -3519,7 +3617,9 @@ domain.com##div.ad #### Safari affinity {#safari-affinity-directive} -Safari is notoriously known for its harsh 150k max limit for filtering rules in content blockers. But in AdGuard for Safari and AdGuard for iOS max rule count is raised to 300k by splitting them into several content blockers. Generally, several filters categories are more or less independent, so there is such content blockers with such categories included: +Safari's limit for each content blocker is 150,000 active rules. But in AdGuard for Safari and AdGuard for iOS, we've split the rules into 6 content blockers, thus increasing the rule limit to 900,000. + +Here is the composition of each content blocker: - AdGuard General — Ad Blocking, Language-specific - AdGuard Privacy — Privacy @@ -3528,9 +3628,9 @@ Safari is notoriously known for its harsh 150k max limit for filtering rules in - AdGuard Other — Other - AdGuard Custom — Custom -`User rules` and `Allowlist` are added to every content blocker. +User rules and allowlist are added to every content blocker. -The main issue with using multiple content blockers is that rules inside these content blockers cannot influence each other. This may lead to different unexpected issues. So filters maintainers may use `!#safari_cb_affinity` to define Safari content blockers affinity for the rules inside of the directive block. +The main issue with using multiple content blockers is that the rules within these content blockers cannot influence each other. This may lead to different unexpected issues. So filter maintainers may use `!#safari_cb_affinity` to define Safari content blocker affinity for the rules inside of the directive block. **Syntax** @@ -3783,3 +3883,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