Skip to content

Latest commit

 

History

History
1260 lines (732 loc) · 37.6 KB

CHANGELOG.md

File metadata and controls

1260 lines (732 loc) · 37.6 KB

TSWebExtension Changelog

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.

Unreleased

Changed

Fixed

2.4.0-alpha.8 - 2024-12-23

Changed

  • 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.

2.0.7 - 2024-11-20

Fixed

  • 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

Fixed

  • 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 to v3.0.7.

2.0.5 - 2024-11-02

Changed

  • Updated @adguard/agtree to v2.1.3.
  • Updated @adguard/tsurlfilter to v3.0.6.

2.4.0-alpha.6 - 2024-10-18

Fixed

  • Incorrect caching strategy for filters and rulesets.

2.4.0-alpha.5 - 2024-10-17

Fixed

  • Allowlist determination for a new tab.

2.4.0-alpha.4 - 2024-10-16

Changed

Fixed

  • Correct export of EXTENDED_CSS_VERSION for MV3 version.

2.0.4 - 2024-10-16

Fixed

  • Not unique eventId on ApplyPermissionsRule filtering log events.

2.4.0-alpha.3 - 2024-10-09

Changed

Fixed

2.3.0-alpha.1 - 2024-10-02

Changed

Added

  • companyCategoryName property in filtering log ApplyBasicRuleEvent for $redirect rules #137.
  • isAssuredlyBlocked property in filtering log ApplyBasicRuleEvent for definitely blocked requests im MV3.

2.0.3 - 2024-09-26

Changed

2.2.0-alpha.1 - 2024-08-30

Changed

  • Filtering log ApplyBasicRuleEvent now contains companyCategoryName property which represents a matched company from AdguardTeam/companiesdb's trackers.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.

Fixed

  • Incorrect applying allowlist #139.

2.0.2 - 2024-08-29

Changed

2.0.1 - 2024-08-27

Fixed

2.0.0 - 2024-08-15

Added

  • Stealth Mode support for MV3. New required gpcScriptUrl and hideDocumentReferrerScriptUrl 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 via browser.cookies API and content-script.
  • Support for disabling specific $stealth options: searchqueries, donottrack, referrer, xclientdata, 1p-cookie and 3p-cookie #100.
  • Export EventChannel utility class in MV3 build.

Changed

  • 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.

Fixed

1.0.32 - 2024-08-01

Changed

2.1.0-alpha.3 - 2024-08-01

Added

  • Applied cosmetic rules now logging in the mv3 build.

2.0.0-beta.0 - 2024-07-30

Fixed

2.0.0-alpha.2 - 2024-07-17

Changed

2.0.0-alpha.1 - 2024-07-08

Added

  • Export EventChannel utility class in MV3 build.

1.0.30 - 2024-07-17

Changed

1.0.29 - 2024-07-12

Changed

1.0.28 - 2024-07-08

Fixed

  • CssHitsCounter logs elements blocked by elemhide rules.

1.0.27 - 2024-07-08

Changed

  • CssHitsCounter can log elements without converting to string CoreLibs#180.

1.0.26 - 2024-07-01

Changed

1.0.25 - 2024-05-23

Fixed

1.0.24 - 2024-04-15

Fixed

1.0.23 - 2024-04-15

Changed

1.0.21 - 2024-03-29

Fixed

  • Do not block "Should collapse" mechanism with $popup rules.

1.0.20 - 2024-03-28

Changed

1.0.18 - 2024-03-25

Fixed

1.0.17 - 2024-03-25

Fixed

1.0.16 - 2024-03-01

Changed

1.0.15 - 2024-02-22

Fixed

1.0.14 - 2024-02-13

Changed

  • Filtering engine now uses the new BufferRuleList provided by @adguard/tsurlfilter to improve performance and memory usage.

1.0.13 - 2024-02-13

Added

  • New cleanup mechanism for RequestContextStorage to prevent memory leaks during internal redirects.

Changed

Fixed

  • Prevent memory leaks due to V8 optimizations of substring operations.

1.0.12 - 2024-02-07

Fixed

1.0.11 - 2024-02-06

Fixed

  • 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

Fixed

  • 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

Changed

  • Correct usage of setConfiguration.

1.0.8 - 2023-12-27

Changed

1.0.6 - 2023-12-19

Changed

1.0.5 - 2023-12-08

Fixed

  • Do Not Track and Hide Referrer from third parties ignoring global Stealth mode toggle.

1.0.4 - 2023-12-08

Fixed

1.0.3 - 2023-12-08

Fixed

  • Incorrect path for typings in package.json.

1.0.2 - 2023-12-07

Added

Changed

Fixed

1.0.1 - 2023-12-06

Fixed

1.0.0 - 2023-12-01

Added

  • New TsWebExtension.initStorage method to initialize persistent values for the background script.
  • New createTsWebExtension function to create TsWebExtension instance.

Changed

  • [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 the configuration, so we split the initialization process into two parts: the new initStorage method, which is called as soon as possible and allows access to the actual context before directly starting the filtering, and the start method, which initializes the filtering process.
  • [BREAKING CHANGE] TsWebExtension constructor now accepts submodules as arguments. To get the TsWebExtension instance with webAccessibleResources param, use the new createTsWebExtension method.

0.4.9 - 2023-11-30

Added

Changed

0.4.8 - 2023-11-29

Changed

  • MessageHandlerMV2 type is exported now.

0.4.7 - 2023-11-21

Fixed

  • Fix cosmetic apply logging.

0.4.6 - 2023-11-16

Added

  • Support for POST requests to $removeparam modifier #99.

Fixed

  • Fix 'storage not initialized' error on extension install.

0.4.5 - 2023-11-15

Added

Changed

0.4.4 - 2023-11-13

Changed

0.4.3 - 2023-11-09

Fixed

  • 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

  • Added new ExtensionStorage, PersistentValueContainer, createExtensionStorageDecorator interfaces and for restoring data in event-driven background scripts AdguardBrowserExtension#2286.

0.4.2 - 2023-10-17

Fixed

  • Removed grouping rules with \r\n for extended css rules which cause its error in MV3.

0.4.1 - 2023-10-13

Changed

0.4.0 - 2023-10-12

Added

  • Support for $badfilter rules to Declarative Converter.

0.3.22 - 2023-10-02

Fixed

0.3.21 - 2023-09-25

Fixed

  • 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

Added

0.3.19 - 2023-09-18

Fixed

0.3.18 - 2023-09-13

Fixed

0.3.17 - 2023-09-13

Added

  • New requestUrl, frameUrl and requestType fields in ApplyBasicRuleEvent.

Fixed

0.3.16 - 2023-09-05

Fixed

0.3.15 - 2023-09-05

Fixed

0.3.14 - 2023-09-05

Fixed

0.3.13 - 2023-08-25

Changed

0.3.12 - 2023-08-23

Fixed

  • Incorrect order of onBeforeRequest handlers.
  • Blocked csp reports do not increment the blocked requests counter.

0.3.11 - 2023-08-21

Changed

Fixed

  • Applying $cookie rules on the content-script side.

0.3.10 - 2023-08-18

Added

  • Blocking third-party requests with csp_report content-type.
  • Handling discarded tabs replacement on wake up.

Fixed

  • Do not expose JS rules in global page scope.

0.3.9 - 2023-08-10

Changed

0.3.8 - 2023-08-04

Changed

0.3.7 - 2023-07-21

Changed

Fixed

  • Duplicate eventId of filtering events.

0.3.6 - 2023-07-11

Fixed

  • 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

Fixed

  • Cosmetic rule logging.

0.3.4 - 2023-07-11

Added

  • Support of $elemhide, $specifichide and $generichide modifiers.

Fixed

  • Cosmetic rule matching for frames loaded from the service worker cache.

0.3.3 - 2023-06-19

Changed

0.3.2 - 2023-06-14

Changed

0.3.1 - 2023-06-15

Added

  • new DocumentApi class, with frame-matching taking into account the state of the Allowlist.

Changed

  • AllowlistApi renamed to Allowlist. matchFrame method moved to DocumentApi class.

Fixed

  • Extra headers handling in chromium browsers.
  • Filtering log update on cached pages reload.

0.3.0 - 2023-06-14

Changed

0.2.8 - 2023-06-13

Changed

  • logLevel configuration property type to string.
  • RequestContextStorage to extend from Map.

Deleted

  • record, find methods and onUpdate, onCreate events from RequestContextStorage.

0.2.6 - 2023-06-06

Changed

0.2.5 - 2023-06-06

Fixed

  • Tab context matching for pages with cached document page.

0.2.4 - 2023-06-05

Fixed

  • hideRequestInitiatorElement function return more accurate css selector src attribute value for first party requests.
  • ElementCollapser inject styles via isolated style tag.

0.2.3 - 2023-05-31

Fixed

  • Script rules injection.

0.2.2 - 2023-05-29

Added

  • New logLevel optional property for MV2 configuration to control logging levels.

Changed

  • verbose MV2 configuration property is now optional.

0.2.0 - 2023-05-23

Added

  • New MV2 API methods for configuration updating without engine restart: setFilteringEnabled,setCollectHitStats, setStealthModeEnabled, setSelfDestructFirstPartyCookies, setSelfDestructThirdPartyCookies, setSelfDestructThirdPartyCookies, setSelfDestructFirstPartyCookiesTime, setSelfDestructThirdPartyCookiesTime, setHideReferrer, setHideSearchQueries, setBlockChromeClientData, setSendDoNotTrack, setBlockWebRTC.

Changed

  • Updated getMessageHandler API method return type.
  • start, update and setFilteringEnabled API methods now flush browser in-memory cache. This change improve filtering on pages with service workers and inactive tabs.

Fixed

  • Stealth module correctly sets browser privacy network settings based on blockWebRTC, stealthModeEnabled and filteringEnabled options.
  • unique eventId for FilteringEventType.JsInject events.

0.1.4 - 2023-04-18

Fixed

  • 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 and path 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.

Added

  • Applying $cookie rules to the requests before sending them to a server in the onBeforeSendHeaders hook.

0.1.3 - 2023-04-17

Changed

0.1.2 - 2023-04-11

Added

  • Separated export of CssHitsCounter to better tree shaking on external applications.

0.1.1 - 2023-04-04

Changed

  • 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

Changed

0.0.68 - 2023-03-24

Added

  • Described event flow scheme for webRequestModule.

Fixed

  • Changed enums according to our guideline.

0.0.67 - 2023-03-23

Fixed

  • Order of injecting scripts with setDomSignal.

0.0.66 - 2023-03-14

Fixed

  • Executing of html and replace rules for Firefox.

0.0.65 - 2023-03-10

Fixed

  • Executing of scriptlets rules for Firefox.

Added

  • Stricter checking for non local JS rules for Firefox AMO.

0.0.64 - 2023-03-10

Changed

Fixed

  • Cosmetic rules applying if CssHitsCounter is disabled.
  • Mark requests from navigation from address bar as first-party requests.

0.0.63 - 2023-02-17

Changed

0.0.62 - 2023-02-10

Added

  • Added cosmetic rules injection in tabs opened before API initialization.

Fixed

  • 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

Added

  • 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

Changed

0.0.59 - 2023-02-03

Changed

0.0.58 - 2023-02-02

Fixed

  • 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

Changed

  • 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

  • Fixed allowlist api rule generation and matching.

0.0.56 - 2023-01-12

Fixed

  • 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.

Removed

  • Previous url from tab's metadata.

Changes

  • Merged changed from master branch.

0.0.47 - 2022-12-27

Fixed

  • Allowlist rule priority.

Added

  • Simple support of $jsonprune.

Removed

  • Unused injectExtCss method in the CosmeticAPI.

0.0.45 - 2022-12-26

Fixed

  • Recovered work of the blocking scriptlets click2load.html.

Changed

0.0.44 - 2022-12-23

Added

  • Merged changed from master branch.

Removed

  • Support of $webrtc rules.

Fixed

  • JS and CSS injection error handling
  • Request events initialization