Commit Graph

10930 Commits

Author SHA1 Message Date
Raymond Hill cbfd2ad942
Create a MVP version of uBOLite for Firefox
What does not work at the time of commit:

Cosmetic filtering does not work:

The content scripts responsible for cosmetic filtering fail when
trying to inject the stylesheets through document.adoptedStyleSheets,
with the following error message:

  XrayWrapper denied access to property Symbol.iterator
  (reason: object is not safely Xrayable).
  See https://developer.mozilla.org/en-US/docs/Xray_vision for more
  information. ... css-declarative.js:106:8

A possible solution is to inject those content scripts in the
MAIN world. However Firefox scripting API does not support MAIN
world injection at the moment.

Scriptlet-filtering does not work:

Because scriptlet code needs to be injected in the MAIN world,
and this is currently not supported by Firefox's scripting API,
see https://bugzilla.mozilla.org/show_bug.cgi?id=1736575

There is no count badge on the toolbar icon in Firefox, as it
currently does not support the `DNR.setExtensionActionOptions`
method.

Other than the above issues, it does appear uBO is blocking
properly with no error reported in the dev console.

The adoptedStyleSheets issue though is worrisome, as the
cosmetic filtering content scripts were designed with ISOLATED
world injection in mind. Being forced to inject in MAIN world
(when available) make things a bit more complicated as uBO
has to ensure it's global variables do not leak into the page.
2023-04-07 10:19:43 -04:00
Raymond Hill 8b5774a83d
Minor CSS tweak 2023-04-06 17:43:03 -04:00
Raymond Hill f2698b097c
Fix mv3 build 2023-04-06 17:42:21 -04:00
Raymond Hill d33633ecc9
Make Firefox dev build auto-update 2023-04-06 13:30:42 -04:00
Raymond Hill 8285958be4
New revision for dev build 2023-04-06 13:23:13 -04:00
Raymond Hill b2894756e5
Import translation work from https://crowdin.com/project/ublock 2023-04-06 13:22:48 -04:00
Raymond Hill bc21a1fe72
Use custom linter gutter as container for code-folding widgets
This allows to reduce the horizontal size of the gutter; more efficient
management of folding since we already need to parse each line for the
linter; and eventually this will also allows to detect unbalanced
!#if-!#endif directives and report such cases as errors.

Additionally, keep incrementally improving error reporting details
in the linter.
2023-04-06 13:14:42 -04:00
Raymond Hill 028eee456f
Ensure error count is decrease when an error is fixed 2023-04-04 16:55:47 -04:00
Raymond Hill 767fcf9929
Make Firefox dev build auto-update 2023-04-04 14:36:28 -04:00
Raymond Hill 5264eb7604
New revision for dev build 2023-04-04 14:30:01 -04:00
Raymond Hill d59eeba8e2
Fix tabs.executeScript() not resolving in due time
Related feedback:
- 6efd8eb84a
2023-04-04 14:28:48 -04:00
Raymond Hill 0f5384ee0d
Rename reported popup panel property 2023-04-04 13:42:09 -04:00
Raymond Hill 620a96531c
Report cosmetic filters as popup panel property 2023-04-04 13:20:58 -04:00
Raymond Hill 8c376d7791
Make Firefox dev build auto-update 2023-04-04 11:31:36 -04:00
Raymond Hill fad51630ac
New revision for dev build 2023-04-04 11:17:10 -04:00
Raymond Hill 6efd8eb84a
Add matched cosmetic filters in troubleshooting information 2023-04-04 11:15:44 -04:00
Raymond Hill 09265ef57c
Simplify linter error counting by using line events 2023-04-04 09:24:18 -04:00
Raymond Hill 9b5ed5ca86
Fine-tune underline styles used in CM editor 2023-04-04 08:36:44 -04:00
Raymond Hill ddb767c284
Make Firefox dev build auto-update 2023-04-03 10:31:26 -04:00
Raymond Hill 204c5598a6
New revision for dev build 2023-04-03 10:25:21 -04:00
Raymond Hill 3e1030588e
Import translation work from https://crowdin.com/project/ublock 2023-04-03 10:24:47 -04:00
Raymond Hill 4aea9aa624
Better folding arrows in CodeMirror editor 2023-04-03 10:20:53 -04:00
Raymond Hill 6e8aeae283
Flush memory cache at key filtering profile changes
To reduce the need for hard reload after changes in filters,
rules.
2023-04-03 10:19:06 -04:00
Raymond Hill daee72b982
Make Firefox dev build auto-update 2023-04-02 13:31:28 -04:00
Raymond Hill 172b28d951
New revision for dev build 2023-04-02 13:26:32 -04:00
Raymond Hill 6531b86d29
Fix search highlight with dark theme
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2542#discussioncomment-5502579
2023-04-02 13:20:22 -04:00
Raymond Hill d25e9fd32a
Make Firefox dev build auto-update 2023-04-02 12:20:45 -04:00
Raymond Hill 16d92ad82e
New revision for dev build 2023-04-02 12:14:28 -04:00
Raymond Hill ae1afe0381
Import translation work from https://crowdin.com/project/ublock 2023-04-02 12:13:44 -04:00
Raymond Hill edbe96a401
Add logging ability to `acs` scriptlet, for the benefit of filter list
maintainers.

To enable logging, use the JSON approach to pass parameters to
`acs` scriptlet. Example:

    ..##+js(acs, { "target": "document.oncontextmenu", "log": true })

Whereas "target", "needle", and "context" correspond to their
respective positional argument. Using JSON form to pass parameters
allows to specify extra paramters to facilitate debugging of that
scriptlet:

- `"log": true` => output useful information at the dev console.
- `"debug": true` => break at key locations in the scriptlet.

The added logging/debugging capabilities work only in the dev build
of uBO or if the advanced setting `filterAuthorMode` is set to
`true`.
2023-04-02 12:01:58 -04:00
Raymond Hill 95bd52d01f
Fine tuning new linter code 2023-04-02 10:40:44 -04:00
Raymond Hill cda39709b1
Properly fail on bad network filter pattern
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1146
2023-04-02 10:05:42 -04:00
Raymond Hill 46e90b21e9
Code review of new linter code
As per CodeMirror's documentation, eachLine() iterator is
faster, so use this. Also no need to keep track or marked
lines, we can just find them on demand, this makes the code
simpler.
2023-04-02 09:19:32 -04:00
Raymond Hill dd8031a508
Fine tune CSS style for errors 2023-04-01 18:11:41 -04:00
Raymond Hill 13085eb08a
Make Firefox dev build auto-update 2023-04-01 17:01:08 -04:00
Raymond Hill 5533c3f435
New revision for dev build 2023-04-01 16:51:47 -04:00
Raymond Hill 0601350995
Import translation work from https://crowdin.com/project/ublock 2023-04-01 16:51:03 -04:00
Raymond Hill 9519666fcc
Import translation work from https://crowdin.com/project/ublock 2023-04-01 16:49:15 -04:00
Raymond Hill 50afd5ae38
Add infrastructure for static filter syntax linter
Sort of related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1134
2023-04-01 16:42:41 -04:00
Raymond Hill b10f15dd89
Ignore line, do not report as error
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2560#issuecomment-1492959500
2023-04-01 13:50:53 -04:00
Raymond Hill e2d837a2db
Fix presumed network filter not being a valid network filter
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2560#issuecomment-1492959500
2023-04-01 09:05:36 -04:00
Raymond Hill 40e61cbf6a
Make Firefox dev build auto-update 2023-03-31 10:36:17 -04:00
Raymond Hill 1333e02de8
New revision for dev build 2023-03-31 10:27:52 -04:00
Raymond Hill 9f1c0d986b
Add support to restore from `json` file
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1956
2023-03-31 09:58:50 -04:00
Raymond Hill 0d26064a26
Make `object` equivalent of `frame` for dynamic filtering purpose
Related issue:
- uBlockOrigin/uBlock-issues#2496
2023-03-31 09:46:22 -04:00
Raymond Hill b4ae2d3bf4
Make `object` equivalent of `frame` for dynamic filtering purpose
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2496
2023-03-31 09:37:53 -04:00
Raymond Hill 2c55bc3780
Make Firefox dev build auto-update 2023-03-31 08:56:10 -04:00
Raymond Hill 0d5cb8cff5
Import translation work from https://crowdin.com/project/ublock 2023-03-31 08:49:00 -04:00
Raymond Hill b53f3c1137
New revision for dev build 2023-03-31 08:43:52 -04:00
Raymond Hill e2a158d94b
Add check before accessing vAPI 2023-03-31 08:28:09 -04:00