All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Updated @adguard/agtree to
v3.0.0
. - Updated @adguard/scriptlets to
v2.0.1
. - Updated @adguard/tsurlfilter to
v3.1.0-alpha.7
- Updated @adguard/extended-css to
v2.0.59
- Once allowlisted tab considers all following websites in the tab as allowlisted AdguardBrowserExtension#3020.
- A rule from a disabled filter list disables another rule AdguardBrowserExtension#3002.
- Matching of
companyCategoryName
for subdomains.
2.4.0-alpha.8 - 2024-12-23
- Remade JS rules injections in MV3:
- use
chrome.scripting
API for injecting functions for script rules from the pre-built filters, - use script tag injection only for script rules manually added by users — rules from User rules and Custom filters.
- use
2.0.7 - 2024-11-20
- Memory leak caused by multiple script injections on the same pages after an event page in Firefox restarts in MV2 AdguardBrowserExtension#2594.
2.4.0-alpha.7 - 2024-11-20
- Memory leak caused by multiple script injections on the same pages after a service worker or event page restart AdguardBrowserExtension#2594.
2.0.6 - 2024-11-19
- Updated
@adguard/tsurlfilter
tov3.0.7
.
2.0.5 - 2024-11-02
- Updated
@adguard/agtree
tov2.1.3
. - Updated
@adguard/tsurlfilter
tov3.0.6
.
2.4.0-alpha.6 - 2024-10-18
- Incorrect caching strategy for filters and rulesets.
2.4.0-alpha.5 - 2024-10-17
- Allowlist determination for a new tab.
2.4.0-alpha.4 - 2024-10-16
- Updated @adguard/tsurlfilter to
v3.1.0-alpha.7
.
- Correct export of
EXTENDED_CSS_VERSION
for MV3 version.
2.0.4 - 2024-10-16
- Not unique
eventId
onApplyPermissionsRule
filtering log events.
2.4.0-alpha.3 - 2024-10-09
- Updated @adguard/logger to
v1.1.0
.
- MV3 extension cannot apply rules to
about:blank
iframes AdguardBrowserExtension#2975. - JS rules are blocked by Trusted Types on some websites AdguardBrowserExtension#2980.
- Scriptlets logging does not work AdguardBrowserExtension#2977.
2.3.0-alpha.1 - 2024-10-02
- Added new field to MV3 config:
quickFixesRules
which will be applied to the dynamic rules. - Updated @adguard/tsurlfilter to
v3.1.0-alpha.5
. - Updated @adguard/scriptlets to
v1.12.1
.
companyCategoryName
property in filtering logApplyBasicRuleEvent
for$redirect
rules #137.isAssuredlyBlocked
property in filtering logApplyBasicRuleEvent
for definitely blocked requests im MV3.
2.0.3 - 2024-09-26
- Updated @adguard/agtree to
v2.1.2
. - Updated @adguard/tsurlfilter to
v3.0.5
. - Updated @adguard/scriptlets to
v1.12.1
.
2.2.0-alpha.1 - 2024-08-30
- Filtering log
ApplyBasicRuleEvent
now containscompanyCategoryName
property which represents a matched company fromAdguardTeam/companiesdb
'strackers.json
database in MV3. It allows to determinate the tracker category for the blocked request. - Inject scriptlets separately to avoid CSP issues in MV3.
- Updated @adguard/scriptlets to
v1.11.27
.
- Incorrect applying allowlist #139.
2.0.2 - 2024-08-29
- Updated @adguard/tsurlfilter to
v3.0.2
. - Updated @adguard/scriptlets to
v1.11.27
.
2.0.1 - 2024-08-27
- Redirect rule causes a CSP error instead of redirecting AdguardBrowserExtension#2913.
2.0.0 - 2024-08-15
- Stealth Mode support for MV3. New required
gpcScriptUrl
andhideDocumentReferrerScriptUrl
configuration properties are provided to specify the path to stealth content scripts. - Content Script for setting GPC signal bundled to separate module
@adguard/tswebextension/mv3/gpc
. - Content Script for hiding Document Referrer bundled
to separate module
@adguard/tswebextension/mv3/hideDocumentReferrer
. - Possibility to retrieve AST for dynamically generated rules via the
retrieveDynamicRuleNode
method. - Support for
$cookie
modifier in MV3 viabrowser.cookies
API and content-script. - Support for disabling specific
$stealth
options:searchqueries
,donottrack
,referrer
,xclientdata
,1p-cookie
and3p-cookie
#100. - Export
EventChannel
utility class in MV3 build.
- Filtering log to not reload on History API navigation AdguardBrowserExtension#2598.
- Extension to stop injecting content-script into xml documents to prevent pretty printer breakage in Firefox AdguardBrowserExtension#2194.
- Configuration interface now expects an AGTree byte buffer instead of a raw filter list.
- CSS hits counter uses rule index instead of rule text.
- Filtering log events are simplified and now contain only the necessary information, not the entire rule.
- Allowlist rule generation logic is moved to @adguard/tsurlfilter package.
- Updated @adguard/tsurlfilter to
v3.0.0
. - Updated @adguard/scriptlets to
v1.11.6
.
- Handling of internal urls (e.g
view-source:...
) AdguardBrowserExtension#2549. - Blocked ads count leaking between websites AdguardBrowserExtension#2080.
- Breakage of cookie string in Firefox and unnecessary cookie serialization AdguardBrowserExtension#2552.
- Use data URL-based redirect resources where possible AdguardBrowserExtension#2278.
$permissions
modifier service now correctly handles subdocuments and exceptions.- Applying
$cookie
rules on the content-script side. $csp
,$removeparam
and$removeheader
allowlist rules not being published as filtering log events.- Detection of popup tabs AdguardBrowserExtension#2890.
1.0.32 - 2024-08-01
- Updated @adguard/tsurlfilter to
v2.2.23
. - Updated @adguard/scriptlets to
v1.11.16
.
2.1.0-alpha.3 - 2024-08-01
- Applied cosmetic rules now logging in the
mv3
build.
2.0.0-beta.0 - 2024-07-30
- @adguard/agtree dependency now used consistently in the project.
2.0.0-alpha.2 - 2024-07-17
- Updated @adguard/tsurlfilter to
v3.0.0-alpha.1
. - Updated @adguard/scriptlets to
v1.11.6
.
2.0.0-alpha.1 - 2024-07-08
- Export
EventChannel
utility class in MV3 build.
1.0.30 - 2024-07-17
- Updated @adguard/tsurlfilter to
v2.2.22
.
1.0.29 - 2024-07-12
- Updated @adguard/tsurlfilter to
v2.2.21
. - Updated @adguard/scriptlets to
v1.11.6
.
1.0.28 - 2024-07-08
- CssHitsCounter logs elements blocked by elemhide rules.
1.0.27 - 2024-07-08
- CssHitsCounter can log elements without converting to string CoreLibs#180.
1.0.26 - 2024-07-01
- Updated @adguard/tsurlfilter to
v2.2.20
. - Updated @adguard/scriptlets to
v1.11.1
.
1.0.25 - 2024-05-23
- Extension injects scripts every time the extension's background event page wakes up AdguardBrowserExtension#2792
1.0.24 - 2024-04-15
- Script rules are not applied in Firefox due to CSP AdguardBrowserExtension#1733.
1.0.23 - 2024-04-15
- Error logging level on setting cookie with mismatched domain and request URL AdguardBrowserExtension#2683.
1.0.21 - 2024-03-29
- Do not block "Should collapse" mechanism with
$popup
rules.
1.0.20 - 2024-03-28
- Analysis of
$popup
rules (in addition to the basic one) to determine the result of blocking a request AdguardBrowserExtension#2620, AdguardBrowserExtension#2728. - Updated @adguard/tsurlfilter to
v2.2.17
. - Updated @adguard/scriptlets to
v1.10.25
.
1.0.18 - 2024-03-25
- Improved assistant iframe checking for cosmetic rules injection AdguardBrowserExtension#1848.
1.0.17 - 2024-03-25
- Assistant iframe styles are affected by cosmetic rules specific for websites AdguardBrowserExtension#1848.
1.0.16 - 2024-03-01
$popup
should not disable simple blocking rule AdguardBrowserExtension#2728.
1.0.15 - 2024-02-22
$popup
modifier block other types of resources AdguardBrowserExtension#2723.
1.0.14 - 2024-02-13
- Filtering engine now uses the new
BufferRuleList
provided by @adguard/tsurlfilter to improve performance and memory usage.
1.0.13 - 2024-02-13
- New cleanup mechanism for
RequestContextStorage
to prevent memory leaks during internal redirects.
- Updated @adguard/tsurlfilter to
v2.2.13
. - Updated @adguard/scriptlets to
v1.10.1
.
- Prevent memory leaks due to V8 optimizations of substring operations.
1.0.12 - 2024-02-07
- Applying of
$all
modifier rules AdguardBrowserExtension#2620.
1.0.11 - 2024-02-06
- Incorrect handling hook
webNavigation.onCommitted
for Opera with force recalculating matching result. - Correct export of
EXTENDED_CSS_VERSION
for mv2 version.
1.0.10 - 2024-01-27
- Export correct types for TS.
- Exclude usage of ExtendedCSS in common to prevent errors in background in the MV.
1.0.9 - 2024-01-25
- Correct usage of
setConfiguration
.
1.0.8 - 2023-12-27
webNavigation.onCommitted
event handler to take into account Opera event firing bug.- Updated @adguard/tsurlfilter to
v2.2.9
. - Updated @adguard/scriptlets to
v1.9.105
.
1.0.6 - 2023-12-19
- Stealth options that are applied to the document can now be disabled by a
$stealth
rule AdguardBrowserExtension#2648.
1.0.5 - 2023-12-08
Do Not Track
andHide Referrer from third parties
ignoring global Stealth mode toggle.
1.0.4 - 2023-12-08
- Session storage error in old browsers AdguardBrowserExtension#2636.
1.0.3 - 2023-12-08
- Incorrect path for
typings
inpackage.json
.
1.0.2 - 2023-12-07
- Library version number to the exports AdguardBrowserExtension#2237.
- Updated @adguard/extended-css to
v2.0.56
. - Updated @adguard/tsurlfilter to
v2.2.8
.
- Remove referrer from the document.referrer AdguardBrowserExtension#1844.
1.0.1 - 2023-12-06
- HTML ($$) rules break encoding on some websites AdguardBrowserExtension#2249.
1.0.0 - 2023-12-01
- New
TsWebExtension.initStorage
method to initialize persistent values for the background script. - New
createTsWebExtension
function to createTsWebExtension
instance.
- [BREAKING CHANGE] In preparation for using event-driven background scripts,
we started using a session store to persist application context on restart.
Since the extension session store CRUD operations are asynchronous, we added
protection against reading the context before initialization to avoid
unexpected behavior. Some code that depends on this restored data may be
called before the
start
method to prepare theconfiguration
, so we split the initialization process into two parts: the newinitStorage
method, which is called as soon as possible and allows access to the actual context before directly starting the filtering, and thestart
method, which initializes the filtering process. - [BREAKING CHANGE]
TsWebExtension
constructor now accepts submodules as arguments. To get theTsWebExtension
instance withwebAccessibleResources
param, use the newcreateTsWebExtension
method.
0.4.9 - 2023-11-30
- API
settings.debugScriptlets
property andsetDebugScriptlets()
method for its setting AdguardBrowserExtension#2584.
- Updated @adguard/tsurlfilter to
v2.2.7
. - Updated @adguard/scriptlets to
v1.9.101
.
0.4.8 - 2023-11-29
MessageHandlerMV2
type is exported now.
0.4.7 - 2023-11-21
- Fix cosmetic apply logging.
0.4.6 - 2023-11-16
- Support for
POST
requests to$removeparam
modifier #99.
- Fix 'storage not initialized' error on extension install.
0.4.5 - 2023-11-15
- Allowlist wildcard support AdguardBrowserExtension#2020.
- Updated @adguard/tsurlfilter to
v2.2.6
. - Updated @adguard/scriptlets to
v1.9.96
.
0.4.4 - 2023-11-13
- Updated @adguard/tsurlfilter to
v2.2.5
. - Updated @adguard/scriptlets to
v1.9.91
.
0.4.3 - 2023-11-09
- Ads displayed on the first visit on 'pikabu.ru' AdguardBrowserExtension#2571.
- Memory leaks associated with storing refs to old filter lists in context of frames.
- Added new
ExtensionStorage
,PersistentValueContainer
,createExtensionStorageDecorator
interfaces and for restoring data in event-driven background scripts AdguardBrowserExtension#2286.
0.4.2 - 2023-10-17
- Removed grouping rules with
\r\n
for extended css rules which cause its error in MV3.
0.4.1 - 2023-10-13
- Updated @adguard/tsurlfilter to
v2.2.1
. - Updated @adguard/scriptlets to
v1.9.83
.
0.4.0 - 2023-10-12
- Support for $badfilter rules to Declarative Converter.
0.3.22 - 2023-10-02
- AdGuard v4.2.168 is not working in the Firefox after update AdguardBrowserExtension#2501.
0.3.21 - 2023-09-25
- Incorrect logging and applying of
$removeheader
allowlist rules. - Proceed anyway is not working for more than two level domains AdguardBrowserExtension#2497.
0.3.20 - 2023-09-19
- CSP
trusted-types
directive modifying for response headers AdguardBrowserExtension#2068.
0.3.19 - 2023-09-18
$csp
,$removeparam
and$removeheader
allowlist rules not being published as filtering log events.- Fixed cosmetic rules injection into a cached subdocument AdguardBrowserExtension#2420, AdguardBrowserExtension#2190, AdguardBrowserExtension#2328.
0.3.18 - 2023-09-13
- Do not block a tab loading by
$popup
modifier rule on direct url navigation AdguardBrowserExtension#2449.
0.3.17 - 2023-09-13
- New
requestUrl
,frameUrl
andrequestType
fields inApplyBasicRuleEvent
.
- Tab title is now correctly updated on url change when the document does not provide it itself AdguardBrowserExtension#2428.
- Filter id for StealthApi to display Stealth Mode cookie events in the Filtering Log properly AdguardBrowserExtension#2487.
0.3.16 - 2023-09-05
- Do not apply cosmetic rules to extension pages while fallback processing AdguardBrowserExtension#2459.
0.3.15 - 2023-09-05
- Redirects are not included into tab's blocked requests count AdguardBrowserExtension#2443.
0.3.14 - 2023-09-05
- Domains from the allowlist are not properly escaped before being passed into the regular expression rules AdguardBrowserExtension#2461.
- Cosmetic rule false positive applying when tab context changed while injection retry AdguardBrowserExtension#2459.
0.3.13 - 2023-08-25
- Updated @adguard/tsurlfilter to
v2.1.11
. - Updated @adguard/scriptlets to
v1.9.72
.
0.3.12 - 2023-08-23
- Incorrect order of
onBeforeRequest
handlers. - Blocked csp reports do not increment the blocked requests counter.
0.3.11 - 2023-08-21
- Updated @adguard/tsurlfilter to
v2.1.10
. - Updated @adguard/scriptlets to
v1.9.70
.
- Applying
$cookie
rules on the content-script side.
0.3.10 - 2023-08-18
- Blocking third-party requests with
csp_report
content-type. - Handling discarded tabs replacement on wake up.
- Do not expose JS rules in global page scope.
0.3.9 - 2023-08-10
- Updated @adguard/tsurlfilter to
v2.1.7
.
0.3.8 - 2023-08-04
- Updated @adguard/tsurlfilter to
v2.1.6
. - Updated @adguard/scriptlets to
v1.9.62
.
0.3.7 - 2023-07-21
- Updated @adguard/tsurlfilter to
v2.1.5
. - Updated @adguard/scriptlets to
v1.9.57
.
- Duplicate
eventId
of filtering events.
0.3.6 - 2023-07-11
- Rules with the
$popup
modifier were ignored and showed an incorrect dummy. page instead of closing the tab. - In some cases, rules with the
$document
modifier did not show the dummy page.
0.3.5 - 2023-07-11
- Cosmetic rule logging.
0.3.4 - 2023-07-11
- Support of $elemhide, $specifichide and $generichide modifiers.
- Cosmetic rule matching for frames loaded from the service worker cache.
0.3.3 - 2023-06-19
- Updated @adguard/tsurlfilter to
v2.1.2
.
0.3.2 - 2023-06-14
- Updated @adguard/tsurlfilter to
v2.1.1
.
0.3.1 - 2023-06-15
- new
DocumentApi
class, with frame-matching taking into account the state of theAllowlist
.
AllowlistApi
renamed toAllowlist
.matchFrame
method moved toDocumentApi
class.
- Extra headers handling in chromium browsers.
- Filtering log update on cached pages reload.
0.3.0 - 2023-06-14
- Updated @adguard/tsurlfilter to
v2.1.0
.
0.2.8 - 2023-06-13
logLevel
configuration property type tostring
.RequestContextStorage
to extend fromMap
.
record
,find
methods andonUpdate
,onCreate
events fromRequestContextStorage
.
0.2.6 - 2023-06-06
- Updated @adguard/scriptlets to
v1.9.37
.
0.2.5 - 2023-06-06
- Tab context matching for pages with cached document page.
0.2.4 - 2023-06-05
hideRequestInitiatorElement
function return more accurate css selectorsrc
attribute value for first party requests.ElementCollapser
inject styles via isolated style tag.
0.2.3 - 2023-05-31
- Script rules injection.
0.2.2 - 2023-05-29
- New
logLevel
optional property for MV2 configuration to control logging levels.
verbose
MV2 configuration property is now optional.
0.2.0 - 2023-05-23
- New MV2 API methods for configuration updating without engine restart:
setFilteringEnabled
,setCollectHitStats
,setStealthModeEnabled
,setSelfDestructFirstPartyCookies
,setSelfDestructThirdPartyCookies
,setSelfDestructThirdPartyCookies
,setSelfDestructFirstPartyCookiesTime
,setSelfDestructThirdPartyCookiesTime
,setHideReferrer
,setHideSearchQueries
,setBlockChromeClientData
,setSendDoNotTrack
,setBlockWebRTC
.
- Updated
getMessageHandler
API method return type. start
,update
andsetFilteringEnabled
API methods now flush browser in-memory cache. This change improve filtering on pages with service workers and inactive tabs.
- Stealth module correctly sets browser privacy network settings based on
blockWebRTC
,stealthModeEnabled
andfilteringEnabled
options. - unique
eventId
forFilteringEventType.JsInject
events.
0.1.4 - 2023-04-18
- The cookies lifetime in Stealth Mode does not apply after the engine is started, only after restarting.
- Incorrect work of $cookie rules: incorrect parsing of
domain
andpath
fields leads to errors when using browser.cookies and creating multiple "child" cookies for each sub-request with a more specific path, e.g. request to '/assets/script.js' from '/' will create a new cookie for '/assets/'. - Wrong expirationDate for cookies.
- Applying $cookie rules to the requests before sending them to a server in the onBeforeSendHeaders hook.
0.1.3 - 2023-04-17
- Updated @adguard/extended-css to
v2.0.52
. - Updated @adguard/scriptlets to
v1.9.7
.
0.1.2 - 2023-04-11
- Separated export of CssHitsCounter to better tree shaking on external applications.
0.1.1 - 2023-04-04
- Improved injection algorithm for cosmetic rules (js and css). logic using the Finite State Machine to avoid double injections with the previous boolean flag scheme.
- Set injectScript and injectCss error to debug level.
0.1.0 - 2023-03-31
- Updated @adguard/tsurlfilter to
v2.0
.
0.0.68 - 2023-03-24
- Described event flow scheme for webRequestModule.
- Changed enums according to our guideline.
0.0.67 - 2023-03-23
- Order of injecting scripts with setDomSignal.
0.0.66 - 2023-03-14
- Executing of html and replace rules for Firefox.
0.0.65 - 2023-03-10
- Executing of scriptlets rules for Firefox.
- Stricter checking for non local JS rules for Firefox AMO.
0.0.64 - 2023-03-10
- Updated @adguard/scriptlets to
v1.9.1
.
- Cosmetic rules applying if CssHitsCounter is disabled.
- Mark requests from navigation from address bar as first-party requests.
0.0.63 - 2023-02-17
- Updated @adguard/extended-css to
v2.0.51
.
0.0.62 - 2023-02-10
- Added cosmetic rules injection in tabs opened before API initialization.
- Fix js rule injections via WebRequest API.
- Fix extended css rule injections via content-script on API initialization. Content-script wait for engine start before processing.
- Fix css hit counter enabling.
Now, it is initialized only if
collectHitStats
configuration prop is true.
0.0.61 - 2023-02-07
- Support for browser.windows.onWindowFocusChanged to make browser.tabs.onActivated event calls work better when focus changes between windows.
0.0.60 - 2023-02-03
- Updated @adguard/extended-css to
v2.0.49
.
0.0.59 - 2023-02-03
- Updated @adguard/extended-css to
v2.0.45
.
0.0.58 - 2023-02-02
- When opens phishing or malware site, extension will open new tab in the standard window with information about blocked domain and possible actions.
0.0.57 - 2023-01-20
- The order of imports to avoid side effects on tree shaking.
- Made load of AdGuard Assistant lazy to decrease size of content-script bundle.
- Fixed allowlist api rule generation and matching.
0.0.56 - 2023-01-12
- Fixed simultaneous increase of package numbers for packages tsurlfilter and tswebextension in the branch epic.
- Fixed working with DNT-headers and GPC from stealth mode.
- Fixed js and css injection error handling.
- Fixed request events initialization.
- Fixed memory leaks in the tests.
- Previous url from tab's metadata.
- Merged changed from master branch.
0.0.47 - 2022-12-27
- Allowlist rule priority.
- Simple support of
$jsonprune
.
- Unused injectExtCss method in the CosmeticAPI.
0.0.45 - 2022-12-26
- Recovered work of the blocking scriptlets
click2load.html
.
- Updated @adguard/scriptlets to
v1.7.20
.
0.0.44 - 2022-12-23
- Merged changed from master branch.
- Support of $webrtc rules.
- JS and CSS injection error handling
- Request events initialization