diff options
author | gorhill <rhill@raymondhill.net> | 2015-06-13 13:32:14 -0400 |
---|---|---|
committer | gorhill <rhill@raymondhill.net> | 2015-06-13 13:32:14 -0400 |
commit | 34723e1a45e8576cb74f20f933d68958e1f90510 (patch) | |
tree | 001d60fb32fc326f0da3db58d9a8de7534bc8df8 /src | |
parent | 86acda1a900894dfe1cd78ff9484c9078131fc06 (diff) | |
download | uBlock-34723e1a45e8576cb74f20f933d68958e1f90510.zip uBlock-34723e1a45e8576cb74f20f933d68958e1f90510.tar.gz uBlock-34723e1a45e8576cb74f20f933d68958e1f90510.tar.bz2 |
code review
Diffstat (limited to 'src')
-rw-r--r-- | src/js/reverselookup-worker.js | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/js/reverselookup-worker.js b/src/js/reverselookup-worker.js index 7a5fb14..23e4dac 100644 --- a/src/js/reverselookup-worker.js +++ b/src/js/reverselookup-worker.js @@ -80,7 +80,7 @@ var fromNetFilter = function(details) { // Mainly, given a CSS selector and a hostname as context, we will derive // various versions of compiled filters and see if there are matches. This way // the whole CPU cost is incurred by the reverse lookup code -- in a worker -// thread, and the cosmetic filtering engine incurred zero cost. +// thread, and the cosmetic filtering engine incurs no cost at all. // // For this though, the reverse lookup code here needs some knowledge of // the inners of the cosmetic filtering engine. @@ -103,12 +103,13 @@ var fromCosmeticFilter = function(details) { var matches = rePlainSelector.exec(filter); if ( matches ) { if ( matches[0] === filter ) { // simple CSS selector - reStr = rescape('c\vlg\v') + '\\w+' + rescape('\v' + filter); + reStr = rescape('c\vlg\v'); } else { // complex CSS selector - reStr = rescape('c\vlg+\v') + '\\w+' + rescape('\v' + filter); + reStr = rescape('c\vlg+\v'); } + reStr += '\\w+' + rescape('\v' + filter); } else if ( reHighLow.test(filter) ) { // [alt] or [title] - reStr = rescape('c\vhlg0\v' + filter) + '(?:\\n|$)'; + reStr = rescape('c\vhlg0\v' + filter); } else if ( reHighMedium.test(filter) ) { // [href^="..."] reStr = rescape('c\vhmg0\v') + '\\w+' + rescape('\v' + filter); } else { // all else @@ -116,6 +117,8 @@ var fromCosmeticFilter = function(details) { } candidates[details.rawFilter] = new RegExp(reStr + '(?:\\n|$)'); + // Second step: find hostname-based versions. + // Reference: FilterContainer.compileHostnameSelector(). var pos; var domain = details.domain; var hostname = details.hostname; @@ -144,7 +147,8 @@ var fromCosmeticFilter = function(details) { } } - // Entity-based + // Last step: find entity-based versions. + // Reference: FilterContainer.compileEntitySelector(). pos = domain.indexOf('.'); if ( pos !== -1 ) { var entity = domain.slice(0, pos); |