Please sign in to comment.
Add ability to uncloak CNAME records
Related issue: - uBlockOrigin/uBlock-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.
- Loading branch information
Showing with 226 additions and 92 deletions.
- +10 −5 platform/chromium/vapi-background.js
- +45 −0 platform/chromium/vapi-common.js
- +1 −0 platform/firefox/manifest.json
- +97 −2 platform/firefox/vapi-webrequest.js
- +3 −0 src/css/logger-ui.css
- +4 −0 src/js/background.js
- +2 −0 src/js/filtering-context.js
- +44 −22 src/js/logger-ui.js
- +10 −2 src/js/storage.js
- +5 −1 src/js/traffic.js
- +3 −60 src/js/uritools.js
- +2 −0 src/logger-ui.html
Oops, something went wrong.