From ca9fc7266910a2af8a45c9cd12363a98ebdc3fb5 Mon Sep 17 00:00:00 2001 From: Gaming4JC Date: Mon, 25 Jun 2018 21:30:44 -0400 Subject: [PATCH 1/1] remove chrome:// as it is patched in the browser, bump version --- preferences.json | 14 -------------- src/main.js | 5 ----- src/resource-filter/process/filter.js | 14 ++------------ version_info | 2 +- 4 files changed, 3 insertions(+), 32 deletions(-) diff --git a/preferences.json b/preferences.json index 36f7bf9..0a1682f 100644 --- a/preferences.json +++ b/preferences.json @@ -20,13 +20,6 @@ ,"title": "Block access to extension:// URIs from Web" ,"description": "Protects you from fingerprinting by blocking access to legacy extensions." } - ,{ - "name": "uri.chrome.blocking.enabled" - ,"type": "bool" - ,"value": false - ,"title": "Block access to chrome:// URIs" - ,"description": "WARNING: Enabling this will break certain extensions, internal browser pages, and/or badly designed web sites. [REQUIRES RESTART]" - } ,{ "name": "redirect.enableMasking" ,"type": "bool" @@ -41,13 +34,6 @@ ,"title": "Exposed resource:// domains" ,"description": "This may harm your privacy: Only for debugging and as temporary measures (Separated with commas)" } - ,{ - "name": "uri.chrome.exposedList" - ,"type": "string" - ,"value": "" - ,"title": "Exposed chrome:// domains" - ,"description": "This may harm your privacy: Only for debugging and as temporary measures (Separated with commas) [REQUIRES RESTART]" - } ,{ "name": "uri.resource.mozextList" ,"type": "string" diff --git a/src/main.js b/src/main.js index 18f10c3..87cfef6 100644 --- a/src/main.js +++ b/src/main.js @@ -31,11 +31,9 @@ const {enablePolicy} = require ('./resource-filter/init'); /* Preferences keys */ const PREF_REDIRECT_MASKED = 'redirect.enableMasking'; -const PREF_URI_CHROME_BLOCKED = 'uri.chrome.blocking.enabled'; const PREF_URI_RESOURCE_BLOCKED = 'uri.resource.blocking.enabled'; const PREF_URI_EXT_BLOCKED = 'uri.ext.blocking.enabled'; const PREF_URI_MOZEXT_BLOCKED = 'uri.mozext.blocking.enabled'; -const PREF_URI_CHROME_WHITELIST = 'uri.chrome.exposedList'; const PREF_URI_RESOURCE_WHITELIST = 'uri.resource.exposedList'; const PREF_URI_EXT_WHITELIST = 'uri.resource.extList'; const PREF_URI_MOZEXT_WHITELIST = 'uri.resource.mozextList'; @@ -51,14 +49,11 @@ const extractListItems = str => const update = $prefs => enablePolicy ({__proto__: null ,enableDebug: !!$prefs[PREF_DEBUG_ENABLED] - ,blockChromeURIs: !!$prefs[PREF_URI_CHROME_BLOCKED] ,blockResourceURIs: !!$prefs[PREF_URI_RESOURCE_BLOCKED] ,blockExtURIs: !!$prefs[PREF_URI_EXT_BLOCKED] ,blockMozextURIs: !!$prefs[PREF_URI_MOZEXT_BLOCKED] ,enableRedirectMasking: !!$prefs[PREF_REDIRECT_MASKED] ,restrictAboutPages: !!$prefs[PREF_RESTRICT_ABOUT] - ,exposedChromeDomains: - extractListItems ($prefs[PREF_URI_CHROME_WHITELIST]) ,exposedResourceDomains: extractListItems ($prefs[PREF_URI_RESOURCE_WHITELIST]) ,exposedExtDomains: diff --git a/src/resource-filter/process/filter.js b/src/resource-filter/process/filter.js index 7f678c7..fc1c1bf 100644 --- a/src/resource-filter/process/filter.js +++ b/src/resource-filter/process/filter.js @@ -17,17 +17,14 @@ const {registerContentPolicy} = require ('./content-policy'); // Default values const policyState = {__proto__: null ,debug: false - ,exposedChromeDomains: new Set ,exposedResourceDomains: new Set ,exposedMozextDomains: new Set ,exposedExtDomains: new Set - ,blockChromeUris: true ,blockResourceUris: true ,blockExtUris: true ,blockMozextUris: true ,filterRedirects: true ,secureAboutUris: new Set (['addons', 'config', 'debugging', 'downloads', 'home', 'neterror', 'newtab', 'preferences', 'privatebrowsing', 'profiles', 'plugins', 'sessionrestore', 'support']) - ,secureChromeUris: new Set (['pluginproblem']) ,veryInsecureAboutUris: new Set (['blank', 'srcdoc']) ,extWhitelist: new Set ,mozextWhitelist: new Set @@ -38,8 +35,6 @@ const policyState = {__proto__: null // Note: view-source: scheme is no longer accessible from content (thus no leaks) // TODO: Make secureChromeUris, extWhitelist, mozextWhitelist actually work. const isWhitelistedOrigin = u => (!u) - || u.schemeIs ('chrome') - && (policyState.secureChromeUris.has (u.path)) || u.schemeIs ('resource') || u.schemeIs ('view-source') || u.schemeIs ('extension') @@ -54,9 +49,6 @@ const isWhitelistedOrigin = u => (!u) // Init blockChromeUris: This should block all chrome:// URI excluding exposedChromeDomains (user set) and secureChromeUris (set above). // Doesn't whitelist properly, but better to be aggressive on blocking than not. const shouldBeBlocked = u => (!u) - || policyState.blockChromeUris - && u.schemeIs ('chrome') - && (!policyState.exposedChromeDomains.has (u.host)) || policyState.blockResourceUris && u.schemeIs ('resource') && (!policyState.exposedResourceDomains.has (u.host)) || policyState.exposedExtDomains @@ -128,16 +120,14 @@ try { observerService.removeObserver (requestObserver, 'http-on-examine-response')); } catch (e) {} -const setPolicy = ({enableRedirectMasking, blockChromeURIs, blockResourceURIs, blockExtURIs, blockMozextURIs - , enableDebug, exposedChromeDomains, exposedResourceDomains, exposedExtDomains, exposedMozextDomains, restrictAboutPages}) => +const setPolicy = ({enableRedirectMasking, blockResourceURIs, blockExtURIs, blockMozextURIs + , enableDebug, exposedResourceDomains, exposedExtDomains, exposedMozextDomains, restrictAboutPages}) => { policyState.filterRedirects = !!enableRedirectMasking; - policyState.blockChromeUris = !!blockChromeURIs; policyState.blockResourceUris = !!blockResourceURIs; policyState.blockExtUris = !!blockExtURIs; policyState.blockMozextUris = !!blockMozextURIs; policyState.debug = !!enableDebug; - policyState.exposedChromeDomains = new Set (exposedChromeDomains || []); policyState.exposedResourceDomains = new Set (exposedResourceDomains || []); policyState.exposedExtDomains = new Set (exposedExtDomains || []); policyState.exposedMozextDomains = new Set (exposedMozextDomains || []); diff --git a/version_info b/version_info index ee3324a..de55fe0 100644 --- a/version_info +++ b/version_info @@ -22,7 +22,7 @@ addon_id="no-resource-uri-leak" # Canonical version of the addon (may be converted into different formats on build) -addon_version="1.2.3" +addon_version="1.2.4" # Alpha versions (may not be feature complete): x.y.z~a1, x.y.z~a2, ... # Beta versions (feature-frozen): x.y.z~b1, x.y.z~b2, ... -- 2.17.1