From 9508a3a30113e4045a8f66f5ad4fb51d7f1de183 Mon Sep 17 00:00:00 2001
From: Thomas Rientjes <synzvato@protonmail.com>
Date: Sat, 23 Feb 2019 04:53:16 +0100
Subject: [PATCH] Enable users to manually enforce staging

---
 core/constants.js | 1 +
 core/main.js      | 9 ++++++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/core/constants.js b/core/constants.js
index 5bbc13e..fd4691e 100644
--- a/core/constants.js
+++ b/core/constants.js
@@ -53,6 +53,7 @@ const Setting = {
     'AMOUNT_INJECTED': 'amountInjected',
     'BLOCK_MISSING': 'blockMissing',
     'DISABLE_PREFETCH': 'disablePrefetch',
+    'ENFORCE_STAGING': 'enforceStaging',
     'SHOW_ICON_BADGE': 'showIconBadge',
     'SHOW_RELEASE_NOTES': 'showReleaseNotes',
     'STRIP_METADATA': 'stripMetadata',
diff --git a/core/main.js b/core/main.js
index fddfd42..05f627e 100644
--- a/core/main.js
+++ b/core/main.js
@@ -30,6 +30,7 @@ main._initializeOptions = function () {
         [Setting.SHOW_ICON_BADGE]: true,
         [Setting.BLOCK_MISSING]: false,
         [Setting.DISABLE_PREFETCH]: true,
+        [Setting.ENFORCE_STAGING]: false,
         [Setting.STRIP_METADATA]: true,
         [Setting.WHITELISTED_DOMAINS]: {}
     };
@@ -37,7 +38,13 @@ main._initializeOptions = function () {
     chrome.storage.local.get(optionDefaults, function (options) {
 
         if (options === null) {
-            options = optionDefaults;
+            options = optionDefaults; // Restore option defaults.
+        }
+
+        if (options.enforceStaging === true) {
+
+            // Improve coverage at the cost of website stability.
+            stateManager.setExtensionEnvironment('staging');
         }
 
         if (options.disablePrefetch !== false) {
-- 
GitLab