aboutsummaryrefslogtreecommitdiff
path: root/content/activity_info_server.js
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2021-08-06 17:17:45 +0200
committerWojtek Kosior <koszko@koszko.org>2021-08-06 17:17:45 +0200
commit792fbe187bdffca4a748e88d66ea29f8936ae5c8 (patch)
tree5ccc504bd06cbae6bba12bc4f2e060fa2ad96ec3 /content/activity_info_server.js
parent90896bcfeb4e55c78d9a15700a6a4580f0df6365 (diff)
downloadbrowser-extension-792fbe187bdffca4a748e88d66ea29f8936ae5c8.tar.gz
browser-extension-792fbe187bdffca4a748e88d66ea29f8936ae5c8.zip
Facilitate installation of scripts from the repository
This commit includes: * removal of page_info_server * running of storage client in popup context * extraction of some common CSS to a separate file * extraction of scripts import view to a separate file * addition of a facility to conveniently clone complex structures from DOM (in DOM_helpers.js) * addition of hydrilla repo url to default settings * other minor changes and of course changes related to the actual installation of scripts from the repo
Diffstat (limited to 'content/activity_info_server.js')
-rw-r--r--content/activity_info_server.js32
1 files changed, 22 insertions, 10 deletions
diff --git a/content/activity_info_server.js b/content/activity_info_server.js
index a1384e9..81a25fb 100644
--- a/content/activity_info_server.js
+++ b/content/activity_info_server.js
@@ -11,14 +11,20 @@
* IMPORTS_START
* IMPORT listen_for_connection
* IMPORT CONNECTION_TYPE
- * IMPORT set_repo_query_repos
- * IMPORT set_repo_query_callback
+ * IMPORT repo_query
+ * IMPORT subscribe_repo_query_results
+ * IMPORT unsubscribe_repo_query_results
* IMPORTS_END
*/
var activities = [];
var ports = new Set();
+function report_activity_oneshot(name, data, port)
+{
+ port.postMessage([name, data]);
+}
+
function report_activity(name, data)
{
const activity = [name, data];
@@ -35,20 +41,23 @@ function report_script(script_data)
function report_settings(settings)
{
- const [pattern, settings_data, repos] = settings;
- set_repo_query_repos(repos);
-
report_activity("settings", settings);
}
-function report_repo_query_result(result)
+function report_repo_query_action(update, port)
{
- report_activity("repo_query_result", result);
+ report_activity_oneshot("repo_query_action", update, port);
}
-function trigger_repo_query()
+function trigger_repo_query(query_specifier)
{
- set_repo_query_callback(report_repo_query_result);
+ repo_query(...query_specifier);
+}
+
+function handle_disconnect(port, report_action)
+{
+ ports.delete(port)
+ unsubscribe_repo_query_results(report_action);
}
function new_connection(port)
@@ -60,13 +69,16 @@ function new_connection(port)
for (const activity of activities)
port.postMessage(activity);
+ const report_action = u => report_repo_query_action(u, port);
+ subscribe_repo_query_results(report_action);
+
/*
* So far the only thing we expect to receive is repo query order. Once more
* possibilities arrive, we will need to complicate this listener.
*/
port.onMessage.addListener(trigger_repo_query);
- port.onDisconnect.addListener(() => ports.delete(port));
+ port.onDisconnect.addListener(() => handle_disconnect(port, report_action));
}
function start_activity_info_server()