Opened on 08/14/2018 at 12:13:30 PM

Closed on 09/17/2018 at 01:53:45 PM

#6860 closed change (fixed)

Update adblockpluscore dependency to revision git:2551978

Reported by: sergz Assignee: hfiguiere
Priority: P2 Milestone:
Module: Libadblockplus Keywords:
Cc: hfiguiere Blocked By:
Blocking: Platform: Unknown / Cross platform
Ready: no Confidential: no
Tester: Unknown Verified working: no
Review URL(s):

Description (last modified by hfiguiere)


There were a lot of changes in the core, most notably they concern the memory usage and support of new filters, like snippets.

The list of changes imported by this is (these are issue numbers extracted from commits):

Ticket Summary Component
#6944 Update subscriptions.xml to include EasyList Portuguese filter list Core
#6931 localhost isn't considered a domain by contentfilter validating code Core
#6927 Add pattern property to RegExpFilter to expose already extracted pattern Core
#6923 Only parse metadata from special comments at the top of the file Core
#6919 Implement hide-if-contains-and-matches-style snippet Core
#6916 Avoid Set object for filters with only one subscription Core
#6908 Pass updated subscription's old filters as an event argument Core
#6893 Split out the INIParser class into its own file Core
#6886 Add support for looking up SnippetFilter objects for a domain Core
#6883 Remove Filter.toRegExp function Core
#6871 Extension incorrectly accepts $csp filters with blank value Core
#6870 Remove support for legacy :-abp-properties() syntax Core
#6868 Rewrite filter with wildcard doesn't match end of URL Core
#6862 Make Snippets module emit events Core
#6855 Remove Subscription object from memory when unsubscribed Core
#6854 Remove deprecated FilterNotifier methods Core
#6853 Write unit tests for undocumented quirks in snippet script parsing Core
#6849 Remove redundant logic parsing checksums from filter lists Core
#6848 Add support to hide-if-contains for hiding a different ancestor of the element containing the search string Core
#6847 Add regular expression support to hide-if-contains and hide-if-shadow-contains snippets Core
#6823 Remove unnecessary usage of the /u flag in regular expressions Core
#6815 Avoid multiple copies of domain maps Core
#6814 Avoid redundant calls to getter Core
#6811 Blank values for snippet arguments are ignored Core
#6809 Implement hide-if-contains snippet Core
#6803 Implement readd snippet Core
#6798 Implement hide-if-shadow-contains snippet Core
#6797 Require active domains in snippet filters Core
#6790 Implement uabinject-defuser snippet for AdDefend Core
#6781 Implement basic support for snippet filters Core
#6741 Use ECMAScript 2015 classes Core
#6737 Use String.includes instead of String.indexOf where the index is not needed Core
#6735 Store domains in lower case Core
#6733 Allow empty values in filter options Core
#6727 Use string rather than map for single-domain filters Core
#6704 Ignore $rewrite filters for requests loading code to be executed Core
#6690 Trailing periods are not treated consistently between filter types Core
#6689 Add anti-circumvention filter list to the recommended subscription list Core
#6680 Element hiding emulation doesn't work with :-abp-properties() and dynamic DOM updates Core
#6669 Replace critera argument to ElemHide.getSelectorsForDomain with specificOnly Core
#6665 Share functionality and optimizations between ElemHide and ElemHideEmulation Core
#6652 Implement fast selector lookups for most domains Core
#6651 Introduce CI for Adblock Plus (devbuilds) Automation
#6649 Allow the Unicode flag in :-abp-contains() regular expressions Core
#6619 Element hiding emulation injects incorrect CSS selector for :-abp-properties() when the selector in the document's style sheet is a compound selector Core
#6610 Use inline style for -abp-properties if there's no tabs.removeCSS support Core
#6592 Add filter option to rewrite URL Core
#6562 Remove provideFilterKeys parameter from getSelectorsForDomain and associated logic Core
#6559 Use maps and sets where appropriate Core
#6538 Implement support for snippet filters Core
#6505 Make use of default function parameters in Core module Core
#6504 Implement ElemHideEmulation.useInlineStyles property Core
#6467 Use Map object for caching filter matches Core
#6437 Optimize element hiding emulation for DOM modifications Core
#6434 Define helpers for non-array iterables Core
#6423 Observe only relevant mutation types in elemHideEmulation.js Core
#6421 Update subscriptions.xml to include EasyList Polish Core
#6391 Run browser tests with headless Firefox as well as Chromium Core
#6382 :-abp-contains() + div not working in Firefox Platform
#6329 Add support for $csp filter option to core Core
#6296 Procedural hiding stops working when ...:-abp-has(> ...:-abp-contains(...)) is used Core
#6220 add CI for adblockpluscore Core
#6034 Add support for regular expressions in :-abp-contains() Core
#5956 [webextension] :-abp-has() fail in Firefox Core
#5762 Use relative require paths in adblockpluscore Core
#5504 Update comment in accordance with the code Core
#1846 Remove the locale parameter of Notification.getLocalizedTexts Core

46ffcc4Noissue - Remove extra blank line in lib/matcher.jsManish Jethani
4b3326cNoissue - Return value of filter match expression directlyManish Jethani
655ff97Noissue - Define RegExpFilter's 0 getter staticallyManish Jethani
9ac10abNoissue - Check for comment indicator first while parsing filter textManish Jethani
821d706Noissue - Delete element hiding domain entry once all filters removedManish Jethani
d811099Noissue - Avoid :-abp-properties() legacy syntax parsing for most filtersManish Jethani
2fc20a4Noissue - Update comment on :-abp-properties() DOM dependenceManish Jethani
a2773c0Noissue - Add a test to confirm an evil rewrite gets cancelledHubert Figuière
5ecee61Noissue - Add @link tag for JSDoc referencesManish Jethani
42b20feNoissue - Remove unnecessary references to undefinedManish Jethani
be95169Noissue - Remove redundant assignment to zeroManish Jethani
ef3749fNoissue - Add criteria test for Jethani
81c64f3Noissue - Check only first two characters for exception markerManish Jethani
df18e31Noissue - Remove workaround for WebKit getter misoptimizationManish Jethani
e04e8caNoissue - Avoid setting ActiveFilter.domainSourceManish Jethani
00210e9Noissue - Avoid setting BlockingFilter instance propertiesManish Jethani
5bd94d6Noissue - Avoid delete operator on RegExpFilter.regexpSourceManish Jethani
4e136faNoissue - Remove ElemHideBase.selectorDomainsManish Jethani
8be0963Noissue - Avoid redundant iterations in subscriptions loopManish Jethani
f77da12Noissue - Discard regular expression source when no longer neededManish Jethani
f75f0ceNoissue - Fix JSDoc type for exceptions in lib/elemHide.jsManish Jethani
60a41e8Noissue - Make private functions inaccessible via ElemHide objectManish Jethani
42fbb57Noissue - Update JSDoc to mark optionals in lib/filterClasses.jsManish Jethani
efd99feNoissue - Use default parametersManish Jethani
4222d52Noissue - Update JSDoc to mark optionals in lib/elemHide.jsManish Jethani
aef75c4Noissue - Update JSDoc @type for Matcher.filterByKeywordManish Jethani
c9221c1Noissue - Use plural for element hiding domainsManish Jethani
8028eeaNoissue - Compare individual characters instead of substringManish Jethani
7b7286aNoissue - Trim spaces around element hiding emulation selectorsManish Jethani
66b307dNoissue - Check for null and blank string instead of undefinedManish Jethani
5efe12dNoissue - Use Map to store EventEmitter listenersDave Barker
95a7b57Noissue - Access document via thisManish Jethani
314bda3Noissue - Allow identifying the element in case of error in testHubert Figuière
ff18e95Noissue - Change specialization for "ABPVN List+EasyList"Sergei Zabolotskikh
0d3c182Noissue - Fix naming inconsistency in ContainsSelectorManish Jethani
7af872bNoissue - Fix the escaping of '{' and '}' in CSS selectorsHubert Figuière
2b57122Noissue - Fixed typo with getLocalizedTexts function Review: Barker
662ce93Noissue - Updated recommended subscriptionsWladimir Palant

What to change

Adapt the code in accordance with the made changes in the core.

  • Change require() in lib/compat.js to strip the leading ./ from module names`
  • Change isListedFilter() in lib/api.js since Filter.subscription is no longer a property but a generator function.
  • Change isListedSubscription() in lib/api.js since FilterStorage.knownSubscriptions is a Map object and not an array anymore.
  • Change lib/filterUpdateRegistration.js to use the new event API, by listening to all the individual events and binding them to emit filterChange
  • Import filterNotifier instead of FilterNotifier (singleton , not class)
  • In init.js change the load event listener to use the new event API
  • Add the new JS files to the build in libadblockplus.gyp

It also seems it makes sense to implement certain functionality in libadblockplus as the following up issues, e.g. introduce the API to work with snippets.

Attachments (0)

Change History (6)

comment:1 Changed on 09/11/2018 at 04:32:22 PM by hfiguiere

  • Owner set to hfiguiere

comment:2 Changed on 09/14/2018 at 03:31:45 PM by hfiguiere

  • Description modified (diff)
  • Summary changed from Update adblockpluscore dependency to revision git:975f6d79dad9e210058e6db7fef4975b95c6b424 to Update adblockpluscore dependency to revision git:2551978

comment:3 Changed on 09/14/2018 at 03:37:33 PM by hfiguiere

  • Description modified (diff)

comment:4 Changed on 09/14/2018 at 06:12:59 PM by hfiguiere

  • Review URL(s) modified (diff)
  • Status changed from new to reviewing

comment:5 Changed on 09/14/2018 at 07:17:43 PM by hfiguiere

  • Description modified (diff)

comment:6 Changed on 09/17/2018 at 01:53:45 PM by hfiguiere

  • Resolution set to fixed
  • Status changed from reviewing to closed

Add Comment

Modify Ticket

Change Properties
as closed .
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from hfiguiere.
Note: See TracTickets for help on using tickets.