Commit Graph

62 Commits

Author SHA1 Message Date
Raymond Hill d506b28a48
Patch Unicode country flags with image-based flags
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2645
2023-05-20 21:35:52 -04:00
Raymond Hill 33c437f99f
Add source code viewer (from logger)
This commits add the ability to open html/css/script
resources from the logger, as a formatted and syntax-
highligthed document.

The goal is to make it easier for filter list authors to
investigate filter-related issues.
2023-03-01 11:04:40 -05:00
q1800 3c9ad16359
Update about.html (#3882)
Remove GitCDN from about.html
2022-12-27 20:48:52 -05:00
Raymond Hill a901606b97
combinatronics is no longer a CDN provider 2022-12-07 10:37:55 -05:00
q1800 5811118277
Update about.html (#3881) 2022-11-23 13:54:50 -05:00
Raymond Hill 21110b0ff1
Use Unicode copyright symbol
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2336
2022-11-15 10:25:25 -05:00
Raymond Hill feaa338678
Code maintenance: replace uDom.js with dom.js
`uDom` is old and crusty and `dom` is meant as replacement. The
goal of `dom` is to be simpler and mainly just convenience
methods for handling the DOM with vanilla JS -- this is not a
framework.

Additionally, removed keyboard shortcuts pane which was useful
only on very old versions of Firefox.
2022-11-12 09:51:22 -05:00
Raymond Hill a71b71e4c8
New cosmetic filter parser using CSSTree library
The new parser no longer uses the browser DOM to validate
that a cosmetic filter is valid or not, this is now done
through a JS library, CSSTree.

This means filter list authors will have to be more careful
to ensure that a cosmetic filter is really valid, as there is
no more guarantee that a cosmetic filter which works for a
given browser/version will still work properly on another
browser, or different version of the same browser.

This change has become necessary because of many reasons,
one of them being the flakiness of the previous parser as
exposed by many issues lately:

- https://github.com/uBlockOrigin/uBlock-issues/issues/2262
- https://github.com/uBlockOrigin/uBlock-issues/issues/2228

The new parser introduces breaking changes, there was no way
to do otherwise. Some current procedural cosmetic filters will
be shown as invalid with this change. This occurs because the
CSSTree library gets confused with some syntax which was
previously allowed by the previous parser because it was more
permissive.

Mainly the issue is with the arguments passed to some procedural
cosmetic filters, and these issues can be solved as follow:

Use quotes around the argument. You can use either single or
double-quotes, whichever is most convenient. If your argument
contains a single quote, use double-quotes, and vice versa.

Additionally, try to escape a quote inside an argument using
backslash. THis may work, but if not, use quotes around the
argument.

When the parser encounter quotes around an argument, it will
discard them before trying to process the argument, same with
escaped quotes inside the argument. Examples:

Breakage:

    ...##^script:has-text(toscr')

Fix:

    ...##^script:has-text(toscr\')

Breakage:

    ...##:xpath(//*[contains(text(),"VPN")]):upward(2)

Fix:

    ...##:xpath('//*[contains(text(),"VPN")]'):upward(2)

There are not many filters which break in the default set of
filter lists, so this should be workable for default lists.

Unfortunately those fixes will break the filter for previous
versions of uBO since these to not deal with quoted argument.
In such case, it may be necessary to keep the previous filter,
which will be discarded as broken on newer version of uBO.

THis was a necessary change as the old parser was becoming
more and more flaky after being constantly patched for new
cases arising, The new parser should be far more robust and
stay robist through expanding procedural cosmetic filter
syntax.

Additionally, in the MV3 version, filters are pre-compiled
using a Nodejs script, i.e. outside the browser, so validating
cosmetic filters using a live DOM no longer made sense.

This new parser will have to be tested throughly before stable
release.
2022-09-23 16:03:13 -04:00
q1800 b32de13001
Update about.html (#3874) 2022-09-18 07:15:47 -04:00
Raymond Hill e31637af78
[mv3] Add ability to enable/disable filter lists 2022-09-13 17:44:24 -04:00
Raymond Hill 067e128163
Patch google-ima shim script for proper integration into uBO
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2158

Additionally, added firing of CONTENT_RESUME_REQUESTED event in
start() method.
2022-09-11 11:03:47 -04:00
Raymond Hill 816a380237
Change `github.xyz` to `github.link` 2022-05-08 11:23:50 -04:00
Raymond Hill 678dd89ca7
Add Cloudflare Pages as CDN provider for uBO's own filter lists 2022-03-20 08:17:17 -04:00
q1800 88d465fdd0
Correct GitHub link for HSLuv author (#3863)
I believe this was an error. Just submitted PR to correct error.
2022-02-02 16:30:14 -05:00
Raymond Hill ecb73d2ff5
Bring dark theme out of experimental status
Too many changes to list here, essentially there is now a
user interface setting to enable/disable dark theme, and
I've rearranged a bit the Settings pane as a result and
also altered other visuals in various places.

There are places which I know have not been thoroughly
tested (i.e. logger inspector).

Will fine-tune as per feedback.

Issues with the classic popup panel will not be addressed,
and if feedback is that it has become unusuable, it will be
outright removed.
2022-02-02 15:40:47 -05:00
Raymond Hill 4d482f9133
Store regex filter pattern into bidi-trie buffer
As was done with generic pattern-based filters, the source
string of regex-based filters is now stored into the
bidi-trie (pattern) buffer.

Additionally, added a new "dev tools" page to more
conveniently peer into uBO's internals at run time, without
having to do so from the browser's dev console -- something
which has become more difficult with the use of JS modules.

The new page can be launched from the Support pane through
the "More" button in the troubleshooting section.

The benchmark button in the About pane has been moved to this
new "dev tools" page.

The new "dev tools" page is for development purpose only,
do not open issues about it.
2021-12-12 10:32:49 -05:00
Raymond Hill 730735cc5e
Further fine-tune new Support pane
Related commit:
- a3a43c7cb4

Specifically:
- Support i18n
- Autofill issues opened through Support pane with configuration
  information
- Remove from About pane items found in Support pane
2021-10-15 14:50:34 -04:00
Raymond Hill 1d27138da9
Disclose where uBO's own filter lists are hosted 2021-07-18 10:10:17 -04:00
Raymond Hill 1e35ef8e15
Add link to privacy policy to About pane
I was sure it was there already but it turns out
it was not. Now it is.

Related discussion:
- https://www.reddit.com/r/uBlockOrigin/comments/nklywj/does_ublock_origin_now_collect_personal_data/gzjwhe4/
2021-05-28 07:19:15 -04:00
Raymond Hill 426395aa03
Improve extraction of tokens from regex-based filters
Regex-based static network filters are those most likely to
cause performance degradation, and as such the best guard
against undue performance degradation caused by regex-based
filters is the ability to extract valid and good tokens
from regex patterns.

This commit introduces a complete regex parser so that the
static network filtering engine can now safely extract
tokens regardless of the complexity of the regex pattern.

The regex parser is a library imported from:
https://github.com/foo123/RegexAnalyzer

The syntax highlighter adds an underline to regex-based
filters as a visual aid to filter authors so as to avoid
mistakenly creating regex-based filters. This commit
further colors the underline as a warning when a regex-based
filter is found to be untokenizable.

Filter list authors are invited to spot these untokenizable
regex-based filters in their lists to verify that no
mistake were made for those filters, causing them to be
untokenizabke. For example, what appears to be a mistake:

    /^https?:\/\/.*\/sw.js?.[a-zA-Z0-9%]{50,}/

Though the mistake is minor, the regex-based filter above
is untokenizable as a result, and become tokenizable when
the `.` is properly escaped:

    /^https?:\/\/.*\/sw\.js?.[a-zA-Z0-9%]{50,}/

Filter list authors can use this search expression in the
asset viewer to find instances of regex-based filters:

    /^(@@)?\/[^\n]+\/(\$|$)/
2020-12-26 08:52:42 -05:00
Raymond Hill a1aa9bd54f
Disable button until benchmark session is completed 2020-10-27 13:07:05 -04:00
Raymond Hill 4059a92838
Fine tune built-in benchmark
Additionally, add a button in the About pane
to launch benchmark sessions. The button will
be available only when advanced setting
`benchmarkDatasetURL` is set and pointing to
a valid dataset.
2020-10-27 12:59:31 -04:00
Raymond Hill 3bce80a7b6
Update link to uBO on Crowdin
The site changed it's main domain from crowdin.net
to crowdin.com.
2020-10-18 09:58:44 -04:00
Raymond Hill c6099d174d
Fix typos in HTML code
Related feedback:
- https://github.com/gorhill/uBlock/commit/01ab072f07f8#r38739334

Will `tidy` from now on.
2020-04-25 11:20:36 -04:00
Raymond Hill 01ab072f07
Add localized strings for contributions in About pane
Additionally, an entry for filter list
contributors has been added.
2020-04-24 20:17:21 -04:00
Raymond Hill 5bee33253f
More work toward redesigning the UI
As per email feedback from Mozilla's
https://github.com/brampitoyo

This is yet another incremental step toward
redesigning the UI, much more is left to do.
The idea is to align uBO's UI to that of
Firefox Preview.

Additionally, code has been added to reset
the new popup panel to vertical layout should
the viewport be not wide enough to
accomodate the horizontal layout.

Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/g4ufvi/
2020-04-21 16:33:08 -04:00
Raymond Hill 0662767dd6
Fifth pass to re-design the dashboard
Related commits:
- 99b2a0a761
- a8e3118fea
- 453f5450b6
- a45a21f337

Fine tuned previous work.

Started the use of variable-based color values.
2020-04-11 11:32:43 -04:00
Raymond Hill 99b2a0a761
Fourth pass to re-design the dashboard
Related commits:
- a8e3118fea
- 453f5450b6
- a45a21f337

Roughly, the changes in this commit:
- Make it easier to implement a dark theme eventually:
  - Flatten the look of buttons
  - Remove the use of `opacity` style property as a
    color modifier
- Some work toward removing dependency on FontAwesome
  font
2020-04-10 18:17:12 -04:00
Raymond Hill 80a8750d35
Select existing "Advanced settings" page if any
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/591

Additionally, I added a link to the logger in the
"About" pane in the dashboard in order to be able
to access the logger without having to go through
the popup panel.
2019-05-25 08:31:06 -04:00
Raymond Hill bb737e29d5
Revert use of Fontawesome v5; use 4.7 or equivalent: see <>https://github.com/uBlockOrigin/uBlock-issues/issues/249#issuecomment-448587658 2018-12-19 14:05:19 -05:00
Raymond Hill 350c106d41
Add attribution for Fontawesome 5 2018-12-18 18:03:56 -05:00
Raymond Hill ead324d859
GPLv3 requirement: "includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice" 2018-11-02 17:16:44 -03:00
Raymond Hill 44224fe2c7
use old.reddit.com for support URL 2018-05-29 07:40:29 -04:00
Raymond Hill d0c1c7c4c9
add link to issue tracker in dashboard's 'About' 2018-04-27 08:44:25 -04:00
Raymond Hill fce2eaf3c3
further improving UI for small screens 2018-03-28 16:15:50 -04:00
Raymond Hill b10ac0020d
make use of CodeMirror in "My rules" pane 2018-03-11 10:59:39 -04:00
Raymond Hill e5bb1eee1b
add credit for CodeMirror 2018-02-28 19:04:52 -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 0130e2b462
fix support link 2017-09-20 10:28:17 -04:00
gorhill 502dd89d53
fix AMO validation warning re. invalid CSS 2017-08-10 18:55:36 -04:00
Alex Silva 06237767fa Update about.html (#2841) 2017-08-03 17:07:30 -04:00
gorhill fb37378e7c
Revert "Tabnapping prevention (#2529)". Reason: breaks links in dashboard on Firefox.
This reverts commit 557f378bf8.
2017-04-29 10:08:20 -04:00
timse201 557f378bf8 Tabnapping prevention (#2529)
* tabnapping prevention

* Tabnapping prevention

* Tabnapping prevention

* Tabnapping prevention

* Tabnapping prevention
2017-04-26 12:40:41 -04:00
gorhill 1a075bc673 code review: mobile-friendly changes 2017-01-24 08:23:52 -05:00
gorhill 7e23aae879 reverse part of 93001a86, apparently translating "by" is more complicating than first thought 2016-10-01 12:44:08 -04:00
gorhill 93001a8635 fix issue raised on https://crowdin.com/project/ublock: missing ability to translate "by" 2016-09-30 09:48:31 -04:00
gorhill 4290b4b065 fix issue reported on Crowdin: "Support" not available for translation 2016-08-21 20:04:59 -04:00
gorhill 97fff91c23 add missing credit 2016-07-20 18:46:18 -04:00
gorhill c53731248d added link to Mozilla Discourse for support 2016-01-26 17:57:09 -05:00
gorhill 6dd5c832a2 this really fixes #599, #600 2015-08-15 09:24:55 -04:00