Commit Graph

6304 Commits

Author SHA1 Message Date
Raymond Hill 08261e3c15
Change DOM surveyor to time-based processing logic (from chunk-based)
The DOM surveyor will now use time-based logic to spread its work
over time. This allows the surveying to better scale down on
slower devices.

Additionally, the DOM surveyor code has been reworked to lower as
much as possible memory churning when collating nodes to survey.

This rework has been motivated after profiling the "monstrous DOM"
seen in the following page:
<https://doc.rust-lang.org/std/iter/trait.Iterator.html>

The idea is that making the DOM surveyor efficient on such
"monstrous DOM" case should make it efficient everywhere in
practice.
2018-12-31 11:50:40 -05:00
Raymond Hill dcf6046f8c
make Firefox dev build auto-update 2018-12-29 16:52:41 -05:00
Raymond Hill 3e0b82749c
New revision for dev build 2018-12-29 16:44:04 -05:00
Raymond Hill f35dff2c9d
Code review related to performance in main content script
- Avoid concatenating with empty array: though the concatenated
  array is empty, this still forces the creation of a whole new
  array as per semantic of Array.prototype.concat().
  <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat>

- Do not convert arrays to strings when sending data to
  main process in surveyPhase1(): I no longer see any benefit
  doing so in profiling data (if I recall properly this was
  benefiting Firefox, but I can't remember for sure anymore why
  I chose to do so back then).
2018-12-29 16:34:46 -05:00
Raymond Hill 09fb3549f3
Improve creation of rows in dynamic filtering pane of popup panel
- Reuse existing rows without first removing them
- New rows appended all at once through DocumentFragment
2018-12-29 08:43:44 -05:00
Raymond Hill 87cf95c04b
Avoid redundant DOM attributes in dynamic filtering pane
Move redundant attributes in cells to parent row; use
Element.closest() to look-up these attributes when needed.
2018-12-29 06:54:05 -05:00
Raymond Hill 4ce1796f09
make Firefox dev build auto-update 2018-12-28 16:29:23 -05:00
Raymond Hill 8eda70bce2
Import translation work from https://crowdin.com/project/ublock 2018-12-28 13:06:39 -05:00
Raymond Hill 58a99a74ec
New revision for release candidate 2018-12-28 13:03:09 -05:00
Raymond Hill 4e2a8a0ce0
Fix vertical centering of hostnames in dynamic filtering pane
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/358

Additionally, use `display: none;` to unburden the browser
renderer from taking into account the `sup` element since
most of the time it is unused.
2018-12-28 12:56:56 -05:00
Raymond Hill c78fa16e5b
Fine tune spacing of per-site switches
Hopefully this will fix the issue seen on Firefox for Android: for
some reasons, the popup panel's default size is now more zoomed
out than it used to be in latest stable release.

Additionally, I fixed the syntactically incorrect instances of
:before and :after.
2018-12-28 09:03:32 -05:00
Raymond Hill f6dde894cb
Decrease a bit the space between extra tools at bottom of popup panel
Since the counts are now limited to two characters, no point
allocating more space than needed.
2018-12-27 11:24:32 -05:00
Raymond Hill 4caf389a87
make Firefox dev build auto-update 2018-12-27 10:24:51 -05:00
Raymond Hill 294f17469a
New revision for release candidate 2018-12-27 10:22:07 -05:00
Raymond Hill ab2efd1b84
Import translation work from https://crowdin.com/project/ublock 2018-12-27 10:21:25 -05:00
Raymond Hill eb1428c8bb
Fix regression in the collapsing of blocked resources
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/356
2018-12-27 10:17:08 -05:00
Raymond Hill 0dde563759
make Firefox dev build auto-update 2018-12-26 11:13:42 -05:00
Raymond Hill 38c73bee07
New revision for release candidate 2018-12-26 11:07:57 -05:00
Raymond Hill 8a88e9d931
Support CSS selectors mixed w/ operators in procedural cosmetic filters
Related issue:
- https://github.com/gorhill/uBlock/issues/3683

This commit further increases uBO's procedural cosmetic filters
Adguard's cosmetic filter syntax -- specifically those procedural
cosmetic filters where plain CSS selectors appeared following
a procedural oeprator (this was rejected as invalid by uBO).

Also, experimental support for `:watch-attrs` procedural
operator, as discussed in <https://github.com/uBlockOrigin/uBlock-issues/issues/341#issuecomment-449765525>.
Support may be dropped before next release depending on whether
a better solution is suggested.

Additionally, the usual opportunistic refactoring toward ES6
syntax.
2018-12-26 10:45:19 -05:00
Raymond Hill e4cec5a15e
Add missing CSS rule for FA "exclamation-triangle" icon 2018-12-26 10:41:25 -05:00
Raymond Hill 2ba1cd7dc3
Import translation work from https://crowdin.com/project/ublock 2018-12-26 06:53:46 -05:00
Raymond Hill 0341a5e1f9
Use URL to proper issue in comments 2018-12-25 13:29:41 -05:00
Raymond Hill 0ffa4b91de
Minor code review
- Make FA icons non-selectable, because of spurious selection
  on Firefox for Android when merely tapping an icon
- Disable spellchecking in the static network filter editor
  in the logger
2018-12-25 10:28:32 -05:00
Raymond Hill 373bb77ff6
make Firefox dev build auto-update 2018-12-24 10:33:06 -05:00
Raymond Hill 7d0e343c9f
New revision for release candidate 2018-12-24 10:26:49 -05:00
Raymond Hill f4b9549d05
Remove use of background color style on the logger's input fields
Related feedback from the following issue:
- https://github.com/gorhill/uBlock/issues/787#issuecomment-449531979
2018-12-24 10:23:21 -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 fe595bb2b9
Import translation work from https://crowdin.com/project/ublock 2018-12-24 08:11:20 -05:00
Raymond Hill 8680790c85
make Firefox dev build auto-update 2018-12-23 18:25:35 -05:00
Raymond Hill a038c8658f
Attempt to fix build script for Firefox 2018-12-23 18:19:16 -05:00
Raymond Hill 4d540f3ffa
Import translation work from https://crowdin.com/project/ublock 2018-12-23 18:04:21 -05:00
Raymond Hill 9a521c5fdb
New revision for dev build 2018-12-23 18:02:00 -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 99cdec5ba6
Informal code review to tidy up logger buffer fetching implementation 2018-12-23 15:35:32 -05:00
Raymond Hill ddee2bff13
Import translation work from https://crowdin.com/project/ublock 2018-12-23 14:26:49 -05:00
Raymond Hill 6ac0c66813
Left-align text in "type" column in the logger
Feedback in related issue:
- https://github.com/gorhill/uBlock/issues/3654#issuecomment-449649399
2018-12-23 14:12:14 -05:00
Raymond Hill d528f3811a
Use version number in the filename of packages 2018-12-23 10:16:08 -05:00
Raymond Hill f1567ee272
Prevent spurious wrapping of text in logger's expression picker
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/351
2018-12-23 09:18:37 -05:00
Raymond Hill e2d1f50dd8
Normalize Adguard's plain cosmetic filters disguised as style-based filters
Reported by https://github.com/uBlock-user in
https://github.com/orgs/uBlockOrigin/teams/ublock-issues-volunteers/discussions/56

For some reasons, many cosmetic filters in Adguard's Annoyance List
are plain cosmetic filters disguised as style-based cosmetic filters,
and this was breaking uBO's ability to reverse lookup such filters
from the logger.
2018-12-23 08:58:03 -05:00
Raymond Hill 96fe5f7232
make Firefox dev build auto-update 2018-12-22 17:56:01 -05:00
Raymond Hill ccfb5f6e00
New revision for dev build 2018-12-22 17:03:34 -05:00
Raymond Hill 13ce898e52
Import translation work from https://crowdin.com/project/ublock 2018-12-22 15:53:26 -05:00
Raymond Hill 91144c4edc
Allow creating broad cosmetic filters directly from the picker
Using the Ctrl key while cliking an element on the page will cause
the picker to choose a broad cosmetic filter as candidate.
2018-12-22 15:44:23 -05:00
Raymond Hill d574a09784
Make the element picker dialog slowly fade away when made discrete
This fixes the following issues:
- https://github.com/gorhill/uBlock/issues/3449
- https://github.com/uBlockOrigin/uBlock-issues/issues/55
2018-12-22 15:09:38 -05:00
Raymond Hill 69668d27b1
Ensure the text cursor in visible when a CodeMirror editor is resized
Related issues:
- https://github.com/gorhill/uBlock/issues/3706
- https://github.com/gorhill/uBlock/issues/3701
2018-12-22 13:35:46 -05:00
Raymond Hill cd597709bb
Remember cursor position in "My filters" for next visit
Related issue:
- https://github.com/gorhill/uBlock/issues/3706
2018-12-22 13:09:56 -05:00
Raymond Hill 2be36ffe81
Fix bad alignment in comments 2018-12-22 12:26:50 -05:00
Raymond Hill f3773ef6eb
Internationalize CodeMirror's hard-coded tooltips in the "My rules" pane
Related issue:
- https://github.com/gorhill/uBlock/issues/3708

This was brought into the issue above but I ended up forgotting
about it after I focused mostly on the second issue brought up
in there.
2018-12-22 11:55:13 -05:00
Raymond Hill ba81f79d1b
Limit count badges of per-site tools to 99 in the popup panel
This is a revised fix as per feedback in the following issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/279#issuecomment-449531436
2018-12-22 11:19:44 -05:00
Raymond Hill b9b0c3fba4
Remove the (confusing) "eventful" logger output filtering expression
This will render the following issue obsolete:
- https://github.com/uBlockOrigin/uBlock-issues/issues/349
2018-12-22 08:41:05 -05:00