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