Commit Graph

1562 Commits

Author SHA1 Message Date
Raymond Hill a9659d039d
Add missing command in manifest.json 2019-06-26 17:17:41 -04:00
Raymond Hill 693687fd74
Add keyboard support for toggling down blocking profile
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/371

By default, no specific keyboard shortcut is predefined,
this will have to be assigned by the user. The command
name in English is "Toggle blocking profile".

The default behavior is to toggle down according to one
of the following scenarios.

a) If script execution is disabled through the no-scripting
switch, the no-scripting switch will be locally toggled
so as to allow script execution. The page will be
automatically reloaded.

b) If script execution is not blocked but the 3rd-party
script and/or frame cells are blocked, local no-op rules
will be set so as to no longer block 3rd-party scripts
and/or frames. The page will be automatically reloaded.

Given this, it may take more than one toggle down command
to reach the lowest blocking profile, which is one where
JavaScript execution is not blocked and 3rd-party scripts
and frames resources block rules, if any, are bypassed
with local no-op rules.

TODO: At this point, I haven't yet decided whether
toggling from the lowest profile should restore the
original highest blocking profile.
2019-06-26 07:47:14 -04:00
Raymond Hill 793aca7ddb
Fix internal cosmetic filter being reported in the logger
Regression from:
- 62387fb87a

Repro steps were:
- Open the logger
- Navigate to `https://news.ycombinator.com/`
- Select an element using the element picker
- Click "Preview"

An attribute selector used internally by uBO to
hide targeted nodes was being reported in the
logger.
2019-06-20 07:14:34 -04:00
Raymond Hill 184e4f7a42
Avoid reloading the dashboard tab if it is already present
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/592
2019-05-24 20:15:40 -04:00
Raymond Hill eed13194fb
Handle possible exceptions in vAPI.messaging.broadcast()
I had exceptions thrown by that code once in a while,
about the `port` object not being connected; possibly
occurs only when using dev tools with breakpoints
in uBO's code. Even if this can be reproduced randomly
only when debugging uBO, it costs nothing to add code
in there to handle exceptions.
2019-05-21 14:07:38 -04:00
Raymond Hill 1386429382
Fix regression in applying procedural cosmetic filters
Related commit:
- 3573b6b32c
2019-05-16 17:22:20 -04:00
Raymond Hill 3573b6b32c
Add ability to report exception cosmetic filters in the logger
Related issue:
- https://github.com/gorhill/uBlock/issues/127

Additionally, the extended exception filters in the
logger will be rendered with a line-through to more
easily distinguish them from non-exception ones.

Also, opportunistically converted revisited code to
ES6 syntax.
2019-05-16 13:44:49 -04:00
Raymond Hill 9dfb570aa8
Use `browser_specific_settings` instead of `applications`
As per MDN's documentation, `applications` is a non-standard
alias for `browser_specific_settings` in `manifest.json`:

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_specific_settings#Browser_compatibility

Best to use the official manifest key.
2019-05-06 11:34:15 -04:00
Raymond Hill b87b242384
Use per-request secret rather than time-based secret
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/550
2019-05-01 07:41:04 -04:00
Raymond Hill 99212e3264
Code review: use function arrow properly 2019-05-01 06:35:47 -04:00
Raymond Hill 016625465e
Simplify a bit 9e43852 by using Array.every() 2019-04-30 16:18:40 -04:00
Raymond Hill 0714aceaaf
Simplify secret generation introduced in 9e4385243c 2019-04-30 15:19:10 -04:00
Raymond Hill 9e4385243c
Web accessible secrets can be used for at most one second
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/550

Related Chromium issue (I can't access it):
- https://bugs.chromium.org/p/chromium/issues/detail?id=957866

Findings so far: affects browsers based on Chromium 74.
I could not reproduce the issue with either Chromium 73 or
Google Chrome 75.

This commit is a mitigation: to prevent sites from using
uBO's internal WAR secret for tracking purpose. A secret
can be used for at most one second, after which a new secret
is generated.

The original issue related to the implementation of
secret-gated web accessible resources is:
- https://github.com/gorhill/uBlock/issues/2823
2019-04-30 14:36:07 -04:00
Raymond Hill 367cdd6666
Make use of `X-DNS-Prefetch-Control` in Chromium-based browsers
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/548

The fix applies only to Chromium-based browsers -- a
`X-DNS-Prefetch-Control` header[1] will be unconditionally
injected when uBO's "Disable pre-fetching" setting is
enabled (it is by default).

This is a mitigation, this does not completely fix the issue
of the setting "Disable pre-fetching" being disregarded on
Chromium-based browsers when sites use
`preconnect`/`preload`.

[1] https://developer.mozilla.org/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control
2019-04-27 13:12:33 -04:00
Raymond Hill 977178bef2
Use a lower WebRTC mode on Firefox to hide private IP addresses
Releated issue:
- https://github.com/gorhill/uBlock/issues/3009

Firefox implements differently the behavior of `disable_non_proxied_udp`,
and this probably leads to more oft-misdiagnosed breakage.

Example:
https://www.reddit.com/r/firefox/comments/b4guyl/gotowebmeeting_same_unsupported_bs/
2019-03-23 16:23:42 -03:00
Raymond Hill 34a138e3ef
Add `unlimitedStorage` to Firefox manifest; add timeout to IndexedDB access
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/416

The Chromium version of uBO has declared `unlimitedStorage` since the
extension was first published in 2014. Declaring this permission in
Firefox brings uBO inline with the Chromium version. I suspect some
reported errors could be caused by IndexedDB eviction due to the lack
of `unlimitedStorage` permission.

Additionally, a timeout has been added when uBO tries to access its
indexedDB storage. It's unclear whether this will help with the
mentioned related issue though, the root cause is still to be
identified.
2019-03-17 09:45:28 -04:00
Raymond Hill 0d369cda21
Allow use of browser.storage.local as cache storage backend in Firefox
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/409

By default `indexedDB` is used in Firefox for purpose of cache storage
backend.

This commit allows to force the use of `browser.storage.local` instead
as cache storage backend. For this to happen, set `cacheStorageAPI` to
`browser.storage.local` in advanced settings.

Additionally, should `indexedDB` not be available for whatever reason,
uBO will automatically fallback to `browser.storage.local`.
2019-02-17 15:40:09 -05:00
Raymond Hill ed7e34fb07
Refactor selfie generation into a more flexible persistence mechanism
The motivation is to address the higher peak memory usage at launch
time with 3rd-gen HNTrie when a selfie was present.

The selfie generation prior to this change was to collect all
filtering data into a single data structure, and then to serialize
that whole structure at once into storage (using JSON.stringify).

However, HNTrie serialization requires that a large UintArray32 be
converted into a plain JS array, which itslef would be indirectly
converted into a JSON string. This was the main reason why peak
memory usage would be higher at launch from selfie, since the JSON
string would need to be wholly unserialized into JS objects, which
themselves would need to be converted into more specialized data
structures (like that Uint32Array one).

The solution to lower peak memory usage at launch is to refactor
selfie generation to allow a more piecemeal approach: each filtering
component is given the ability to serialize itself rather than to be
forced to be embedded in the master selfie. With this approach, the
HNTrie buffer can now serialize to its own storage by converting the
buffer data directly into a string which can be directly sent to
storage. This avoiding expensive intermediate steps such as
converting into a JS array and then to a JSON string.

As part of the refactoring, there was also opportunistic code
upgrade to ES6 and Promise (eventually all of uBO's code will be
proper ES6).

Additionally, the polyfill to bring getBytesInUse() to Firefox has
been revisited to replace the rather expensive previous
implementation with an implementation with virtually no overhead.
2019-02-14 13:33:55 -05:00
Raymond Hill 83a3767a16
Test presence of `firefox` instead of absence of `chromium` 2019-02-12 15:29:20 -05:00
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 efcab145978b: 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
Raymond Hill 295cf563ee
add sidebar support for Opera 2018-01-11 09:08:09 -05:00
Raymond Hill 36b1eac88e
fix #3425 (regression from 6cdb20df) 2018-01-10 17:59:07 -05:00
Raymond Hill d706415890
new revision for dev build 2018-01-10 12:04:56 -05:00
Raymond Hill 6cdb20dffe
improve logger convenience following fix for #2854 2018-01-09 08:08:17 -05:00
Raymond Hill 098f3baadd
code review: fix regex used to report cosmetic filters in logger 2018-01-08 15:03:55 -05:00
Raymond Hill 225bab9550
new revision for dev build 2018-01-08 14:33:25 -05:00
Raymond Hill 689d18c54f
fix #2854 2018-01-08 14:29:39 -05:00
Raymond Hill 233afcdcac
new revision for dev build 2018-01-07 18:04:12 -05:00
Raymond Hill b7155a0e0f
fix #3408 2018-01-07 17:53:33 -05:00
Raymond Hill 71009cf83d
update minimum opera version (#3411) 2018-01-07 15:14:32 -05:00
Raymond Hill 7684bfde53
new revision for dev build 2018-01-05 13:24:53 -05:00
Raymond Hill fcd2124ad3
new revision for dev build 2018-01-04 18:30:23 -05:00
Raymond Hill 1c1fdde4d2
new revision for dev build 2018-01-03 14:07:57 -05:00
Raymond Hill 9049909d2d
new revision for dev build 2018-01-02 23:22:40 -05:00
Raymond Hill fc26b5d227
new revision for dev build 2017-12-31 21:15:22 -05:00
Raymond Hill e675ccf73e
fix improper reporting of internal filter in logger [Firefox] 2017-12-31 21:13:46 -05:00
Raymond Hill d8d1fa5221
new revision for dev build 2017-12-31 16:06:45 -05:00
Raymond Hill 35eaf267e6
new revision for dev build 2017-12-31 08:46:58 -05:00
Raymond Hill 96576df1e4
new revision for dev build 2017-12-30 11:22:03 -05:00
Raymond Hill 93e76ecf5d
new revision for dev build 2017-12-29 20:36:31 -05:00
Raymond Hill ff67cf5ada
new revision for dev build 2017-12-29 15:56:53 -05:00
Raymond Hill a25166be92
new revision for dev build 2017-12-29 08:06:40 -05:00
Raymond Hill 8d4f2a2d11
new revision for dev build 2017-12-28 14:24:04 -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
Raymond Hill 11ccf8e2b9
new revision for dev build 2017-12-22 09:43:28 -05:00
Raymond Hill 904e550fc0
new revision for dev build 2017-12-17 08:15:24 -05:00
Raymond Hill f753952adc
new revision for dev build 2017-12-15 10:10:09 -05:00
Raymond Hill 2ef892c086
new revision for release candidate 2017-12-14 08:26:36 -05:00
gorhill 61a259013c
new revision for release candidate 2017-12-10 15:05:11 -05:00
gorhill 59b6243633
new revision for dev build 2017-12-08 07:15:13 -05:00
gorhill 4b70553263
new revision for dev build 2017-12-07 18:58:04 -05:00
gorhill 916cc3cf78
new revision for release candidate 2017-12-05 14:47:33 -05:00
gorhill 88ce17561f
fix #3321: make uBO the bigger person and walk away from a pointless fight 2017-12-05 14:37:12 -05:00
gorhill e7d5c836d9
new revision for release candidate 2017-12-05 08:43:17 -05:00
gorhill 4f28301736
import fix to https://github.com/gorhill/uMatrix/issues/840 2017-12-05 08:42:26 -05:00
gorhill 061444bfc6
new revision for dev build 2017-11-30 11:39:18 -05:00
gorhill 9b97609204
minor code review 2017-11-30 08:42:31 -05:00
gorhill 5518e2681a
remove obsolete indexedDB transition-related code 2017-11-30 08:31:28 -05:00
gorhill de1768025c
new revision for stable release 2017-11-29 07:20:44 -05:00
gorhill de2ac0a4d2
new revision for release candidate 2017-11-27 14:53:03 -05:00
gorhill 0c2b715e61
new revision for dev build 2017-11-24 00:47:47 -05:00
gorhill 91de400a64
fix https://github.com/uBlockOrigin/uAssets/issues/859#issuecomment-346681469 2017-11-24 00:39:01 -05:00
gorhill 8c424c15b2
new revision for release candidate 2017-11-22 08:05:07 -05:00
gorhill 71e8983a5f
new revision for dev build 2017-11-21 18:09:43 -05:00
Kacper Michajłow ec70c75264 improve DOM inspector (#3254)
* dom-inspector: Improvments

- Fix race between userCSS injection and element highlight resulting in none or not all elements highlighted.
- Fix page being scanned twice resulting in unneeded slowdown.

* dom-inspector: Clear mutationTimer to allow more than one update.

* dom-inspector: Fix procedural filters shown as declarative with expando.
2017-11-21 18:08:32 -05:00
gorhill 1f7243ce55
new revision for dev build 2017-11-21 13:42:18 -05:00
gorhill 848ca6c351
new revision for dev build 2017-11-20 08:46:33 -05:00
gorhill 806032cdc4
improve DOM inspector
- Fix regressions reported in #3159
- Fix #2001
- Fix some item points in #407
2017-11-20 08:42:32 -05:00
gorhill 7e69a75fe8
new revision for dev build 2017-11-16 11:02:54 -05:00
gorhill 387eaa0b21
fix #3185 2017-11-16 10:55:28 -05:00
gorhill 8646b78306
new revision for dev build 2017-11-15 16:35:00 -05:00
gorhill 11cba7b1a7
new revision for dev build 2017-11-14 15:09:28 -05:00
gorhill 374e157b11
fix #3159 2017-11-14 15:03:20 -05:00
gorhill 9c23e4ab67
adjust minimum version to account for usage of Array.from 2017-11-14 08:44:59 -05:00
gorhill fdad94f98b
new revision for dev build 2017-11-13 09:06:32 -05:00
gorhill 77334bf380
new revision for dev build 2017-11-11 08:03:15 -05:00
gorhill aa4cfbf201
use svg version also for favicons, meny entry 2017-11-11 07:55:37 -05:00
gorhill fd5f63d850
fix #3196 2017-11-10 11:36:14 -05:00
gorhill 9e60432860
new revision for dev build 2017-11-10 08:02:36 -05:00
gorhill f7bfcff37a
new revision for dev build 2017-11-09 13:01:35 -05:00
gorhill 8b2c6a6280
new revision for dev build of next iteration 2017-11-05 12:34:58 -05:00
gorhill 6cecd2192e
new revision for dev build 2017-10-31 07:38:54 -04:00
gorhill 7accd6dda9
new revision for dev build 2017-10-29 16:59:22 -04:00
gorhill f639eb9dd7
new revision for dev build 2017-10-28 09:09:56 -04: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 198f72a912
new revision for dev build 2017-10-26 10:12:09 -04:00
gorhill 8624ba40d5
new revision for dev build 2017-10-25 11:54:54 -04:00
gorhill 2d5e3f38f3
code review: use Map instead of Object 2017-10-25 11:27:16 -04:00
gorhill 2274760275
new revision for dev build 2017-10-24 16:49:18 -04:00
gorhill 23487a643a
prepend vapi-usercss.js to contentscript.js in extension package 2017-10-24 12:40:58 -04:00
gorhill ed5dba432a
fix https://discourse.mozilla.org/t/support-ublock-origin/6746/606 2017-10-24 09:09:10 -04:00
gorhill c7fa91ffb6
new revision for dev build 2017-10-24 07:56:18 -04:00
gorhill 47c7da377e
drop webext-hybrid support 2017-10-23 13:43:45 -04:00
gorhill 2be7bbf6e9
drop webext-hybrid support 2017-10-23 13:39:45 -04:00
gorhill 0503f52b1e
remove unused source code 2017-10-23 13:35:11 -04:00
gorhill 50f3369351
new revision for dev build 2017-10-23 12:54:43 -04:00
gorhill a76f5b15ac
fix https://github.com/gorhill/uBlock/issues/3160#issuecomment-338509997 2017-10-23 12:21:37 -04:00
gorhill 6e18829f02
add to #2984: fix regressions, as per feedback and code review 2017-10-23 09:01:00 -04:00
gorhill ef84e6d8fd
fix https://github.com/gorhill/uBlock/issues/2984#issuecomment-338475886 2017-10-22 12:48:13 -04:00
gorhill 4f7aab695c
fix #3160 2017-10-22 08:59:29 -04:00
gorhill 6112a68faf
fix #2984 2017-10-21 13:43:46 -04:00
gorhill 3e35f10c25
fix #3156 2017-10-21 08:43:45 -04:00
gorhill 39cceec1ed
new revision for dev build 2017-10-19 09:41:40 -04:00
gorhill 392fef1828
new revision for dev build 2017-10-18 15:16:42 -04:00
gorhill eb7bdba47f
fix #3140 2017-10-18 15:00:22 -04:00
gorhill b89dbcce39
new revision for release candidate 2017-10-18 08:45:23 -04:00
gorhill 69241fb3db
new revision for dev build 2017-10-13 09:53:33 -04:00
gorhill 13e643098f
new revision for dev build 2017-10-12 07:57:00 -04:00
gorhill 8c33720d16
fix #3111 2017-10-08 23:47:23 -04:00
gorhill 3d0cdc38b9
new version for stable release 2017-10-08 09:17:50 -04:00
gorhill 6f21d8eef0
new revision for release candidate 2017-10-06 13:49:09 -04:00
gorhill 0c9099fdb6
new revision for release candidate 2017-10-06 13:36:53 -04:00
gorhill 746eb07db3
new revision for release candidate 2017-10-04 13:27:48 -04:00
gorhill 344c1f9656
new revision for dev build 2017-10-04 11:16:28 -04:00
gorhill a19efa4ebe
fix #3082 (use "dev build" in extension name) 2017-10-01 10:28:33 -04:00
gorhill e2cbc5c964
new revision for release candidate 2017-10-01 08:01:06 -04:00
gorhill e7e390d2e2
fix #3077 2017-10-01 07:56:28 -04:00
gorhill 4ffaf3dd46
new revision for release candidate 2017-09-30 10:45:32 -04:00
gorhill ec3d1bfc88
fix "Preferences" button in about:addons (see https://www.ghacks.net/2017/09/29/firefox-adblock-plus-lost-millions-of-users-in-the-past-year/#comment-4233295) 2017-09-30 10:41:58 -04:00
gorhill b3e4caa59f
code review of #3073 2017-09-30 08:07:10 -04:00
gorhill 526ffe214d
fix #3073 2017-09-30 07:56:35 -04:00
gorhill ea0c5140ca
new revision for release candidate 2017-09-29 12:50:02 -04:00
gorhill 4865561ca4
code review re. #3006 2017-09-29 08:49:22 -04:00
gorhill f716760689
new revision for release candidate 2017-09-28 12:57:51 -04:00
gorhill 23a97cef6f
new revision for release candidate 2017-09-27 15:40:00 -04:00
gorhill a4e61b51cd
further fix #3006: see https://github.com/gorhill/uBlock/issues/3006#issuecomment-332597677 2017-09-27 15:29:57 -04:00
gorhill bbac9dc2bb
new revision for release candidate 2017-09-27 10:28:17 -04:00
gorhill ab1e5d350e
new revision for release candidate 2017-09-27 08:43:03 -04:00
gorhill f10fb29714
fine tune fix #3006 2017-09-27 08:42:27 -04:00
gorhill d6173b5d93
better fix #3057, as suggested 2017-09-26 16:35:06 -04:00
gorhill 65f1d152f7
new revision for release candidate 2017-09-26 16:10:34 -04:00
gorhill c74526a895
fix #3057 2017-09-26 16:09:35 -04:00
gorhill 0e0d79554a
new revision for release candidate 2017-09-26 07:59:51 -04:00
gorhill b2094f1412
new revision for release candidate 2017-09-21 11:49:08 -04:00
gorhill a264975c9c
improve handling of error condition: see https://github.com/gorhill/uBlock/issues/2985#issuecomment-330076141 2017-09-21 08:59:40 -04:00
gorhill 0f4f44f364
new revision for dev build 2017-09-19 23:33:15 -04:00
gorhill 83a791f4d1
new revision for dev build 2017-09-19 12:58:50 -04:00
gorhill 46f37dd7c2
new revision for dev build 2017-09-18 10:56:54 -04:00
gorhill b1f04c79b0
code review: cleaner user-stylesheets support as proposed in https://issues.adblockplus.org/ticket/5695 2017-09-16 10:55:28 -04:00
gorhill eceab1c23f
new revision for dev build 2017-09-16 10:29:49 -04:00
gorhill 3b67516aee
new revision for dev build 2017-09-13 13:56:41 -04:00
gorhill 04a41d8b22
fix bad regex: all URLs were seen as needing punycoding 2017-09-13 13:08:31 -04:00
gorhill 3e6d365cb1
new revision for dev build 2017-09-11 17:11:31 -04:00
gorhill 0d18d996be
fix #3006 2017-09-11 17:02:44 -04:00
gorhill fa9aa68da3
new revision for dev build 2017-09-05 19:53:57 -04:00
gorhill 1a3df881d0
code review: handle tab gone + decrease user css overhead 2017-09-05 19:51:16 -04:00
gorhill d19780fcb5
new revision for stable release 2017-09-03 21:45:21 -04:00
gorhill f8dac35f42
new revision for release candidate 2017-09-02 18:27:41 -04:00
gorhill 867eeebc19
fix #2957 2017-09-02 18:27:03 -04:00
gorhill 937e8a048d
new revision for stable release 2017-09-02 16:18:42 -04:00
gorhill 537df0f619
new revision for release candidate 2017-09-02 11:57:36 -04:00
gorhill 40cfd1505e
further fix #2950: FF56 also suffers non-punycoded URLs 2017-09-02 11:56:59 -04:00
gorhill 8116afabc4
use "let": this code is not meant for chromium 2017-09-02 09:57:44 -04:00
gorhill 2598f48a34
new revision for release candidate 2017-09-02 08:27:43 -04:00
gorhill 000d15d8ab
code review: try to remove not found keys from storage.local 2017-09-02 07:08:07 -04:00
gorhill a0c595d02d
fix #2950 2017-09-02 06:11:33 -04:00
gorhill 13afea5405
new revision for release build 2017-09-01 17:36:23 -04:00
gorhill 511d8a098e
fix #2945 2017-09-01 17:34:33 -04:00
gorhill 194951d3bd
new revision for dev build 2017-08-31 14:37:42 -04:00
gorhill 5cc7a3a852
new revision for dev build 2017-08-30 23:13:28 -04:00
gorhill 4d3ac0d980
new revision for emergency fix 2017-08-30 19:10:03 -04:00
gorhill b5035b2e0b
new release: skip webext-hybrid and go pure webext 2017-08-30 11:18:55 -04:00
gorhill 17d54f6ded
new revision for release candidate 2017-08-30 09:34:12 -04:00
gorhill d165432ded
deal properly with indexedDB not being available (#2925) 2017-08-30 08:41:22 -04:00
gorhill b1842ddf16
new revision for dev build 2017-08-29 18:32:46 -04:00
gorhill beb7933016
fix #2925 2017-08-29 18:32:00 -04:00
gorhill 572aecc517
import indexedDB-based vAPI.cacheStorage as is from d1538ea9be 2017-08-28 15:30:01 -04:00
gorhill fe4c59ec90
new revision for release candidate 2017-08-24 18:30:55 -04:00
gorhill 8758dfc061
fix AMO error: "Legacy add-ons are not compatible with Firefox 57 or higher. Use a maxVersion of 56.* or lower" 2017-08-23 08:02:40 -04:00
gorhill 2f922192c3
fix #2892: set proper minimum version for Opera 2017-08-23 07:27:53 -04:00
gorhill 592d5da490
new release 2017-08-22 23:51:02 -04:00
gorhill f72915f5b0
new revision for release candidate 2017-08-22 08:01:52 -04:00
gorhill 06f9ac033f
harden just a bit more the migration code 2017-08-22 08:00:46 -04:00
gorhill c9a5b4c6ac
new revision for release candidate 2017-08-21 12:06:12 -04:00
gorhill 213c4e4de8
new revision for release candidate 2017-08-17 09:54:32 -04:00
gorhill 8e064d6b04
new revision for release candidate 2017-08-17 08:35:56 -04:00
gorhill fdcc9515dc
fix #2029 2017-08-17 08:25:02 -04:00
gorhill 22ad39ea4d
new revision for dev build 2017-08-16 15:47:59 -04:00
gorhill 4a319d7a26
new revision for release candidate 2017-08-13 08:43:20 -04:00
gorhill d2af82bdbf
set proper min-max versions for Firefox 2017-08-13 08:25:07 -04:00
gorhill 655b0e491b
no reason to hold back: release candidate 2017-08-12 14:49:50 -04:00
gorhill 92c6d0fc33
new revision for dev build 2017-08-12 14:39:48 -04:00
gorhill 0e078e536d
eliminate validation warning on AMO: avoid innerHTML 2017-08-11 14:26:15 -04:00
gorhill 78d61eba86
new revision for dev build 2017-08-10 18:36:58 -04:00
gorhill 3a1113b768
new revision for dev build 2017-08-08 13:40:00 -04:00
gorhill faca2718fa
set FF56 as max version compatible with legacy version of uBO 2017-08-08 10:56:53 -04:00
gorhill c006167c65
new revision for dev build 2017-08-05 10:05:56 -04:00
gorhill af0b1b3db0
fix #2799 (uBO side), as per https://bugzilla.mozilla.org/show_bug.cgi?id=1383064#c4 2017-08-05 10:01:59 -04:00
gorhill 61a538e9f2
fix #2843: do not auto open dashboard on Firefox 2017-08-05 09:50:21 -04:00
gorhill dd2d15e36b
new revision for dev build 2017-08-04 18:31:30 -04:00
gorhill e359afdd38
new revision for dev build 2017-08-03 10:18:51 -04:00
gorhill f84a3423ab
new revision for dev build 2017-07-26 08:12:27 -04:00
gorhill 6fb6b4ed98
fix #2824: use dummy localStorage if none available 2017-07-26 08:11:22 -04:00
gorhill fd67c2db0e
fix warnings in browser console 2017-07-25 11:59:52 -04:00
gorhill 645c862886
always set browserAction title 2017-07-25 09:16:48 -04:00
gorhill e86290e988
fix minimum version number for Firefox for Android 2017-07-24 19:38:39 -04:00
gorhill 906cb34716
make uBO/webext functional on Firefox for Android Nightly 2017-07-24 19:25:49 -04:00
gorhill 21cafe7eb3
new revision for dev build 2017-07-24 11:37:52 -04:00
gorhill d866e4d472
add proper handling of potentially unsupported webext APIs 2017-07-24 11:35:22 -04:00
gorhill 3de48a694d
new revision for dev build 2017-07-23 11:47:35 -04:00
gorhill f328687663
implement user styles in webext platform 2017-07-23 11:33:39 -04:00