diff --git a/.gitignore b/.gitignore index 23b396e9735a5f6a257d47ad89db30aafdbb5d6f..87f449d232127ba11e30a2e07fbc588edacd4bfc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ -data/_audit/node_modules -data/_audit/report.txt +audit/node_modules +audit/report.txt *.xpi +*.crx .idea diff --git a/.jpmignore b/.jpmignore deleted file mode 100644 index 94fb2f8440f4ce4776e5b9eaa0efdeccd5b4e6c3..0000000000000000000000000000000000000000 --- a/.jpmignore +++ /dev/null @@ -1,8 +0,0 @@ -data/_audit/node_modules -data/_audit/report.txt -.jpmignore -.gitignore -.idea -*.xpi -test -.git diff --git a/README.md b/README.md index e68d97a35aa52905cc68cbdcdf4e14ea4b571aa9..f3a90ca577690b3d66fe9e51d3b58e579a86ee3f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ Decentraleyes (Experimental) ============= -A reimplementation of current features of Decentraleyes. This project will help bring Decentraleyes to WebExtensions (Firefox 57), as well as Chromium-based browsers, Opera, and possibly even Edge. +A reimplementation of current features of Decentraleyes. This project will help bring Decentraleyes to WebExtensions (Firefox 57 and higher), as well as Chromium-based browsers, Opera, and possibly even Edge. diff --git a/core/interceptor.js b/core/interceptor.js index c7653292337989ba9a223ef8078b142d8c51180f..f4e2d41407c2d9da6ac9f3a81e5a0809dc6d9f58 100644 --- a/core/interceptor.js +++ b/core/interceptor.js @@ -14,11 +14,17 @@ 'use strict'; /** - * Variables + * Interceptor */ var interceptor = {}; +/** + * Constants + */ + +const HTTP_EXPRESSION = /^http?:\/\//; + /** * Public Methods */ @@ -56,11 +62,11 @@ interceptor._handleRequest = function (requestDetails, tabIdentifier, tabDetails targetPath = requestAnalyzer.getLocalTarget(requestDetails); if (!targetPath) { - return interceptor._handleMissingCandidate(); + return interceptor._handleMissingCandidate(requestDetails.url); } if (!files[targetPath]) { - return interceptor._handleMissingCandidate(); + return interceptor._handleMissingCandidate(requestDetails.url); } chrome.storage.local.get('amountInjected', function (items) { @@ -79,11 +85,29 @@ interceptor._handleRequest = function (requestDetails, tabIdentifier, tabDetails }; }; -interceptor._handleMissingCandidate = function () { +interceptor._handleMissingCandidate = function (requestUrl) { - return { - 'cancel': interceptor.blockMissing - }; + if (interceptor.blockMissing === true) { + + return { + 'cancel': true + }; + } + + if (requestUrl.match(HTTP_EXPRESSION)) { + + requestUrl = requestUrl.replace(HTTP_EXPRESSION, 'https://'); + + return { + 'redirectUrl': requestUrl + }; + + } else { + + return { + 'cancel': false + }; + } }; interceptor._applyBlockMissingPreference = function () { diff --git a/manifest.json b/manifest.json index 2ade3e4b023d6bf6ba26fcd08d9f81906835ff4d..18d1dceba9ee6cac52b4470bff18bc099628bea4 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "Decentraleyes", - "version": "1.3.7", + "version": "1.3.7.1", "author": "Thomas Rientjes",