Show which feature is force disabled in the options page

Bug: twpowertools:64
Change-Id: I11ce740d5036ccff832f39d2a0f10290b0b063aa
diff --git a/src/options/optionsCommon.js b/src/options/optionsCommon.js
index c552da2..c76cd6c 100644
--- a/src/options/optionsCommon.js
+++ b/src/options/optionsCommon.js
@@ -117,31 +117,39 @@
         for (let option of section.options) {
           if (option?.customHTML) {
             optionsContainer.insertAdjacentHTML('beforeend', option.customHTML);
-            continue;
+          } else {
+            let optionEl = document.createElement('div');
+            optionEl.classList.add('option');
+
+            let checkbox = document.createElement('input');
+            checkbox.setAttribute('type', 'checkbox');
+            checkbox.id = option.codename;
+
+            let label = document.createElement('label');
+            label.setAttribute('for', checkbox.id);
+            label.setAttribute('data-i18n', option.codename);
+
+            optionEl.append(checkbox, ' ', label);
+
+            if (option?.experimental) {
+              let experimental = document.createElement('span');
+              experimental.classList.add('experimental-label');
+              experimental.setAttribute('data-i18n', 'experimental_label');
+
+              optionEl.append(' ', experimental);
+            }
+
+            optionsContainer.append(optionEl);
           }
 
-          let optionEl = document.createElement('div');
-          optionEl.classList.add('option');
+          // Add kill switch component after each option.
+          let killSwitchComponent = document.createElement('div');
+          killSwitchComponent.classList.add('kill-switch-label');
+          killSwitchComponent.setAttribute('hidden', '');
+          killSwitchComponent.setAttribute('data-feature', option.codename);
+          killSwitchComponent.setAttribute('data-i18n', 'killswitchenabled');
 
-          let checkbox = document.createElement('input');
-          checkbox.setAttribute('type', 'checkbox');
-          checkbox.id = option.codename;
-
-          let label = document.createElement('label');
-          label.setAttribute('for', checkbox.id);
-          label.setAttribute('data-i18n', option.codename);
-
-          optionEl.append(checkbox, ' ', label);
-
-          if (option?.experimental) {
-            let experimental = document.createElement('span');
-            experimental.classList.add('experimental-label');
-            experimental.setAttribute('data-i18n', 'experimental_label');
-
-            optionEl.append(experimental);
-          }
-
-          optionsContainer.append(optionEl);
+          optionsContainer.append(killSwitchComponent);
         }
       }
 
@@ -234,6 +242,10 @@
       }
 
       if (items[opt] === true) document.getElementById(opt).checked = true;
+      if (window.CONTEXT == 'options' &&
+          items?._forceDisabledFeatures?.includes?.(opt))
+        document.querySelector('.kill-switch-label[data-feature="' + opt + '"]')
+            .removeAttribute('hidden');
     }
 
     exclusiveOptions.forEach(exclusive => {