uBlock/src/js
Raymond Hill 3fab7bfdb4
Add support for "specific-generic" cosmetic filters
A specific cosmetic filter of the following form...

    *##.selector

... will be unconditionally injected into all web pages,
whereas a cosmetic filter of the form...

    ##.selector

... would be injected only when uBO's DOM surveyor finds
at least one matching element in a web page.

The new specific-generic form will also be disabled when a
web page is subject to a `generichide` exception filter,
since the filter is essentially a generic one -- the only
difference from the usual generic form is that the filter
is injected unconditionally instead of through the DOM
surveyor.

Specific-generic cosmetic filters will NOT be discarded
when checking the "Ignore generic cosmetic filters"
option in the "Filter lists" pane -- since the purpose
of this option is primarily to disable the DOM surveyor.

Specific-generic cosmetic filters should be used
parcimoniously and only when using a normal specific
filter is really impractical.

Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/803
2020-02-14 11:51:05 -05:00
..
codemirror Add basic syntax coloring to advanced settings pane 2019-12-24 10:04:18 -05:00
scriptlets Coallesce mousemove events 2019-11-06 07:01:13 -05:00
wasm Remove elision of leading wildcard in some filter patterns 2020-02-03 14:09:37 -05:00
1p-filters.js Work toward modernizing code base: promisification 2019-09-17 15:15:01 -04:00
3p-filters.js Simplify client messaging code 2019-09-19 08:31:38 -04:00
about.js Work toward modernizing code base: promisification 2019-09-17 15:15:01 -04:00
advanced-settings.js Minor code review 2020-01-23 12:06:40 -05:00
asset-viewer.js Work toward modernizing code base: promisification 2019-09-17 15:15:01 -04:00
assets.js Avoid or defer writing back to cache storage at launch 2019-10-15 11:42:43 -04:00
background.js First draft of popup panel for Firefox Preview 2020-01-25 09:24:59 -05:00
cachestorage.js Remove remnants of chrome references... 2019-09-21 12:06:57 -04:00
cloud-ui.js Work toward modernizing code base: promisification 2019-09-17 15:15:01 -04:00
commands.js Revisit element picker arguments code 2019-09-18 12:17:45 -04:00
console.js Fix spurious output at uBO's dev console 2019-02-18 14:41:04 -05:00
contentscript.js Fix unescaped attr value in generated CSS selector 2019-12-31 16:14:50 -05:00
contextmenu.js Revisit element picker arguments code 2019-09-18 12:17:45 -04:00
cosmetic-filtering.js Add support for "specific-generic" cosmetic filters 2020-02-14 11:51:05 -05:00
dashboard-common.js Work toward modernizing code base: promisification 2019-09-17 15:15:01 -04:00
dashboard.js Work toward modernizing code base: promisification 2019-09-17 15:15:01 -04:00
document-blocked.js Use encodeURIComponent instead of btoa 2019-11-04 13:12:40 -05:00
dyna-rules.js Work toward modernizing code base: promisification 2019-09-17 15:15:01 -04:00
dynamic-net-filtering.js Use async/await in Matrix.benchmark() 2019-06-19 08:37:48 -04:00
fa-icons.js First draft of popup panel for Firefox Preview 2020-01-25 09:24:59 -05:00
filtering-context.js Fine tune hostname uncloaking through CNAME-lookup 2019-11-23 13:07:23 -05:00
hnswitches.js fix #2859 2018-09-03 14:06:49 -04:00
hntrie.js Fine-tune new bidi-trie code 2019-10-29 10:26:34 -04:00
html-filtering.js Code review of session filters commit 2019-09-26 12:40:56 -04:00
i18n.js Grand refactoring of the logger 2019-01-12 16:36:20 -05:00
logger-ui-inspector.js Simplify client messaging code 2019-09-19 08:31:38 -04:00
logger-ui.js Fix broken row rendering for non-network-based URL 2020-01-31 13:48:17 -05:00
logger.js Grand refactoring of the logger 2019-01-12 16:36:20 -05:00
lz4.js Fix Promise chain of WASM module load operations 2019-02-01 08:20:43 -05:00
messaging.js Set tooltip to cname alias in popup panel 2020-02-06 10:18:15 -05:00
pagestore.js Do not flush blocked-elements cache at webNavigation time 2019-09-21 16:42:15 -04:00
popup-fenix.js New way to convey IDN and CNAME info in popup panel 2020-02-10 08:06:36 -05:00
popup.js New way to convey IDN and CNAME info in popup panel 2020-02-10 08:06:36 -05:00
redirect-engine.js Fix handling of end-anchor in redirect patterns 2020-02-01 12:47:17 -05:00
reverselookup-worker.js Add support for "specific-generic" cosmetic filters 2020-02-14 11:51:05 -05:00
reverselookup.js Expand bidi-trie usage in static network filtering engine 2019-10-21 08:15:58 -04:00
scriptlet-filtering.js Rename register-like variables 2019-09-29 13:21:09 -04:00
settings.js Work toward modernizing code base: promisification 2019-09-17 15:15:01 -04:00
shortcuts.js Support keyboard shortcut to open popup panel 2019-11-09 09:53:31 -05:00
start.js Select default UI according to target platform 2020-02-06 11:42:12 -05:00
static-ext-filtering.js Add support for "specific-generic" cosmetic filters 2020-02-14 11:51:05 -05:00
static-net-filtering.js Remove elision of leading wildcard in some filter patterns 2020-02-03 14:09:37 -05:00
storage.js Add env_legacy to the pre-processor supported tokens (#3768) 2020-02-09 08:23:00 -05:00
strie.js Remove elision of leading wildcard in some filter patterns 2020-02-03 14:09:37 -05:00
tab.js Fix test against opener tab id in popup filtering code 2019-11-04 13:34:44 -05:00
text-encode.js refactor some webRequest-related code (now that firefox legacy is out of the way) 2018-10-28 10:58:25 -03:00
traffic.js Visually distinguish canonical names in popup panel 2019-12-31 16:36:51 -05:00
ublock.js Revisit element picker arguments code 2019-09-18 12:17:45 -04:00
udom.js Update fix for https://github.com/uBlockOrigin/uBlock-issues/issues/468 2019-04-14 16:57:09 -04:00
uritools.js Add ability to uncloak CNAME records 2019-11-19 12:05:33 -05:00
url-net-filtering.js Fix regression in URL rules validation 2019-07-10 17:24:01 -04:00
utils.js Throw if mismatched size when unserializing an array buffer 2020-02-04 09:55:02 -05:00
whitelist.js Work toward modernizing code base: promisification 2019-09-17 15:15:01 -04:00