summaryrefslogtreecommitdiff
path: root/data/extensions/https-everywhere@eff.org/pages/switch-planner/ux.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/https-everywhere@eff.org/pages/switch-planner/ux.js')
-rw-r--r--data/extensions/https-everywhere@eff.org/pages/switch-planner/ux.js88
1 files changed, 88 insertions, 0 deletions
diff --git a/data/extensions/https-everywhere@eff.org/pages/switch-planner/ux.js b/data/extensions/https-everywhere@eff.org/pages/switch-planner/ux.js
new file mode 100644
index 0000000..1562f8f
--- /dev/null
+++ b/data/extensions/https-everywhere@eff.org/pages/switch-planner/ux.js
@@ -0,0 +1,88 @@
+"use strict";
+
+document.addEventListener("DOMContentLoaded", () => {
+ const background = chrome.extension.getBackgroundPage().require('./background');
+ var tab = document.location.search.match(/tab=([^&]*)/)[1];
+ var content = document.getElementById("content");
+
+ var nrw_text_div = document.createElement("div");
+ nrw_text_div.innerText = "Unrewritten HTTP resources loaded from this tab (enable HTTPS on these domains and add them to HTTPS Everywhere):"
+ var nrw_div = switchPlannerDetailsHtmlSection(
+ background.sortSwitchPlanner(tab, "nrw"),
+ background.switchPlannerInfo[tab]["nrw"]
+ );
+ var rw_text_div = document.createElement("div");
+ rw_text_div.style.marginTop = "20px";
+ rw_text_div.innerText = "Resources rewritten successfully from this tab (update these in your source code):"
+ var rw_div = switchPlannerDetailsHtmlSection(
+ background.sortSwitchPlanner(tab, "rw"),
+ background.switchPlannerInfo[tab]["rw"]
+ );
+
+ content.appendChild(nrw_text_div);
+ content.appendChild(nrw_div);
+ content.appendChild(rw_text_div);
+ content.appendChild(rw_div);
+});
+
+/**
+ * Generate the detailed html fot the switch planner, by section
+ * */
+function switchPlannerDetailsHtmlSection(asset_host_list, link_keys) {
+ var wrapper_div = document.createElement("div");
+ if (asset_host_list.length == 0) {
+ wrapper_div.style.fontWeight = "bold";
+ wrapper_div.innerText = "none";
+ return wrapper_div;
+ }
+
+ for (var i = asset_host_list.length - 1; i >= 0; i--) {
+ var host = asset_host_list[i][3];
+ var activeCount = asset_host_list[i][1];
+ var passiveCount = asset_host_list[i][2];
+
+ var div = document.createElement("div");
+ div.style.marginTop = "20px";
+ var b = document.createElement("b");
+ b.innerText = host;
+ div.appendChild(b);
+
+ if (activeCount > 0) {
+ var active_div = document.createElement("div");
+ active_div.appendChild(document.createTextNode(activeCount + " active"));
+ for (const link of linksFromKeys(link_keys[host][1])) {
+ active_div.appendChild(link);
+ }
+ div.appendChild(active_div);
+ }
+ if (passiveCount > 0) {
+ var passive_div = document.createElement("div");
+ passive_div.appendChild(document.createTextNode(passiveCount + " passive"));
+ for (const link of linksFromKeys(link_keys[host][0])) {
+ passive_div.appendChild(link);
+ }
+ div.appendChild(passive_div);
+ }
+ wrapper_div.appendChild(div);
+ }
+ return wrapper_div;
+}
+
+/**
+ * Generate a HTML link from urls in map
+ * map: the map containing the urls
+ * */
+function linksFromKeys(map) {
+ if (typeof map == 'undefined') return "";
+ var links = [];
+ for (var key in map) {
+ if (map.hasOwnProperty(key)) {
+ var link = document.createElement("a");
+ link.style.display = "block";
+ link.href = key;
+ link.innerText = key;
+ links.push(link);
+ }
+ }
+ return links;
+}