aboutsummaryrefslogtreecommitdiff
path: root/content/activity_info_server.js
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2021-07-06 18:27:38 +0200
committerWojtek Kosior <koszko@koszko.org>2021-07-06 18:27:38 +0200
commitc86bdfcd9d56309faca69b58830cea1fa98870e0 (patch)
treeaba830cbebf3a3a7a3af94c65103f14585651441 /content/activity_info_server.js
parent2059fab6c01a0793e8a82f80d9518ed2bd6d1e29 (diff)
parentb7e2870ff58ef85370781aa04e9e0126988e39fd (diff)
downloadbrowser-extension-c86bdfcd9d56309faca69b58830cea1fa98870e0.tar.gz
browser-extension-c86bdfcd9d56309faca69b58830cea1fa98870e0.zip
Merge popup display
Diffstat (limited to 'content/activity_info_server.js')
-rw-r--r--content/activity_info_server.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/content/activity_info_server.js b/content/activity_info_server.js
new file mode 100644
index 0000000..8435377
--- /dev/null
+++ b/content/activity_info_server.js
@@ -0,0 +1,60 @@
+/**
+ * part of Hachette
+ * Informing about activities performed by content script (script injection,
+ * script blocking).
+ *
+ * Copyright (C) 2021 Wojtek Kosior
+ * Redistribution terms are gathered in the `copyright' file.
+ */
+
+/*
+ * IMPORTS_START
+ * IMPORT listen_for_connection
+ * IMPORT CONNECTION_TYPE
+ * IMPORTS_END
+ */
+
+var activities = [];
+var ports = new Set();
+
+function report_activity(name, data)
+{
+ const activity = [name, data];
+ activities.push(activity);
+
+ for (const port of ports)
+ port.postMessage(activity);
+}
+
+function report_script(script_data)
+{
+ report_activity("script", script_data);
+}
+
+function report_settings(settings)
+{
+ report_activity("settings", settings);
+}
+
+function new_connection(port)
+{
+ console.log("new activity info connection!");
+
+ ports.add(port);
+
+ for (const activity of activities)
+ port.postMessage(activity);
+}
+
+function start_activity_info_server()
+{
+ listen_for_connection(CONNECTION_TYPE.ACTIVITY_INFO, new_connection);
+}
+
+/*
+ * EXPORTS_START
+ * EXPORT start_activity_info_server
+ * EXPORT report_script
+ * EXPORT report_settings
+ * EXPORTS_END
+ */