Commit Graph

567 Commits

Author SHA1 Message Date
Raymond Hill eec53c0154
Work toward modernizing code base: promisification
Swathes of code have been converted to use
Promises/async/await. More left to do.

Related commits:
- 915687fddb
- 55cc0c6997
- e27328f931
2019-09-16 09:45:17 -04:00
Raymond Hill 1dfdc40e09
Add ability to suspend network request handler at will
This works only for platforms supporting the return of
Promise by network listeners, i.e. only Firefox at this
point.

When filter lists are reloaded[1], there is a small
time window in which some network requests which should
have normally been blocked are not being blocked
because the static network filtering engine may not
have yet loaded all the filters in memory

This is now addressed by suspending the network request
handler when filter lists are reloaded -- again, this
works only on supported platforms.

[1] Examples: when a filter list update session
    completes; when user filters change, when
    adding/removing filter lists.
2019-06-30 10:09:27 -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 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 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 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 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 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 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 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 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 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 8be1aed04d
guard against future instances of issue fixed in #3721 2018-05-03 09:55:36 -04:00
Raymond Hill c9b14e201a
rename "webext" target to more accurate "firefox" 2018-04-27 12:37:33 -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
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 b42c128213
increase min version of Pale Moon 2018-03-12 09:02:51 -04:00
Raymond Hill 2c901588c7
fix #3546, #3428 2018-02-26 13:59:16 -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 9c23e4ab67
adjust minimum version to account for usage of Array.from 2017-11-14 08:44:59 -05:00
gorhill 23487a643a
prepend vapi-usercss.js to contentscript.js in extension package 2017-10-24 12:40:58 -04:00
gorhill 6112a68faf
fix #2984 2017-10-21 13:43:46 -04:00
gorhill fdcc9515dc
fix #2029 2017-08-17 08:25:02 -04:00
gorhill d2af82bdbf
set proper min-max versions for Firefox 2017-08-13 08:25:07 -04:00
gorhill 0e078e536d
eliminate validation warning on AMO: avoid innerHTML 2017-08-11 14:26:15 -04:00
gorhill faca2718fa
set FF56 as max version compatible with legacy version of uBO 2017-08-08 10:56:53 -04:00
gorhill 47dfb1b22c
fix https://github.com/uBlockOrigin/uAssets/issues/567 2017-07-22 16:57:29 -04:00
gorhill 432818df4f
fix popup panel width issue when photon disabled [firefox] 2017-07-03 12:25:13 -04:00
gorhill 88cafba445
[firefox] create key elements even if no shortcut assigned 2017-07-02 08:41:21 -04:00
gorhill 0564040f3a
code review: skip keyboard shortcuts code for thunderbird, fennec 2017-06-22 18:11:20 -04:00
gorhill ca45ade4c5
fix #2723 2017-06-22 14:34:18 -04:00
gorhill d944a59b10
fix #2709 2017-06-17 10:17:13 -04:00
gorhill e611879c30
fix #2696 2017-06-10 17:33:20 -04:00
gorhill 9a9a8c8c3f
Firefox platform: longer default wait time for deferred tasks 2017-05-30 09:16:44 -04:00
gorhill a72769f8ba
Firefox platform: minor code review; defer non-critical tasks to later at launch 2017-05-30 09:09:24 -04:00
gorhill ffc8057dc6
complete fix for #113 2017-05-29 14:56:17 -04:00
gorhill ce0761248a
remove now obsolete code, as per #2612 2017-05-16 08:12:44 -04:00
gorhill 139d97179f
as per #2612, use native Set() in content scripts 2017-05-15 08:51:25 -04:00
gorhill 5c9ffd9af5
fix #2558 2017-04-24 18:30:06 -04:00
gorhill b3d210c866
minor code review 2017-04-03 10:10:27 -04:00
gorhill 209f79535b
new revision for release candidate 2017-04-02 22:48:11 -04:00
gorhill 43e6a7599d
fix #2506 2017-04-02 16:23:13 -04:00
gorhill f6563be542
fix #2506 2017-04-02 13:29:08 -04:00
gorhill c0b0afadec
minor code review + new revision for release candidate 2017-04-01 19:11:58 -04:00
Gijs 53a794d9b2 Fix #2502 by waiting for the hidden window even when not using it for the background page (#2503) 2017-04-01 17:56:50 -04:00
gorhill 5699e85afa
fix https://github.com/gorhill/uBlock/issues/2502#issuecomment-290943606 2017-04-01 16:22:34 -04:00
gorhill 9f4a879bca
fix https://github.com/gorhill/uBlock/issues/2502#issuecomment-290939436 2017-04-01 15:45:24 -04:00
gorhill 08409c5cb3
fix regression bug introduced with 0112e5 2017-04-01 12:14:44 -04:00
gorhill 66635c44c6
fix warning on older firefox versions 2017-04-01 12:13:29 -04:00
gorhill b9e4a00c7a
Merge branch 'fix-hiddenwindow-usage' of https://github.com/gijsk/uBlock 2017-04-01 11:01:11 -04:00
gorhill 8e73fb32b5
fix https://bugs.chromium.org/p/project-zero/issues/detail?id=1225&desc=6#c10 2017-04-01 10:00:09 -04:00
gorhill 0112e54834
fix https://bugs.chromium.org/p/project-zero/issues/detail?id=1225&desc=6#c10 2017-04-01 09:41:08 -04:00
Gijs Kruitbosch dc06d5fa0c Fix #2493 by using the createWindowlessBrowser API when available 2017-03-31 21:17:21 +01:00
Andrei Petcu e8375f91cd #2433 Changed the XML namespaces to please jpm sign (#2434)
*  #2433 changed the legacy install.rdf to match MDN
https://developer.mozilla.org/en-US/Add-ons/Install_Manifests

*  #2433 changed webext install.rdf to match MDN docs
 https://developer.mozilla.org/en-US/Add-ons/Install_Manifests

*  #2433 changed property added by mistake

*  #2433 changed localization XML namespaces to match install.rdf

*  #2433 small fixes
2017-03-10 07:01:57 -05:00
gorhill 1d705485e9 update max version info 2017-02-06 15:36:34 -05:00
gorhill 1809636680 fix #2337 2017-01-25 08:05:41 -05:00
gorhill b21e765f5c minor code review 2017-01-09 09:16:37 -05:00
gorhill 3b0d3e3330 code review: saner way to find a popup's opener tab id 2017-01-08 17:52:38 -05:00
gorhill a303c7800e fix #2290 2017-01-08 14:36:08 -05:00
gorhill 4e747fd39e minor code review 2017-01-07 10:58:25 -05:00
gorhill 1a92fff641 fix https://github.com/uBlockOrigin/uAssets/issues/255 2017-01-02 10:50:03 -05:00
gorhill e09b702470 fix #2274 (hopefully) 2016-12-28 23:39:15 -05:00
gorhill 2f01fcda54 fix #2256 2016-12-21 11:44:03 -05:00
gorhill 94637ee4ff fix https://github.com/nikrolls/uBlock-Edge/issues/30 2016-12-15 10:47:32 -05:00
gorhill 4a4de32bba fix #2226 2016-12-07 23:59:10 -05:00
gorhill 73c8a96c48 workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1317173 2016-11-16 16:08:03 -05:00
Sean Whitton 8f39f88366 drop Conkeror from install.rdf (#2131)
Since #1356 has been declined.
2016-11-06 18:00:36 -05:00
gorhill f2cb4cefc4 fix #2126 2016-11-04 12:59:06 -04:00
gorhill 8c3da95d65 fix #2067 (experimental) + support for hidden settings 2016-11-03 11:20:47 -04:00
gorhill 3628de7a9d necessary changes for https://github.com/nikrolls/uBlock-Edge/pull/22 2016-10-28 08:40:38 -04:00
gorhill cbefeb923c fix #1884 2016-10-14 10:06:34 -04:00
gorhill cd81f866b9 code review: benefit from ES6 Set() in content script
fall back on legacy browser-specific polyfill code if required.
2016-10-09 11:09:25 -04:00
gorhill a1fa4d0fe9 fix #2060 2016-10-08 15:14:24 -04:00
gorhill c084853d9a fix #1772: ability to preview procedural cosmetic filters 2016-10-01 12:34:25 -04:00
gorhill d721b83e21 code review #2014: gracefully deal with importing from a pre-1.9.12 module 2016-09-28 08:43:40 -04:00
gorhill 56176c8eb7 fix #2030: brain fart bug 2016-09-26 00:07:29 -04:00
gorhill 69a76109c8 code review re 029bc946ad
- fix error message when disabling extension
- properly cleanup when disabling extension
2016-09-25 16:02:11 -04:00
gorhill 029bc946ad oops, forgot to git add this for #2014 2016-09-24 15:28:33 -04:00
gorhill 95ec573141 fix #2014 2016-09-24 14:36:08 -04:00
gorhill a7fe367eec refactor where appropriate to make use of ES6 Set/Map (#1070)
At the same time, the following issues were fixed:
- #1954: automatically lookup site-specific scriptlets
- https://github.com/uBlockOrigin/uAssets/issues/23
2016-09-12 10:22:25 -04:00
gorhill aa20b6185d typo in comments 2016-09-12 08:14:09 -04:00
gorhill 921bdfeba7 minor changes: header stuff 2016-09-10 08:29:18 -04:00
gorhill 2c925ff5ee fix https://github.com/uBlockOrigin/uAssets/issues/123#issuecomment-244033330 2016-09-01 08:29:24 -04:00
gorhill 33234fdd8b fix #1952 2016-08-31 17:50:49 -04:00
buttercookie42 3ea58979d5 Support back button navigation on Android (#1917)
When opening a new tab in Fennec, we should pass the ID of the current tab as parentId, so that pressing the back button afterwards closes the new tab and returns to the original tab instead of just closing Firefox.
2016-08-20 07:52:16 -04:00
gorhill 07d15ae817 minor code review 2016-08-16 08:42:12 -04:00
gorhill 2725479709 better fix for https://bugzilla.mozilla.org/show_bug.cgi?id=1232354, as pointed out in comments 2016-08-15 22:50:24 -04:00
gorhill fb7bd0cc1d fix #1893 2016-08-13 21:45:01 -04:00
gorhill e9157bafb7 fix #1892, #1891 2016-08-13 16:42:58 -04:00
gorhill 315dadb466 bump compatible thunderbird version 2016-08-12 11:30:50 -04:00
gorhill 6fd0bb4291 more refactoring of content script: better modularization of various components 2016-08-12 08:55:35 -04:00
asamuzaK (Kazz) 9700c32bc9 Optimize SVG icons (#1860)
* Omit XML declaration:
* XML version is 1.0
* encoding is UTF-8
* standalone is no
so it can be omitted.
* Remove unnecessary attributes:
* `xmlns:rdf`, `xmlns:cc`, `xmlns:dc`, `xmlns:xlink` are not used in
these SVG icons.
* No text inside SVG, so `xml:space` is unnecessary.
* `version` attribute will be removed in SVG 2. [Changes from SVG 1.1 —
SVG 2](https://svgwg.org/svg2-draft/changes.html#structure)
* `x` and `y` can be omitted if they are `0`.
* Remove `enable-background` attribute / style property:
* Firefox / Safari does not support `enable-background`.
* It is proposed to be deprecated in SVG 2. [Filter Effects Module Level
1](https://drafts.fxtf.org/filters/#AccessBackgroundImage)
* Remove empty `g` elements.
* Add `width` and `height` attributes in `safari-icon16-off.svg`:
* They are in safari-icon16.svg, simple missing?
2016-08-07 08:26:04 -04:00
gorhill ffc3bd10f6 fix regression on Pale Moon from 5704a90cf0 2016-08-06 15:27:33 -04:00
gorhill 16acbca1fa minor code review re. https://bugzilla.mozilla.org/show_bug.cgi?id=1232354 2016-08-06 10:20:11 -04:00