Commit Graph

7369 Commits

Author SHA1 Message Date
Raymond Hill 5158d7207e
New revision for dev build 2019-11-23 13:07:37 -05:00
Raymond Hill a16e4161de
Fine tune hostname uncloaking through CNAME-lookup
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/780

Related commit:
- https://github.com/gorhill/uBlock/commit/3a564c199260

This adds two new advanced settings:

- cnameIgnoreRootDocument
  - Default to `true`
  - Tells uBO to skip CNAME-lookup for root document.

- cnameReplayFullURL
  - Default to `false`
  - Tells uBO whether to replay the whole URL or just
    the origin part of it.
    Replaying only the origin part is meant to lower
    undue breakage and improve performance by avoiding
    repeating the pattern-matching of the whole URL --
    which pattern-matching was most likely already
    accomplished with the original request.

This commit is meant to explore enabling CNAME-lookup
by default for the next stable release while:

- Eliminating a development burden by removing the
  need to create a new filtering syntax to deal with
  undesirable CNAME-cloaked hostnames

- Eliminating a filter list maintainer burden by
  removing the need to find/deal with all base
  domains which engage in undesirable CNAME-cloaked
  hostnames

The hope is that the approach implemented in this
commit should require at most a few unbreak rules
with no further need for special filtering syntax
or filter list maintance efforts.
2019-11-23 13:07:23 -05:00
Raymond Hill a817c8056e
New revision for dev build 2019-11-22 23:54:26 -05:00
Raymond Hill 1b068c15fb
Fix token array being too small for very long URL
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/dzw57l/

Each token requires two slots in the token indices
array. This commit fixes uBO breaking when dealing
with very long URLs with lot of distinct tokens in
them.
2019-11-22 23:51:39 -05:00
Raymond Hill ff91870670
Make Firefox dev build auto-update 2019-11-21 12:18:22 -05:00
Raymond Hill f8f49096bf
New revision for dev build 2019-11-21 12:14:59 -05:00
Raymond Hill 3463a60e6b
Fix incorrect resolved value in promise
This fixes the ability to block when a hostname
had to be cname-resolved the first time it was
encountered. The result being cached allowed
the subsequent requests to be correctly blockable.
2019-11-21 12:04:19 -05:00
Raymond Hill 30ac8a1fa5
Make Firefox dev build auto-update 2019-11-20 16:09:37 -05:00
Raymond Hill 68e1b58bb6
Trim trailing spaces from string values in advanced settings 2019-11-20 11:45:10 -05:00
Raymond Hill 123b939944
new revision for dev build 2019-11-20 10:52:56 -05:00
Raymond Hill 563aed0d93
Code review for dns lookup code
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/780

- Handle DNS lookup failure

- Skip DNS lookup for non network-based URLs

- Benchmark code to be able to provide an estimate
  based on objective measurements regarding added
  overhead when DNS lookup is enabled
  (quick answer: a complete non-issue)
2019-11-20 10:45:17 -05:00
Raymond Hill 182889d0df
Extend waiting time from 3 min to 15 min
As per Mozilla blog post:
- https://blog.mozilla.org/addons/2019/11/11/security-improvements-in-amo-upload-tools/

> For custom scripts that use the AMO upload API:
> make sure your upload scripts account for
> potentially longer delays before the signed file
> is available. We recommend allowing up to 15
> minutes.
2019-11-20 06:12:57 -05:00
Raymond Hill 0d20ee9ab0
Make Firefox dev build auto-update 2019-11-19 16:55:27 -05:00
Raymond Hill 1e364e61eb
New revision for dev build 2019-11-19 16:52:11 -05:00
Raymond Hill 02075ab97a
Test for existence of browser.dns
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/780

browser.dns is not available before Firefox 60,
test for presence.
2019-11-19 16:48:53 -05:00
Raymond Hill 5a829b3e87
Make Firefox dev build auto-update 2019-11-19 12:48:55 -05:00
Raymond Hill 3a564c1992
Add ability to uncloak CNAME records
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/780

New webext permission added: `dns`, which purpose is
to allow an extension to fetch the DNS record of
specific hostnames, reference documentation:

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/dns

The webext API `dns` is available in Firefox 60+ only.

The new API will enable uBO to "uncloak" the actual
hostname used in network requests. The ability is
currently disabled by default for now -- this is only
a first commit related to the above issue to allow
advanced users to immediately use the new ability.

Four advanced settings have been created to control the
uncloaking of actual hostnames:

cnameAliasList: a space-separated list of hostnames.
Default value: unset => empty list.
Special value: * => all hostnames.
A space-separated list of hostnames => this tells uBO
to "uncloak" the  hostnames in the list will.

cnameIgnoreList: a space-separated list of hostnames.
Default value: unset => empty list.
Special value: * => all hostnames.
A space-separated list of hostnames => this tells uBO
to NOT re-run the network request through uBO's
filtering engine with the CNAME hostname. This is
useful to exclude commonly used actual hostnames
from being re-run through uBO's filtering engine, so
as to avoid pointless overhead.

cnameIgnore1stParty: boolean.
Default value: true.
Whether uBO should ignore to re-run a network request
through the filtering engine when the CNAME hostname
is 1st-party to the alias hostname.

cnameMaxTTL: number of minutes.
Default value: 120.
This tells uBO to clear its CNAME cache after the
specified time. For efficiency purpose, uBO will
cache alias=>CNAME associations for reuse so as
to reduce calls to `browser.dns.resolve`. All the
associations will be cleared after the specified time
to ensure the map does not grow too large and too
ensure uBO uses up to date CNAME information.
2019-11-19 12:05:33 -05:00
Raymond Hill 60816b68a1
New revision for development build 2019-11-19 12:03:56 -05:00
Raymond Hill bdd4a5bf5a
Detect/prevent the creation of already existing iframe tags
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/786

A case of web page embedding multiple times the
`adsbygoogle.js` script was causing the neutered,
replacement script to create a huge amount of iframes
in the DOM.

The scriptlet has been modified to check if an iframe
tag already exist and skip the creation if so.
2019-11-19 08:49:38 -05:00
Raymond Hill 18b6a6ba18
New revision for release version 2019-11-18 11:30:25 -05:00
Raymond Hill 2884b54bf4
Import translation work from https://crowdin.com/project/ublock 2019-11-18 11:29:54 -05:00
Raymond Hill b97fea09d2
Make Firefox dev build auto-update 2019-11-14 08:37:59 -05:00
Raymond Hill 27c4980ec8
New revision for release candidate 2019-11-14 08:27:41 -05:00
Raymond Hill eec31fca8b
Save magic compiled/selfie format values in cache storage
Related issue:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1588916

Due to browser behavior changes during development,
uBO can end up using obsolete cached compiled filter
lists or selfie.

Saving magic format values in the cache storage
itself ensure uBO will properly detect actually
obsolete compiled lists/selfie.
2019-11-14 08:22:28 -05:00
Raymond Hill e290cefd48
Make Firefox dev build auto-update 2019-11-12 09:37:42 -05:00
Raymond Hill 7866cd151b
New revision for release candidate 2019-11-12 09:33:14 -05:00
Raymond Hill 4d8250ab04
Ensure +/- symbols are same width in popup panel 2019-11-12 08:16:33 -05:00
Raymond Hill 5d65f6c098
Make Firefox dev build auto-update 2019-11-10 10:27:25 -05:00
Raymond Hill c47a7ba9f4
New revision for dev build 2019-11-10 10:16:14 -05:00
Raymond Hill e2fdc1b94b
Support keyboard shortcut to open popup panel
Related discussion:
- https://www.reddit.com/r/uBlockOrigin/comments/dt47s0/
2019-11-09 09:53:31 -05:00
Raymond Hill 7bf5ac0ca2
Code review of commit 4b34d29384
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/778

Related commit:
- 4b34d29384

Mind that `report-uri` or `report-to` could be
used somewhere in a hostname.
2019-11-09 07:32:19 -05:00
Raymond Hill 82f345aa86
Make Firefox dev build auto-update 2019-11-09 07:14:08 -05:00
Raymond Hill 8b66280c9a
New revision for dev build 2019-11-09 07:09:43 -05:00
Raymond Hill 004e4a3285
Support Bosnian in Opera store 2019-11-09 07:09:04 -05:00
Raymond Hill e008ca6307
Import translation work from https://crowdin.com/project/ublock 2019-11-09 07:07:07 -05:00
Raymond Hill 4b34d29384
Fix regex used to detect forbidden CSP directives
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/778
2019-11-09 06:59:59 -05:00
Raymond Hill 067ef5843c
Ensure that typeof of href attribute is `string`
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/777
2019-11-08 09:30:59 -05:00
Raymond Hill 71f3b07eef
Make Firefox dev build auto-update 2019-11-06 07:07:14 -05:00
Raymond Hill f7a725f7b9
New revision for dev build 2019-11-06 07:03:03 -05:00
Raymond Hill ffae19270f
Coallesce mousemove events
Related commit:
- d1995778ff

Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/615
2019-11-06 07:01:13 -05:00
Raymond Hill eae76e3950
Make Firefox dev build auto-update 2019-11-05 13:37:48 -05:00
Raymond Hill 5b4e423219
New revision for dev build 2019-11-05 12:22:34 -05:00
Raymond Hill d1995778ff
Allow element picker dialog to be moved around
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/615

There is a grab area under the text area, to be used
to move the dialog around.
2019-11-05 12:03:48 -05:00
Raymond Hill 1026eb4d6c
Make Firefox dev build auto-update 2019-11-04 13:50:20 -05:00
Raymond Hill c2688b9c27
New revision for dev build 2019-11-04 13:37:53 -05:00
Raymond Hill 522249bcb5
Fix test against opener tab id in popup filtering code
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/774

Regression from:
- f204d24bf4
2019-11-04 13:34:44 -05:00
Raymond Hill ec5191004c
Use encodeURIComponent instead of btoa
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/772
2019-11-04 13:12:40 -05:00
Raymond Hill 53304dbbc1
Make Firefox dev build auto-update 2019-11-04 09:21:00 -05:00
Raymond Hill 625b65a2ce
New revision for dev build 2019-11-04 09:17:21 -05:00
Raymond Hill da253bf80c
Use `type="search"` for search input fields
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/768

So that the input fields can gain extra built-in
browser widgets useful in search fields.
2019-11-03 13:14:29 -05:00