uBlock/platform/chromium
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
..
is-webrtc-supported.html fix warnings in browser console 2017-07-25 11:59:52 -04:00
is-webrtc-supported.js this fixes https://github.com/gorhill/uBlock/issues/533#issuecomment-167931681 2015-12-31 09:24:55 -05:00
managed_storage.json #985: might be the missing trailing `#` 2015-11-27 14:30:17 -05:00
manifest.json Add virtuous signal that remote code execution is not possible 2019-07-21 10:37:58 -04:00
vapi-background.js Add ability to uncloak CNAME records 2019-11-19 12:05:33 -05:00
vapi-client-extra.js Simplify client messaging code 2019-09-19 08:31:38 -04:00
vapi-client.js Use `self` when testing for `vAPI` presence 2019-09-30 07:50:35 -04:00
vapi-common.js Add ability to uncloak CNAME records 2019-11-19 12:05:33 -05:00
vapi-usercss.js Add ability to report exception cosmetic filters in the logger 2019-05-16 13:44:49 -04:00
vapi-usercss.pseudo.js Fix internal cosmetic filter being reported in the logger 2019-06-20 07:14:34 -04:00
vapi-usercss.real.js Work toward modernizing code base: promisification 2019-09-17 15:15:01 -04:00
vapi-webrequest.js Add support for `ping` static filter option 2019-09-22 09:11:55 -04:00
vapi.js Fix regression in cosmetic filtering 2019-09-30 10:40:56 -04:00
webext.js Prevent spurious error messages to browser console 2019-09-23 09:29:17 -04:00