Cache extracted compiled filter blocks in reverse lookup code

To avoid repeatedly extracting the blocks on subsequent lookups.
This commit is contained in:
Raymond Hill 2022-04-25 12:26:59 -04:00
parent ed0f7ae3ce
commit 574a4e6263
No known key found for this signature in database
GPG key ID: 25E1490B761470C2

View file

@ -55,7 +55,10 @@ const fromNetFilter = function(details) {
for ( const assetKey in listEntries ) {
const entry = listEntries[assetKey];
if ( entry === undefined ) { continue; }
const content = extractBlocks(entry.content, 'NETWORK_FILTERS:GOOD');
if ( entry.networkContent === undefined ) {
entry.networkContent = extractBlocks(entry.content, 'NETWORK_FILTERS:GOOD');
}
const content = entry.networkContent;
let pos = 0;
for (;;) {
pos = content.indexOf(compiledFilter, pos);
@ -157,14 +160,17 @@ const fromExtendedFilter = function(details) {
for ( const assetKey in listEntries ) {
const entry = listEntries[assetKey];
if ( entry === undefined ) { continue; }
const content = extractBlocks(
entry.content,
'COSMETIC_FILTERS:SPECIFIC',
'COSMETIC_FILTERS:GENERIC',
'SCRIPTLET_FILTERS',
'HTML_FILTERS',
'HTTPHEADER_FILTERS'
);
if ( entry.extendedContent === undefined ) {
entry.extendedContent = extractBlocks(
entry.content,
'COSMETIC_FILTERS:SPECIFIC',
'COSMETIC_FILTERS:GENERIC',
'SCRIPTLET_FILTERS',
'HTML_FILTERS',
'HTTPHEADER_FILTERS'
);
}
const content = entry.extendedContent;
let found;
let pos = 0;
while ( (pos = content.indexOf(needle, pos)) !== -1 ) {