From e0a36874fc5b6ad10366f3a4f4b3a56e5f1dd80e Mon Sep 17 00:00:00 2001 From: nobody Date: Tue, 4 May 2021 06:06:38 +0200 Subject: [PATCH] Fixed: [Chromium] extraHeaders permission for sanitization (#442) --- .eslintrc | 1 + core/constants.js | 3 ++- core/request-sanitizer.js | 19 ++++++++++++++----- pages/updates/updates.html | 1 + 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/.eslintrc b/.eslintrc index 325d8633..89188bea 100644 --- a/.eslintrc +++ b/.eslintrc @@ -26,6 +26,7 @@ "CDNs": true, "IgnoredHost": true, "EncodingTypes": true, + "ExtraInfoSpec": true, "fileGuard": true, "files": true, diff --git a/core/constants.js b/core/constants.js index e1cc6274..8cf9a206 100644 --- a/core/constants.js +++ b/core/constants.js @@ -117,7 +117,8 @@ const WebRequest = { 'GET': 'GET', 'BLOCKING': 'blocking', 'HEADERS': 'requestHeaders', - 'RESPONSE_HEADERS': 'responseHeaders' + 'RESPONSE_HEADERS': 'responseHeaders', + 'EXTRA_HEADERS': 'extraHeaders' }; const WebRequestType = { diff --git a/core/request-sanitizer.js b/core/request-sanitizer.js index 8f10e4e2..803e6f91 100644 --- a/core/request-sanitizer.js +++ b/core/request-sanitizer.js @@ -21,26 +21,36 @@ var requestSanitizer = {}; +/** + * Preparation + * https://codeberg.org/nobody/LocalCDN/issues/442 + */ + +/* eslint-disable indent */ +const ExtraInfoSpec = BrowserType.FIREFOX + ? [WebRequest.BLOCKING, WebRequest.HEADERS] + : [WebRequest.BLOCKING, WebRequest.HEADERS, WebRequest.EXTRA_HEADERS]; +/* eslint-enable indent */ + + /** * Public Methods */ requestSanitizer.enable = function () { - let onBeforeSendHeaders = chrome.webRequest.onBeforeSendHeaders; onBeforeSendHeaders.addListener(requestSanitizer._stripMetadata, { 'urls': stateManager.validHosts - }, [WebRequest.BLOCKING, WebRequest.HEADERS]); + }, ExtraInfoSpec); }; requestSanitizer.disable = function () { - let onBeforeSendHeaders = chrome.webRequest.onBeforeSendHeaders; onBeforeSendHeaders.removeListener(requestSanitizer._stripMetadata, { 'urls': stateManager.validHosts - }, [WebRequest.BLOCKING, WebRequest.HEADERS]); + }, ExtraInfoSpec); }; @@ -78,7 +88,6 @@ requestSanitizer._stripMetadata = function (requestDetails) { */ storageManager.type.get({[Setting.STRIP_METADATA]: true}, function (items) { - if (items === null || items.stripMetadata !== false) { requestSanitizer.enable(); } diff --git a/pages/updates/updates.html b/pages/updates/updates.html index 0c4fdc19..812c3c3b 100644 --- a/pages/updates/updates.html +++ b/pages/updates/updates.html @@ -45,6 +45,7 @@
  • Improved: HTML filter inside frames (#439)
  • Added: leaflet.featuregroup.subgroup v1.0.2 (#440)
  • Added: Leaflet.EasyButton v2.4.0 (#441)
  • +
  • Fixed: [Chromium] extraHeaders permission for sanitization (#442)