Commit graph

20 commits

Author SHA1 Message Date
Raymond Hill
e107b6bcf1
Fix typo in comment 2019-07-05 10:32:19 -04:00
Raymond Hill
5552d6717d
Implement scriptlet token normalization
The goal is to be able to specify a scriptlet token
without the `.js` part at the end, because that part
is essentially redundant with the `+js` part of
the syntax.

When the next stable release is in widespread use
(to determine), scriptlet tokens will have to be
specified without the `.js` part, and with this
commit the logger will already report the normalized
version of scriptlets.

Eventually, when the migration to sans-`.js` is
complete (also to determine), the internal
normalization of the token will be removed and this
will become official syntax.

Filter list maintainers will have to mind that
uAssets is becoming in use beyond uBO (i.e. Brave)
when skipping the `.js` part -- hopefully Brave will
go along with the change here, which is to remove a
bit of tediousness for filter list maintainers.
2019-07-05 10:10:59 -04:00
Raymond Hill
0ba9a35818
Convert more resources as immutable
Related commit:
- 152cea2dfe
2019-07-03 14:33:06 -04:00
Raymond Hill
93f80eedfa
Refactor runtime storage of specific cosmetic filters
This was a TODO item:
- 07cbae66a4/src/js/cosmetic-filtering.js (L375)

µBlock.staticExtFilteringEngine.HostnameBasedDB has been
re-factored to accomodate the storing of specific cosmetic
filters.

As a result of this refactoring:

- Memory usage has been further decreased
- Performance of selector retrieval marginally
  improved
- New internal representation opens the door
  to use a specialized version of HNTrie, which
  should further improve performance/memory
  usage
2019-05-14 08:52:34 -04:00
Raymond Hill
c83b6776da
Remove support for implicit scriptlet injection
Related issue:
- https://github.com/gorhill/uBlock/issues/3550
2019-02-20 07:18:37 -05:00
Raymond Hill
9b27a98f90
Fix https://github.com/gorhill/uBlock/issues/3654
Additionally, there has been refactoring work done regarding
filtering context used throughout uBO, motivated by the fix
here.
2018-12-13 12:30:54 -05:00
Raymond Hill
5d98a88093
revert unintended stray change from commit 4504040344 2018-11-24 12:21:25 -05:00
Raymond Hill
4504040344
minor code review: do not cache hostname/domain pairs when parsing filters 2018-11-24 12:09:27 -05:00
Raymond Hill
06fe7e6871
code review for static extended filtering, notably:
- use domain-derived integer hash to store filters

- remove code meant for firefox/legacy

- properly handle subdomains of entity-based filters
2018-09-09 08:10:09 -04:00
Raymond Hill
89c073f3e9
fix https://github.com/uBlockOrigin/uBlock-issues/issues/209 2018-09-07 09:11:07 -04:00
Raymond Hill
79d5af20fc
fix potential spurious error from ignoring chrome.runtime.lastError 2018-07-08 08:25:08 -04:00
Raymond Hill
4a57825411
code review: remove scriplet js text after injection (see https://github.com/uBlockOrigin/uBlock-issues/issues/53#issuecomment-394024828) 2018-06-01 18:41:27 -04:00
Raymond Hill
f887eeb3f5
code review for c5d8588118: mind whitelist status; mind an inaccessible document 2018-05-22 09:26:49 -04:00
Raymond Hill
0c5e2eb7ee
code review for c5d8588118: mind about:blank et al. iframes 2018-05-20 06:49:12 -04:00
Raymond Hill
b4306e3297
code reivew of c5d8588118: immediate scriptlets injection works well only on Chromium-based browsers for now 2018-05-18 10:19:14 -04:00
Raymond Hill
e693e308d4
code review for c5d8588118 2018-05-17 16:24:08 -04:00
Raymond Hill
c5d8588118
inject scriptlets earlier (experimental) (ex. https://github.com/uBlockOrigin/uAssets/issues/2300) 2018-05-17 07:33:21 -04:00
Hugo Xu
60751044fe Update scriptlet-filtering.js (#3696) 2018-04-09 17:49:35 -04:00
Raymond Hill
5c20182948
fix regression in per-list filter counts (reported by @mapx-) 2017-12-29 13:31:37 -05:00
Raymond Hill
a9f68fe02f
Fix #3069, and consequently #3374, #3378.
A new filtering class has been created: "static extended filtering".
This new class is an umbrella class for more specialized filtering
engines:
- Cosmetic filtering
- Scriptlet filtering
- HTML filtering

HTML filtering is available only on platforms which support modifying
the response body on the fly, so only Firefox 57+ at the moment.

With the ability to modify the response body, HTML filtering has
been introduced: removing elements from the DOM before the source
data has been parsed by the browser.

A consequence of HTML filtering ability is to bring back script tag
filtering feature.
2017-12-28 13:49:02 -05:00