/** * 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 */