Commit Graph

153 Commits

Author SHA1 Message Date
Raymond Hill bec6cad2c0
Start using browser.alarms instead of setTimeout() where applicable
Related documentation:
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Background_scripts#convert_to_non-persistent
2023-04-07 20:24:20 -04:00
Raymond Hill 10f9559a52
Add 64px toolbar icon for 4K displays
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2477
2023-03-27 12:59:39 -04:00
Raymond Hill 8ea3b0f64c
Rewrite static filtering parser
This commit is a rewrite of the static filtering parser into a
tree-based data structure, for easier maintenance and better
abstraction of parsed filters.

This simplifies greatly syntax coloring of filters and also
simplify extending filter syntax.

The minimum version of Chromium-based browsers has been raised
to version 73 because of usage of String.matchAll().
2023-01-23 16:53:18 -05:00
Raymond Hill ad1800fbca
Add command to toggle cosmetic filtering
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2000
2022-02-22 08:44:09 -05:00
Xavier Vello c8d1834018 Add letsblock.it as valid location for subscription links 2022-02-16 16:28:13 +01:00
Raymond Hill b4911e2d7c
Raise minimum versions of browsers
For the following reasons:

- Support for CSS `gap`, so as to remove the need to
  fall back onto classic popup panel, and thus making
  it possible to fully remove long-ago deprecated
  classic panel (announced in 1.27.0)[1]:
  https://developer.mozilla.org/en-US/docs/Web/CSS/gap

- Support for dynamic import:
  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import

Firefox's minimum version is raised to 68 because it's
the oldest ESR version supporting the features above.
From now on, minimum version of Firefox will always be
an ESR one.

---

[1] https://github.com/gorhill/uBlock/releases/tag/1.27.0
2022-01-28 12:02:56 -05:00
Raymond Hill 22022f636f
Modularize codebase with export/import
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1664

The changes are enough to fulfill the related issue.

A new platform has been added in order to allow for building
a NodeJS package. From the root of the project:

    ./tools/make-nodejs

This will create new uBlock0.nodejs directory in the
./dist/build directory, which is a valid NodeJS package.

From the root of the package, you can try:

    node test

This will instantiate a static network filtering engine,
populated by easylist and easyprivacy, which can be used
to match network requests by filling the appropriate
filtering context object.

The test.js file contains code which is typical example
of usage of the package.

Limitations: the NodeJS package can't execute the WASM
versions of the code since the WASM module requires the
use of fetch(), which is not available in NodeJS.

This is a first pass at modularizing the codebase, and
while at it a number of opportunistic small rewrites
have also been made.

This commit requires the minimum supported version for
Chromium and Firefox be raised to 61 and 60 respectively.
2021-07-27 17:26:04 -04:00
Raymond Hill ecabc6d12c
Raise minimal version numbers 2021-01-10 12:14:07 -05:00
Raymond Hill 06ddc945cd
Add `fanboy.co.nz` as valid location for subscription links 2020-09-14 15:46:24 -04:00
Raymond Hill bd949ca295
Add `forums.lanik.us` as a valid location for subscription links
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1246
2020-09-14 15:37:53 -04:00
Raymond Hill fe9797cacc
Add easylist.to as a valid target for subscriber content script 2020-09-14 08:43:51 -04:00
Raymond Hill e60042595c
Revisit the behavior of the click-to-subscribe content script
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/763

Changes:

From now on, uBO will allow click-to-subscribe on only
a few select domains, currently:
- https://filterlists.com/
- https://github.com/
- https://github.io/

More domains can be added if and only the demonstration
is made that more than a marginal number of filter lists
can be subscribed from those domains.

The browser alert box is no longer used to confirm
subscription to a filter list. Instead, the asset
viewer has been expanded to serve that purpose. This
way, users can peruse at the content of a filter list
before subscribing to it.
2020-09-13 08:01:53 -04:00
Raymond Hill 221983646e
Injects user styles and content scripts in `about:blank` frames
Related issues:
- https://github.com/uBlockOrigin/uBlock-issues/issues/688
- https://github.com/uBlockOrigin/uBlock-issues/issues/1164

`match_about_blank` is now used for content scripts and
user styles.
2020-07-19 09:06:19 -04:00
Raymond Hill eeae4b2cab
Add ability to open the dashboard with a keyboard shortcut
Related feedback:
- https://github.com/gorhill/uBlock/commit/9a6feb34d546#commitcomment-38852663
2020-04-30 10:31:23 -04:00
Raymond Hill b295d4a0d0
Make the new "fenix" popup panel the default one
The old "classic" popup panel will still be used
when at least one of the following is true:

- advanced setting `uiFlavor` is set to `classic`; or
- the browser is Chromium 65 or older; or
- the browser is Firefox 67 or older

The default configuration of the new popup panel
at installation time is to show the power button,
statistics and the basic tool icons, i.e. access
to dashboard, logger, pickers.

For existing installations, the new popup panel
will be configured by respecting the existing
configuration of the classic one.

The new popup panel is currently already in use
on Firefox for Android, and the visual redesign
was made according to suggestions and feedback
from <https://github.com/brampitoyo> to be
optimal for Firefox for Android.

The new popup panel will allow closing the following
pending issues:

- https://github.com/uBlockOrigin/uBlock-issues/issues/255
- https://github.com/uBlockOrigin/uBlock-issues/issues/178
2020-04-30 06:54:51 -04:00
Raymond Hill 784a78ad00
Remove useless manifest entry for Opera build
Opera's dashboard warns that the `file:///` permission
is not needed.
2020-02-14 12:08:00 -05:00
Raymond Hill bc6e585b5d
Rephrase `author` entry in manifest 2020-01-30 12:46:54 -05:00
Raymond Hill 7c7be6c898
Add "Relax blocking mode" command to Opera manifest 2019-08-18 08:39:45 -04:00
Raymond Hill 6c34b3c3c9
Use "relax" instead of "toggle"
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/371
2019-06-27 08:16:18 -04:00
Raymond Hill a9659d039d
Add missing command in manifest.json 2019-06-26 17:17:41 -04:00
Raymond Hill 3eb26fc0c5
Set minimum Opera version to 40 (Chromium 53) 2019-01-25 08:41:15 -05:00
Raymond Hill 71c8550362
fix https://github.com/uBlockOrigin/uBlock-issues/issues/253: set min version to Opera 38 2018-10-02 13:44:04 -04:00
Raymond Hill 89fd76ac39
use image data instead of paths for browser icons
When using paths, platform implementations of setIcon typically
will fetch the resource then convert to image data internally.
It is preferable for uBO to do this conversion itself as it can
be done only once at launch time.

With chromium-based browsers, using image data eliminate the
incessant network traffic to fetch browser icons as reported
in the extension's dev tool, meaning a good chunk of overhead
is eliminated.

Also, use optimal icon sizes, as of now both chromium and firefox
prefers 16px instead of 19px, and 32px instead of 38px.
2018-05-07 19:03:50 -04:00
Raymond Hill 08495c42e9
complete "debian" as a target platform 2018-04-27 11:43:35 -04:00
Raymond Hill e377b3e915
changes needed for releasing uBO/opera 1.15.24 2018-04-09 10:04:32 -04:00
Raymond Hill 295cf563ee
add sidebar support for Opera 2018-01-11 09:08:09 -05:00
Raymond Hill 71009cf83d
update minimum opera version (#3411) 2018-01-07 15:14:32 -05:00
gorhill bbda2a9086
code review: preemptively address https://bugzilla.mozilla.org/show_bug.cgi?id=1408996#c9 2017-10-27 14:22:45 -04:00
gorhill 2f922192c3
fix #2892: set proper minimum version for Opera 2017-08-23 07:27:53 -04:00
gorhill 962dbaadba
forgot to add `commands` permissions [opera] 2017-07-02 11:41:32 -04:00
gorhill cd50080e49
fix #2751 2017-07-02 11:13:43 -04:00
gorhill a43686a617
fix minimum version in manifest re. #2612 2017-06-08 08:44:18 -04:00
gorhill 8dd6559759 new revision for release candidate 2016-10-19 11:15:10 -04:00
gorhill 523259bf19 new revision for release candidate 2016-10-17 09:43:05 -04:00
gorhill afc13b9953 new revision for dev build 2016-10-14 11:00:55 -04:00
gorhill b68c4f8f85 new revision for dev build 2016-10-12 07:06:26 -04:00
gorhill 4c714cb11c new revision for dev build 2016-10-08 15:16:27 -04:00
gorhill 41733339d3 oops forgot last stable is 1.9.14 2016-10-06 10:56:51 -04:00
gorhill 1dbeb2107e new revision fro dev build 2016-10-06 10:55:07 -04:00
gorhill 889bf17545 new revision for dev build 2016-10-01 13:07:32 -04:00
gorhill 33cdf3ba8c new release candidate 2016-10-01 12:53:42 -04:00
gorhill 56176c8eb7 fix #2030: brain fart bug 2016-09-26 00:07:29 -04:00
gorhill 0c4137937d new release candidate 2016-09-25 17:02:47 -04:00
gorhill c538b260de import fix for #2025, new revision for dev build 2016-09-24 17:35:53 -04:00
gorhill 1a29be62fb fix #2025 2016-09-24 17:19:52 -04:00
gorhill f0a8f55b16 new revision for dev build 2016-09-24 14:43:17 -04:00
gorhill 203d8efb4f new revision for dev build 2016-09-22 12:21:57 -04:00
gorhill b30648dd47 new release 2016-09-21 16:23:33 -04:00
gorhill 8e2f468c8f release candidate for 1.9.8 2016-09-19 09:18:58 -04:00
gorhill 40a85f8c04 new revision for dev build 2016-09-16 19:14:03 -04:00