From 826cfd9f72f46715608e83f7250d987a01f68cca Mon Sep 17 00:00:00 2001 From: Thomas Rientjes <synzvato@protonmail.com> Date: Fri, 10 Mar 2017 08:52:39 +0100 Subject: [PATCH] Improve compatibility with HTTPS Everywhere --- .gitignore | 5 +++-- .jpmignore | 8 -------- README.md | 2 +- core/interceptor.js | 38 +++++++++++++++++++++++++++++++------- manifest.json | 2 +- 5 files changed, 36 insertions(+), 19 deletions(-) delete mode 100644 .jpmignore diff --git a/.gitignore b/.gitignore index 23b396e..87f449d 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 94fb2f8..0000000 --- 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 e68d97a..f3a90ca 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 c765329..f4e2d41 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 2ade3e4..18d1dce 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", -- GitLab