123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- - elementhiding: reverse exception rule are not supported (per domain).
- - block rule: exception rules are not supported: these are also abused sometimes
- to whitelist certain sites.
- - simplify match, there are only a few rules with multiple *.
- - loadrules: return struct rules* ?
- on error free rules.
- - optimization: for simple patterns use: strstr, strcasestr, strcmp, strcasemp
- - combine rules in groups: display: none: display: initial, saves memory:
- rule1,rule2 { display: none; } vs rule 1{...}rule2{...}
- - checkrequest -> allowrequest.
- - add test-case for global exception rules (no domains), see globalcss init code.
- also support inverse element hide rule: "~example.com##div.textad".
- - support domain name anchor separately: "||".
- - test blocking websocket connections in surf.
- - skip protocol part when matching for now, (later add support for websockets).
- - for f->matchbegin, matchend etc: make sure to match domain properly, check part of
- domain (subdomain).
- - optimize towupper for fnmatch? check < 128, see musl optimization.
- - fix blocking of : ||ads.somesite.com^
- matchbegin and matchend rules are wrong.
- - fix tweakers.net popup / rule.
- this is in an exception rule...
- make sure exception rules are always below in the list? modify awk script?
- - preprocess pattern upfront (no copying of data per match (snprintf)).
- - performance:
- - benchmark rule matching (timing).
- - bloom filters? some kind of cache?
- - optimize simple filter case.
- - also for single wildcard (at most start or end)? */bla or /bla*
- - support separator "^" = [/\?]?
- - test it better.
- - CSS: separate CSS rules so it never is iterated in request rules.
- ? Cache all global rules, iterate site rules per site?
- - there is a websocket option? ignore it: block it in surf itself.
- test if websockets use ws:// prefix.
- - show linenr on error / ignored rule.
- Docs:
- - https://adblockplus.org/en/filter-cheatsheet
- - https://adblockplus.org/filters
- - On out-of-memory situations don't crash the page, but how to handle it?
- - CSS blocking: don't allow sites to override the appended global and
- site-specific stylesheet.
- - separate between site-specific and global block rules.
- - optimize matching:
- ? hashtable per domain for specific rules or use bloom filters for matching?
- - separate general block rules into a separate list.
- - test: just use a simple strstr/strcasestr for patterns with no wildcards
- and no matchbegin/matchend. Use strncmp/strcasecmp for patterns with no wildcards
- and matchbegin or matchend set.
- - make less CPU intensive.
- - maybe even include it statically?
- - optimize CSS rule matching (only per site?).
- - optimize memory allocation.
- - optimize: pregenerate one global stylesheet that applies to all sites?
- - separate adblocker into daemon? not sure.
|