Commit graph

1343 commits

Author SHA1 Message Date
Raymond Hill
8c4249a870
Try to not rely on UA to lookup environment flavor
The environment flavor is used to by uBO to for self-configuration.

For users with spoofed UA at the `about:config` level, this might
cause uBO to misconfigure itself. Avoid UA and strictly rely on
browserInfo() for looking up environment parameters.
2019-02-12 11:11:58 -05:00
Raymond Hill
e06cf1de9b
Shield early request handler against re-entrance
Unlikely re-entrance is occurring, but there is no harm
shielding against it -- just in case.
2019-02-12 07:13:37 -05:00
Raymond Hill
656203adc7
Minor generic code review of changes since 1.18.2 2019-02-02 08:09:34 -05:00
Raymond Hill
920eee88be
Code review: ensure vAPI.shutdown.exec is called from root context only
This prevents uncaught errors in content scripts when uBO's main
process is terminated (i.e. disabled, updated).
2019-01-28 16:16:52 -05:00
Raymond Hill
a6ebcc85be
Reuse both flavors of webRequest wrapper in webext package
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/407

Both flavors will be stitched together into a single
`vapi-qebrequest.js` file.

The decision of which flavor to use will be made at runtime,
according to the browser environment.
2019-01-28 16:12:26 -05:00
Raymond Hill
15100459b3
Harden content script's message Port against spurious disconnections
Those spurious disconnections have been observed to occur at
uBO's launch time.

Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/403

I have observed that this fixes an issue observed on Firefox 64
(current stable).

The reported Waterfox issue *may* be fixed as a result. If not,
the issue he still considered fixed as Waterfox is not
officially supported.
2019-01-27 17:07:40 -05:00
Raymond Hill
3eb26fc0c5
Set minimum Opera version to 40 (Chromium 53) 2019-01-25 08:41:15 -05:00
Raymond Hill
305cd4db1c
Experimental Thunderbird 65+ support: experimental
Related issues:
- https://github.com/uBlockOrigin/uBlock-issues/issues/194

This is a first iteration, which purpose is to merely allow
uBO to load properly. Many things are known to not work,
quite probably due to the early Thunderbird support of the
WebExtensions framework.

Permission which had to be removed:
- contextMenus

Manifest entries which had to be removed:
- commands
- sidebar_action

uBO's webRequest listeners are not being called when loading a
feed item in the preview pane, *except* for resources fetched
from embedded iframes.

uBO appears to function properly when a feed item is opened in
its own tab.
2019-01-20 12:22:40 -05:00
Raymond Hill
ed5d63df69
Grand refactoring of the logger
Performance-related work: the logger data has been decoupled
from the DOM -- inspired from CodeMirror's way of efficiently
handling large amout of text data.

This decoupling now makes the logger highly efficient CPU- and
memory-wise, and open the way to more possibilities.

Ability to configure some aspect of the logger behavior and
visuals:
- The hard-coded limit of 5000 entries has been
  removed and is now replaced with a variety of
  user-configurable settings to enforce the discarding of
  logger entries.
- Some columns in the logger output can now be hidden.

The filter list look-up feature has been merged into the
existing overlay dialog used to create URL rules or static
filters, as an entry in a new "Details" pane.

Other issues addressed during refactoring:
- https://github.com/uBlockOrigin/uBlock-issues/issues/280
- https://github.com/gorhill/uBlock/issues/1999

The minimum version supported on Firefox has been bumped
up to 55.0.
2019-01-12 16:36:20 -05:00
Raymond Hill
0341a5e1f9
Use URL to proper issue in comments 2018-12-25 13:29:41 -05:00
Raymond Hill
be9e7fd11c
Code review related to the early blocking of network requests at launch 2018-12-24 08:56:35 -05:00
Raymond Hill
41548be6be
Move early blocking of requests out of experimental status on Firefox
Related issues:
- https://github.com/gorhill/uBlock/issues/2067
- https://github.com/uBlockOrigin/uBlock-issues/issues/128

Related mozbug issue:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1503721
2018-12-23 17:59:31 -05:00
Raymond Hill
ee89f88265
fix https://github.com/uBlockOrigin/uBlock-issues/issues/345 2018-12-16 10:51:25 -05:00
Raymond Hill
5b7a3c9983
fix https://github.com/uBlockOrigin/uBlock-issues/issues/256; add regex support in logger filter field 2018-12-14 11:01:21 -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
5c33a57158
fix reported extension error in Chrome 72.0.3622.0
Apparently the "file:///" permission is redundant to the declared
"<all_urls>" permission.
2018-12-05 14:46:35 -05:00
Raymond Hill
ec55191a25
fix regression reported at https://www.reddit.com/r/uBlockOrigin/comments/9vcrk3/bug_in_ubo_1173_betas_when_saving_files_hosted_on/ 2018-11-08 19:58:45 -02:00
Raymond Hill
649f82f901
fix https://github.com/uBlockOrigin/uBlock-issues/issues/296 2018-11-02 08:55:15 -03:00
Raymond Hill
9039874fc9
refactor some webRequest-related code (now that firefox legacy is out of the way) 2018-10-28 10:58:25 -03: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
fee65bec57
fix another case of https://github.com/uBlockOrigin/uBlock-issues/issues/167 2018-09-29 18:56:59 -04:00
Raymond Hill
015e31b577
fix https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=909626 2018-09-26 07:20:54 -04:00
Raymond Hill
6dd6dc5f1d
fix https://www.reddit.com/r/uBlockOrigin/comments/9gwrna/when_you_right_click_and_go_to_options_it_keeps/ 2018-09-18 20:14:09 -04:00
Raymond Hill
c506c0cd7a
fix https://github.com/uBlockOrigin/uBlock-issues/issues/223 2018-09-15 06:15:40 -04:00
Raymond Hill
3ef4005f63
remove obstacle to modernize codebase with ES6 syntax: bump up min version for Chromium 2018-09-03 14:03:38 -04:00
Raymond Hill
c00297680b
fix https://www.reddit.com/r/uMatrix/comments/8lc9ia/ 2018-08-25 12:57:21 -04:00
Raymond Hill
273f1db297
fix <https://github.com/uBlockOrigin/uBlock-issues/issues/168>: Firefox for Android does not support the windows API 2018-08-14 18:56:08 -04:00
Raymond Hill
dc430f1eff
fix https://github.com/uBlockOrigin/uBlock-issues/issues/167 2018-08-14 14:32:56 -04:00
Raymond Hill
38aabc937a
reorganize cache storage compression; workaround fix for #2812 2018-08-11 10:39:43 -04:00
Raymond Hill
e163080518
added optional lz4 compression for cache storage (https://github.com/uBlockOrigin/uBlock-issues/issues/141)
Squashed commit of the following:

commit 6a8473822537636ac54d5dabdb14472114bb730b
Author: Raymond Hill <rhill@raymondhill.net>
Date:   Mon Aug 6 10:56:44 2018 -0400

    remove remnant of snappyjs and spurious instruction

commit 9a4b709bee97d3cc2235fab602359fa5953bdb46
Author: Raymond Hill <rhill@raymondhill.net>
Date:   Mon Aug 6 09:48:58 2018 -0400

    make cache storage compression optionally available on all platforms

    New advanced setting: `cacheStorageCompression`. Default is `false`.

commit 22ee6547f2f7c9c5aefe25dea1262a1b31612155
Author: Raymond Hill <rhill@raymondhill.net>
Date:   Sun Aug 5 19:16:26 2018 -0400

    remove Chromium from lz4 experiment

commit ee3e201c45afe983508f70713a2d43af74737d8d
Author: Raymond Hill <rhill@raymondhill.net>
Date:   Sun Aug 5 18:52:43 2018 -0400

    import lz4-block-codec.wasm library

commit 883a3118efcfd749c82356fde7134754d6ae371d
Author: Raymond Hill <rhill@raymondhill.net>
Date:   Sun Aug 5 18:50:46 2018 -0400

    implement storage compression through lz4-wasm [draft]

commit 48d1ccaba407de447c2cd6747dc3a90839c260a7
Merge: 8ae77e6 b34c897
Author: Raymond Hill <rhill@raymondhill.net>
Date:   Sat Aug 4 08:56:51 2018 -0400

    Merge branch 'master' of github.com:gorhill/uBlock into lz4

commit 8ae77e6aeeaa85af335e664c2560d2afd37288c6
Author: Raymond Hill <rhill@raymondhill.net>
Date:   Wed Jul 25 18:17:45 2018 -0400

    experiment with compression
2018-08-06 12:34:41 -04:00
Raymond Hill
3bcdddfb9f
fix missing exception handler (https://github.com/uBlockOrigin/uBlock-issues/issues/141) 2018-07-23 13:13:47 -04:00
Raymond Hill
c5e3773a3c
prevent sidebar from opening when uBO is 1st installed [Firefox] 2018-07-22 16:15:58 -04:00
Raymond Hill
1836f7656e
no need for multiple icon entries when using svg 2018-07-22 10:41:35 -04:00
Raymond Hill
23979c3197
fix https://github.com/uBlockOrigin/uBlock-issues/issues/52 2018-05-30 12:55:33 -04:00
Raymond Hill
06756baed9
improve use of imageData in setIcon
- Generate imageData according to existing path information
- Pass a copy as argument (see 06768dcadb)
2018-05-27 11:13:25 -04:00
Raymond Hill
3b61ef51b0
fix version parsing in 91b0ac5b3f 2018-05-20 08:12:09 -04:00
Raymond Hill
91b0ac5b3f
fix dd92337a4a (commitcomment-29051501) 2018-05-20 07:45:39 -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
Raymond Hill
0458d01eb2
handle initiator === "null" (see https://issues.adblockplus.org/ticket/6586) 2018-05-14 08:11:50 -04:00
Raymond Hill
a9a1cc3f3b
code review: use setIcon w/ ImageData only for chromium-based browsers 2018-05-09 08:08:19 -04:00
Raymond Hill
d3691cf45a
fix https://github.com/uBlockOrigin/uBlock-issues/issues/32 2018-05-08 15:01:25 -04:00
Raymond Hill
7e5661383a
code review to further lower overhead of updating toolbar icon 2018-05-08 09:43:25 -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
14709d18cf
fix #2809 2018-05-04 08:44:54 -04:00
Raymond Hill
8be1aed04d
guard against future instances of issue fixed in #3721 2018-05-03 09:55:36 -04:00
Rob Wu
b27f23d520 Clear return value of vapi.js content script (#3721)
Upon start-up, uBlock runs all content scripts in manifest.json using
`chrome.tabs.executeScript`. When this API is used, the value of the
last expression is automatically cloned and transferred to the
callback of `chrome.tabs.executeScript`. This is convenient if needed,
and a performance burden otherwise (the latter is the case for uBlock).

There are three content scripts that need to be checked:

- vapi.js
  The last expression is often the vAPI object, and it is relatively
  expensive to clone this object. This commit sets the value of the
  last expression to `void 0` to solve this inefficiency.

- vapi-client.js
  No action needed yet; The last expression is `vAPI.shutdown.add(...)`,
  which has a void return value.

- contentscript.js
  No action needed yet; The last expression is an immediately-invoked
  function expression without return value.
2018-05-01 07:28:21 -04:00
Raymond Hill
29bad2afab
typo 2018-04-27 12:49:34 -04:00
Raymond Hill
3a703afef3
add README to webext platform 2018-04-27 12:49:11 -04:00
Raymond Hill
2b460da748
rename "debian" target to more accurate "webext" 2018-04-27 12:39:43 -04:00
Raymond Hill
c9b14e201a
rename "webext" target to more accurate "firefox" 2018-04-27 12:37:33 -04:00
Raymond Hill
e930403635
move template file to a more sensible location 2018-04-27 12:25:29 -04:00
Raymond Hill
08495c42e9
complete "debian" as a target platform 2018-04-27 11:43:35 -04:00
Raymond Hill
443010efdc
remove firefox/legacy platform, it now has its own branch: firefox-legacy 2018-04-27 08:40:53 -04:00
Raymond Hill
3923520b87
remove no longer needed platform-dependent polyfill.js 2018-04-27 08:36:38 -04:00
Raymond Hill
9baf17fa2a
patch firefox/legacy for changes in e5f2e9701d 2018-04-26 12:01:31 -04:00
Raymond Hill
e5f2e9701d
better manage platform-specific code for user-stylesheet support 2018-04-26 11:36:22 -04:00
Raymond Hill
6a0120340c
merge Firefox/webext-specific code into Chromium (see #3716) 2018-04-26 09:12:46 -04:00
anvakl
4d3a2b5f85 Minor fixes to code (#3720)
* Fix leftovers from old code.

* change changes.procedural.size to changes.procedural.length

changes.procedural is an array so it should be changes.procedural.length
the  code works with changes.procedural.size because (undefined !== 0) is always true.
2018-04-24 06:05:30 -04:00
Raymond Hill
50d5ab68c8
fix https://github.com/uBlockOrigin/uBlock-issues/issues/9 2018-04-22 14:50:40 -04:00
Raymond Hill
5386558e68
fix https://www.reddit.com/r/uBlockOrigin/comments/8dkvqn/116_broken_loading_custom_filters_from_my_filters/ 2018-04-21 12:34:54 -04:00
Michele Spagnuolo
15ed9abb5b Compress the icon PNGs with zopflipng (#3458) 2018-04-15 06:30:40 -04:00
Raymond Hill
e2af7c5c55
code review: simplfy devbuild detection using webextFlavor 2018-04-14 06:09:36 -04:00
Raymond Hill
e40a66e294
code review of efcab14597: fix collected errors; replace Promises with callbacks 2018-04-12 17:32:38 -04:00
Raymond Hill
efcab14597
Squashed commit of the following:
commit ab2b328cf1360a751fa1c58b8521f907eeb1ec50
Author: Raymond Hill <rhill@raymondhill.net>
Date:   Thu Apr 12 12:08:30 2018 -0400

    fix #3588

commit c4ae7638dfa5a5c7ddec2f9dd2d2988450082542
Author: Raymond Hill <rhill@raymondhill.net>
Date:   Thu Apr 12 09:08:56 2018 -0400

    detect user stylesheets support from content scripts (#3588)
2018-04-12 12:17:38 -04:00
Raymond Hill
7ca6e8bfb3
code review: not a fan of deep indentation; detect Edge, Safari 2018-04-12 07:29:14 -04:00
Raymond Hill
c34326cf4e
code review: further tuning filter list directives 2018-04-11 06:34:13 -04:00
Raymond Hill
369eb6f6de
Merge branch 'opera-1.15.24' 2018-04-09 12:30:14 -04:00
Raymond Hill
e377b3e915
changes needed for releasing uBO/opera 1.15.24 2018-04-09 10:04:32 -04:00
Raymond Hill
79b4706746
code review: avoid special WebRTC test for non-Chromium browsers (#533) 2018-04-06 13:25:06 -04:00
Raymond Hill
93f49a61d7
add pre-processor directives to filter list compiler (https://github.com/AdguardTeam/AdguardBrowserExtension/issues/917) 2018-04-05 07:29:15 -04:00
Raymond Hill
bf384e2bca
better evaluate vAPI.webextFlavor 2018-04-04 12:42:01 -04:00
Raymond Hill
fe11ff61c8
mind whitelist directives for filterable behind-the-scene requests (#3654) 2018-04-02 09:10:38 -04:00
Raymond Hill
fd78f9b743
remove experimental pseudo-redirector for the time being 2018-04-02 04:47:24 -04:00
Raymond Hill
8a64ba6f43
code review for 5c15f68 2018-04-01 06:58:20 -04:00
Raymond Hill
cb060e54ee
code review for 5c15f685 2018-03-31 19:41:59 -04:00
Raymond Hill
5c15f685f1
add workaround for Firefox's inability to redirect xhr to data: URI 2018-03-31 18:47:56 -04:00
Raymond Hill
d122b4a607
remove obsolete code 2018-03-31 10:20:44 -04:00
Raymond Hill
b7e5c9af49
make use of Chromium 63's webRequest's new initiator property 2018-03-30 15:30:53 -04:00
Raymond Hill
b42c128213
increase min version of Pale Moon 2018-03-12 09:02:51 -04:00
Raymond Hill
94ebeea314
fix code patching updates.json 2018-02-26 15:32:29 -05:00
Raymond Hill
2c901588c7
fix #3546, #3428 2018-02-26 13:59:16 -05:00
Raymond Hill
d2822a8625
fix template as per https://developer.mozilla.org/en-US/Add-ons/Updates 2018-02-24 09:19:43 -05:00
Raymond Hill
0baed3356b
add needed files for self-hosting Firefox dev build of uBO 2018-02-23 10:00:29 -05:00
Raymond Hill
267f769da9
new revision for dev build 2018-02-21 07:19:38 -05:00
Raymond Hill
c26d68405a
new revision for dev build 2018-02-18 07:27:32 -05:00
Raymond Hill
16a7ba8f6e
new revision for dev build 2018-02-16 16:55:52 -05:00
Raymond Hill
f98cd53cdc
new revision for dev build 2018-02-16 09:32:49 -05:00
Raymond Hill
7e68061da0
new revision fro dev build 2018-02-15 17:38:24 -05:00
Raymond Hill
e65d710f83
new revision for dev build 2018-02-15 17:28:30 -05:00
Raymond Hill
17930cc778
fix #3474, #2823 2018-02-15 17:25:38 -05:00
Raymond Hill
baf939e2a4
new revision for dev build 2018-02-12 10:28:32 -05:00
Raymond Hill
99ca4ce88a
new revision for dev build 2018-02-05 12:06:24 -05:00
Raymond Hill
d1d96ba30f
new revision for stable release 2018-02-03 12:06:52 -05:00
Raymond Hill
ae4677c0c7
new revision for release candidate 2018-02-03 09:35:29 -05:00
Raymond Hill
026286977e
new revision for release 2018-02-03 07:04:04 -05:00
Raymond Hill
fb4d412cf6
new revision for release 2018-01-31 12:32:07 -05:00
Raymond Hill
568c1d46e4
new revision for release candidate 2018-01-16 09:20:39 -05:00
Raymond Hill
1c468035dd
fix #3441 2018-01-16 09:13:51 -05:00
Raymond Hill
f7d7657293
new revision for release candidate 2018-01-13 09:45:44 -05:00
Raymond Hill
0b684bd419
new revision for release candidate 2018-01-11 11:09:15 -05:00