Skip to content

Releases: ghostery/adblocker

v0.6.7

06 Feb 12:22
0f2887f
Compare
Choose a tag to compare
  • [bug] Invalidate serialized engines with ENGINE_VERSION bump #99

v0.6.6

04 Feb 13:40
43ccc50
Compare
Choose a tag to compare
  • [bug] Restore original buffer size for reverse index creation #98

v0.6.5

04 Feb 12:12
c5c82c5
Compare
Choose a tag to compare
  • [bug] Bump engine version to invalidate existing cache #97

v0.6.4

04 Feb 11:09
ae284f1
Compare
Choose a tag to compare
  • [perf] Speed-up matching by using raw Uint32Array instead of view #96
    • Average time to process request is now 0.007 ms (instead of 0.028 after implementing lazy loading). This is now even faster than ever (our previous speed was ~0.008 ms per request).

v0.6.3

30 Jan 10:57
05364c7
Compare
Choose a tag to compare
  • Bump engine version #95

v0.6.2

30 Jan 10:49
5434244
Compare
Choose a tag to compare
  • [bug] Make sure getId() always returns the same value for a given filter #94
    • Previously the value of ID could change after some internal attribute
      were changed during matching (in particular 'optDomains' and
      'optNotDomains' would be sorted to allow more efficient matching which
      would change the ID).

v0.6.1

28 Jan 17:26
79ad7f1
Compare
Choose a tag to compare
  • [regression] allow unicode characters in filters #93

v0.6.0

28 Jan 13:18
7c59da2
Compare
Choose a tag to compare
  • Implement lazy loading and compact internal representation #87
    • [BREAKING] serialization module has been removed, instead, each class now
      provides a serialize method as well as a static method deserialize.
    • [BREAKING] FiltersEngine now exposes different methods for update:
      update which expects a diff of filters, updateList and
      updateResources. This API should be a cleared and allows using the
      adblocker without managing filters lists.
    • [BREAKING] ReverseIndex' API dropped the use of a callback to specify
      filters and instead expects a list of filters.
    • [BREAKING] parsing and matching filters can now be done using methods of
      the filters classes directly instead of free functions. For example
      NetworkFilter has a parse and match method (with the same expected
      arguments).
    • ReverseIndex is now implemented using a very compact
      representation (stored in a typed array).
    • toString method of filters should now be more accurate.
    • Addition of numerous unit tests (coverage is now >90%)
  • Implement support for :style cosmetic filters #86
    • [BREAKING] getCosmeticsFilters will now return CSS as a single string
      (stylesheet) instead of a list of selectors. This simplifies the usage and
      allows to directly inject this into the page using the method of your
      choice: through content scripts or tabs.injectCSS API.

v0.5.1

09 Jan 09:32
c541c6f
Compare
Choose a tag to compare

Quick fix release:

  • Fix maximum number of selectors in stylesheet limitation on Chrome #83

v0.5.0

08 Jan 16:27
1b5a7fa
Compare
Choose a tag to compare

This release contains many fixes as well as a few (small) breaking changes.

  • Remove tldts dependency and allow to plug any implementation instead #81
    • Adblocker does not include tldts by default anymore
    • APIs now expect either already constructed Request as arguments of both
      hostname and domain when needed (e.g.: getCosmeticsFilters)
    • A makeRequest helper is provided to construct Request objects
    • [BREAKING] engine.match expects a Request as argument
    • [BREAKING] engine.matchAll expects a Request as argument
    • [BREAKING] engine.getCSPDirectives expects a Request as argument
    • [BREAKING] engine.getCosmeticsFilter expects a new domain argument
    • [BREAKING] Request's constructor does not apply default value
      anymore and expects all arguments to be provided and initialized. You
      can now use makeRequest to reproduce the previous behavior of new Request.
  • Fix cosmetics injection #79
    • Ignore cosmetic filters with extended syntax
    • Ignore invalid cosmetic filters (using strict validation)
    • Make use of tabs.insertCSS to inject style from background
  • Update dependencies #78
  • Harden typescript + simplify cosmetic injection #71
  • Add support for Ghostery rules #73
    • Add support for bug filter attribute
    • Exceptions can now match filters with bug option
    • Simplify and speed-up serialization for network filters
    • Fix hostname anchor matching by preventing infix match in some corner case