diff options
author | Wojtek Kosior <koszko@koszko.org> | 2021-08-06 17:17:45 +0200 |
---|---|---|
committer | Wojtek Kosior <koszko@koszko.org> | 2021-08-06 17:17:45 +0200 |
commit | 792fbe187bdffca4a748e88d66ea29f8936ae5c8 (patch) | |
tree | 5ccc504bd06cbae6bba12bc4f2e060fa2ad96ec3 /content/activity_info_server.js | |
parent | 90896bcfeb4e55c78d9a15700a6a4580f0df6365 (diff) | |
download | browser-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.js | 32 |
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() |