diff --git a/src/ext/lib/Settings.js b/src/ext/lib/Settings.js index dddd307..e257f02 100644 --- a/src/ext/lib/Settings.js +++ b/src/ext/lib/Settings.js @@ -28,11 +28,9 @@ class Settings { if(currentBrowser.firefox) { browser.storage.onChanged.addListener( (changes, area) => { - if (Debug.debug && Debug.debugStorage) { - console.log("[Settings::] Settings have been changed outside of here. Updating active settings. Changes:", changes, "storage area:", area); - if (changes['uwSettings'] && changes['uwSettings'].newValue) { - console.log("[Settings::] new settings object:", JSON.parse(changes.uwSettings.newValue)); - } + this.logger.log('info', 'Settings', "[Settings::] Settings have been changed outside of here. Updating active settings. Changes:", changes, "storage area:", area); + if (changes['uwSettings'] && changes['uwSettings'].newValue) { + this.logger.log('info', 'Settings',"[Settings::] new settings object:", JSON.parse(changes.uwSettings.newValue)); } if(changes['uwSettings'] && changes['uwSettings'].newValue) { ths.setActive(JSON.parse(changes.uwSettings.newValue)); @@ -42,17 +40,15 @@ class Settings { try { updateCallback(ths); } catch (e) { - console.log("[Settings] CALLING UPDATE CALLBACK FAILED.") + this.logger.log('error', 'Settings', "[Settings] CALLING UPDATE CALLBACK FAILED.") } } }); } else if (currentBrowser.chrome) { chrome.storage.onChanged.addListener( (changes, area) => { - if (Debug.debug && Debug.debugStorage) { - console.log("[Settings::] Settings have been changed outside of here. Updating active settings. Changes:", changes, "storage area:", area); - if (changes['uwSettings'] && changes['uwSettings'].newValue) { - console.log("[Settings::] new settings object:", JSON.parse(changes.uwSettings.newValue)); - } + this.logger.log('info', 'Settings', "[Settings::] Settings have been changed outside of here. Updating active settings. Changes:", changes, "storage area:", area); + if (changes['uwSettings'] && changes['uwSettings'].newValue) { + this.logger.log('info', 'Settings',"[Settings::] new settings object:", JSON.parse(changes.uwSettings.newValue)); } if(changes['uwSettings'] && changes['uwSettings'].newValue) { ths.setActive(JSON.parse(changes.uwSettings.newValue)); @@ -62,7 +58,7 @@ class Settings { try { updateCallback(ths); } catch (e) { - console.log("[Settings] CALLING UPDATE CALLBACK FAILED.") + this.logger.log('error', 'Settings',"[Settings] CALLING UPDATE CALLBACK FAILED.") } } }); @@ -133,13 +129,13 @@ class Settings { const currentVersion = this.getExtensionVersion(); if(Debug.debug) { - console.log("[Settings::init] Configuration fetched from storage:", settings, - "\nlast saved with:", settings.version, - "\ncurrent version:", currentVersion - ); + this.logger.log('info', 'Settings', "[Settings::init] Configuration fetched from storage:", settings, + "\nlast saved with:", settings.version, + "\ncurrent version:", currentVersion + ); if (Debug.flushStoredSettings) { - console.log("%c[Settings::init] Debug.flushStoredSettings is true. Using default settings", "background: #d00; color: #ffd"); + this.logger.log('info', 'Settings', "%c[Settings::init] Debug.flushStoredSettings is true. Using default settings", "background: #d00; color: #ffd"); Debug.flushStoredSettings = false; // don't do it again this session this.active = this.getDefaultSettings(); this.active.version = currentVersion; @@ -175,18 +171,14 @@ class Settings { if (oldVersion == currentVersion) { - if(Debug.debug) { - console.log("[Settings::init] extension was saved with current version of ultrawidify. Returning object as-is."); - } + this.logger.log('info', 'Settings', "[Settings::init] extension was saved with current version of ultrawidify. Returning object as-is."); return this.active; } // if extension has been updated, update existing settings with any options added in the // new version. In addition to that, we remove old keys that are no longer used. const patched = ObjectCopy.addNew(settings, this.default); - if(Debug.debug) { - console.log("[Settings.init] Results from ObjectCopy.addNew()?", patched, "\n\nSettings from storage", settings, "\ndefault?", this.default,); - } + this.logger.log('info', 'Settings',"[Settings.init] Results from ObjectCopy.addNew()?", patched, "\n\nSettings from storage", settings, "\ndefault?", this.default); if(patched){ this.active = patched; @@ -221,13 +213,7 @@ class Settings { }); } - if (Debug.debug && Debug.debugStorage) { - try { - console.log("[Settings::get] Got settings:", JSON.parse(ret.uwSettings)); - } catch (e) { - console.log("[Settings::get] No settings.") - } - } + this.logger.log('info', 'Settings', 'Got settings:', ret && ret.uwSettings && JSON.parse(ret.uwSettings)); try { return JSON.parse(ret.uwSettings); @@ -237,9 +223,7 @@ class Settings { } async set(extensionConf) { - if (Debug.debug && Debug.debugStorage) { - console.log("[Settings::set] setting new settings:", extensionConf) - } + this.logger.log('info', 'Settings', "[Settings::set] setting new settings:", extensionConf) if (currentBrowser.firefox || currentBrowser.edge) { extensionConf.version = this.version; @@ -315,10 +299,7 @@ class Settings { site = window.location.hostname; if (!site) { - if (Debug.debug) { - console.log("[Settings::canStartExtension] window.location.hostname is null or undefined:", window.location.hostname) - console.log("active settings:", this.active) - } + this.logger.log('info', 'Settings', `[Settings::canStartExtension] window.location.hostname is null or undefined: ${window.location.hostname} \nactive settings:`, this.active); return ExtensionMode.Disabled; } } @@ -340,9 +321,8 @@ class Settings { } } catch(e){ - if(Debug.debug){ - console.log("[Settings.js::canStartExtension] Something went wrong — are settings defined/has init() been called?\n\nerror:", e, "\n\nSettings object:", this) - } + this.logger.log('error', 'Settings', "[Settings.js::canStartExtension] Something went wrong — are settings defined/has init() been called?\n\nerror:", e, "\n\nSettings object:", this) + return ExtensionMode.Disabled; } } @@ -353,8 +333,7 @@ class Settings { site = window.location.hostname; if (!site) { - console.log("[Settings::canStartExtension] window.location.hostname is null or undefined:", window.location.hostname) - console.log("active settings:", this.active) + this.logger.log('info', 'Settings', `[Settings::canStartExtension] window.location.hostname is null or undefined: ${window.location.hostname} \nactive settings:`, this.active); return false; } } @@ -380,10 +359,8 @@ class Settings { } else { return false; } - } catch(e){ - if(Debug.debug){ - console.log("[Settings.js::canStartExtension] Something went wrong — are settings defined/has init() been called?\nSettings object:", this) - } + } catch(e) { + this.logger.log('error', 'Settings', "[Settings.js::canStartExtension] Something went wrong — are settings defined/has init() been called?\nSettings object:", this); return false; } } @@ -405,9 +382,7 @@ class Settings { return this.active.sites[site].keyboardShortcutsEnabled === ExtensionMode.Enabled; } } catch (e) { - if (Debug.debug) { - console.error("[Settings.js::keyboardDisabled] something went wrong:", e); - } + this.logger.log('info', 'Settings',"[Settings.js::keyboardDisabled] something went wrong:", e); return false; } } @@ -438,12 +413,12 @@ class Settings { const csar = this.canStartAutoAr(site); Debug.debug = true; - console.log("[Settings::canStartAutoAr] ----------------\nCAN WE START AUTOAR ON SITE", site, - "?\n\nsettings.active.sites[site]=", this.active.sites[site], "settings.active.sites[@global]=", this.active.sites['@global'], - "\nAutoar mode (global)?", this.active.sites['@global'].autoar, - `\nAutoar mode (${site})`, this.active.sites[site] ? this.active.sites[site].autoar : '', - "\nCan autoar be started?", csar - ); + this.logger.log('info', 'Settings', "[Settings::canStartAutoAr] ----------------\nCAN WE START AUTOAR ON SITE", site, + "?\n\nsettings.active.sites[site]=", this.active.sites[site], "settings.active.sites[@global]=", this.active.sites['@global'], + "\nAutoar mode (global)?", this.active.sites['@global'].autoar, + `\nAutoar mode (${site})`, this.active.sites[site] ? this.active.sites[site].autoar : '', + "\nCan autoar be started?", csar + ); } // if site is not defined, we use default mode: @@ -454,10 +429,10 @@ class Settings { if (this.active.sites['@global'].autoar === ExtensionMode.Enabled) { return this.active.sites[site].autoar !== ExtensionMode.Disabled; } else if (this.active.sites['@global'].autoar === ExtensionMode.Whitelist) { - console.log("canStartAutoAr — can(not) start csar because extension is in whitelist mode, and this site is (not) equal to", ExtensionMode.Enabled) + this.logger.log('info', 'Settings', "canStartAutoAr — can(not) start csar because extension is in whitelist mode, and this site is (not) equal to", ExtensionMode.Enabled) return this.active.sites[site].autoar === ExtensionMode.Enabled; } else { - console.log("canStartAutoAr — cannot start csar because extension is globally disabled") + this.logger.log('info', 'Settings', "canStartAutoAr — cannot start csar because extension is globally disabled") return false; } } diff --git a/src/ext/lib/comms/CommsServer.js b/src/ext/lib/comms/CommsServer.js index 51a982a..32d050d 100644 --- a/src/ext/lib/comms/CommsServer.js +++ b/src/ext/lib/comms/CommsServer.js @@ -4,13 +4,12 @@ import BrowserDetect from '../../conf/BrowserDetect'; class CommsServer { constructor(server) { this.server = server; + this.logger = server.logger; this.settings = server.settings; this.ports = []; var ths = this; - // console.log("[CommsServer::ctor] INIT! are we in ff?", BrowserDetect.firefox, "BrowserDetect says ...", BrowserDetect) - if (BrowserDetect.firefox) { browser.runtime.onConnect.addListener(p => ths.onConnect(p)); browser.runtime.onMessage.addListener((m, sender) => ths.processReceivedMessage_nonpersistent(m, sender)); @@ -20,20 +19,8 @@ class CommsServer { } } - async toObject(obj) { - // console.log("(not actually) CLONING OBJECT", obj); - // try { - // const r = JSON.parse(JSON.stringify(obj)); - // return r; - // } catch (e) { - // console.log("ERROR WHILE CLONING", obj); - return obj; - // } - } - async getCurrentTabHostname() { const activeTab = await this._getActiveTab(); - const url = activeTab[0].url; var hostname; @@ -52,7 +39,6 @@ class CommsServer { } sendToAll(message){ - message = JSON.parse(JSON.stringify(message)); // vue quirk. We should really use vue store instead for(var p of this.ports){ for(var frame in p){ p[frame].postMessage(message); @@ -74,10 +60,7 @@ class CommsServer { } async sendToFrame(message, tab, frame) { - // message = JSON.parse(JSON.stringify(message)); // vue quirk. We should really use vue store instead - if(Debug.debug && Debug.comms){ - console.log(`%c[CommsServer::sendToFrame] attempting to send message to tab ${tab}, frame ${frame}`, "background: #dda; color: #11D", message); - } + this.logger.log('info', 'CommsServer', `%c[CommsServer::sendToFrame] attempting to send message to tab ${tab}, frame ${frame}`, "background: #dda; color: #11D", message); if (isNaN(tab)) { if (tab === '__playing') { @@ -91,33 +74,23 @@ class CommsServer { [tab, frame] = tab.split('-') } - if(Debug.debug && Debug.comms){ - console.log(`%c[CommsServer::sendToFrame] attempting to send message to tab ${tab}, frame ${frame}`, "background: #dda; color: #11D", message); - } + this.logger.log('info', 'CommsServer', `%c[CommsServer::sendToFrame] attempting to send message to tab ${tab}, frame ${frame}`, "background: #dda; color: #11D", message); try { this.ports[tab][frame].postMessage(message); } catch (e) { - if(Debug.debug && Debug.comms){ - console.log(`%c[CommsServer::sendToFrame] Sending message failed. Reason:`, "background: #dda; color: #11D", e); - } + this.logger.log('error', 'CommsServer', `%c[CommsServer::sendToFrame] Sending message failed. Reason:`, "background: #dda; color: #11D", e); } } async sendToActive(message) { - message = JSON.parse(JSON.stringify(message)); // vue quirk. We should really use vue store instead - - if(Debug.debug && Debug.comms){ - console.log("%c[CommsServer::sendToActive] trying to send a message to active tab. Message:", "background: #dda; color: #11D", message); - } + this.logger.log('info', 'CommsServer', "%c[CommsServer::sendToActive] trying to send a message to active tab. Message:", "background: #dda; color: #11D", message); var tabs = await this._getActiveTab(); - if(Debug.debug && Debug.comms){ - console.log("[CommsServer::_sendToActive] currently active tab(s)?", tabs); - for (var key in this.ports[tabs[0].id]) { - console.log("key?", key, this.ports[tabs[0].id]); - } + this.logger.log('info', 'CommsServer', "[CommsServer::_sendToActive] currently active tab(s)?", tabs); + for (var key in this.ports[tabs[0].id]) { + this.logger.log('info', 'CommsServer', "key?", key, this.ports[tabs[0].id]); } for (var key in this.ports[tabs[0].id]) { @@ -151,27 +124,19 @@ class CommsServer { } async processReceivedMessage(message, port){ - if (Debug.debug && Debug.comms) { - console.log("[CommsServer.js::processReceivedMessage] Received message from popup/content script!", message, "port", port, "\nsettings and server:", this.settings,this.server); - } + this.logger.log('info', 'CommsServer', "[CommsServer.js::processReceivedMessage] Received message from popup/content script!", message, "port", port, "\nsettings and server:", this.settings,this.server); if (message.forwardToContentScript) { - if (Debug.debug && Debug.comms) { - console.log("[CommsServer.js::processReceivedMessage] Message has 'forward to content script' flag set. Forwarding message as is. Message:", message); - } + this.logger.log('info', 'CommsServer', "[CommsServer.js::processReceivedMessage] Message has 'forward to content script' flag set. Forwarding message as is. Message:", message); this.sendToFrame(message, message.targetTab, message.targetFrame); } if (message.forwardToAll) { - if (Debug.debug && Debug.comms) { - console.log("[CommsServer.js::processReceivedMessage] Message has 'forward to all' flag set. Forwarding message as is. Message:", message); - } + this.logger.log('info', 'CommsServer', "[CommsServer.js::processReceivedMessage] Message has 'forward to all' flag set. Forwarding message as is. Message:", message); this.sendToAll(message); } if (message.forwardToActive) { - if (Debug.debug && Debug.comms) { - console.log("[CommsServer.js::processReceivedMessage] Message has 'forward to active' flag set. Forwarding message as is. Message:", message); - } + this.logger.log('info', 'CommsServer', "[CommsServer.js::processReceivedMessage] Message has 'forward to active' flag set. Forwarding message as is. Message:", message); this.sendToActive(message) } @@ -198,9 +163,7 @@ class CommsServer { } if (message.cmd === 'get-config') { - if(Debug.debug) { - console.log("CommsServer: received get-config. Active settings?", this.settings.active, "\n(settings:", this.settings, ")") - } + this.logger.log('info', 'CommsServer', "CommsServer: received get-config. Active settings?", this.settings.active, "\n(settings:", this.settings, ")"); port.postMessage( {cmd: "set-config", conf: this.settings.active, site: this.server.currentSite} ); @@ -212,9 +175,7 @@ class CommsServer { } processReceivedMessage_nonpersistent(message, sender, sendResponse){ - if (Debug.debug && Debug.comms) { - console.log("%c[CommsServer.js::processMessage_nonpersistent] Received message from background script!", "background-color: #11D; color: #aad", message, sender); - } + this.logger.log('info', 'CommsServer', "%c[CommsServer.js::processMessage_nonpersistent] Received message from background script!", "background-color: #11D; color: #aad", message, sender); if (message.cmd === 'inject-css') { this.server.injectCss(message.cssString, sender); @@ -229,10 +190,8 @@ class CommsServer { } if (message.forwardToContentScript) { - if (Debug.debug && Debug.comms) { - console.log("[CommsServer.js::processMessage_nonpersistent] Message has 'forward to content script' flag set. Forwarding message as is. Message:", message); - console.log("[CommsServer.js::processMessage_nonpersistent] (btw we probably shouldn't be seeing this. This should prolly happen in persistent connection?"); - } + this.logger.log('info', 'CommsServer', "[CommsServer.js::processMessage_nonpersistent] Message has 'forward to content script' flag set. Forwarding message as is. Message:", message); + this.logger.log('info', 'CommsServer', "[CommsServer.js::processMessage_nonpersistent] (btw we probably shouldn't be seeing this. This should prolly happen in persistent connection?"); this.sendToFrame(message, message.targetFrame); } @@ -240,9 +199,7 @@ class CommsServer { if (message.cmd === 'get-config') { if (BrowserDetect.firefox) { var ret = {extensionConf: JSON.stringify(this.settings.active)}; - if (Debug.debug && Debug.comms) { - console.log("%c[CommsServer.js::processMessage_nonpersistent] Returning this:", "background-color: #11D; color: #aad", ret); - } + this.logger.log('info', 'CommsServer', "%c[CommsServer.js::processMessage_nonpersistent] Returning this:", "background-color: #11D; color: #aad", ret); Promise.resolve(ret); } else { sendResponse({extensionConf: JSON.stringify(this.settings.active)}); @@ -252,9 +209,7 @@ class CommsServer { this.settings.active.sites['@global'].autoar = "blacklist"; this.settings.save(); this.sendToAll({cmd: "reload-settings", sender: "uwbg"}) - if(Debug.debug){ - console.log("[uw-bg] autoar set to enabled (blacklist). evidenz:", this.settings.active); - } + this.logger.log('info', 'CommsServer', "[uw-bg] autoar set to enabled (blacklist). evidenz:", this.settings.active); } else if (message.cmd === "autoar-disable") { this.settings.active.sites['@global'].autoar = "disabled"; if(message.reason){ @@ -264,13 +219,10 @@ class CommsServer { } this.settings.save(); this.sendToAll({cmd: 'reload-settings', newConf: this.settings.active}); - if(Debug.debug){ - console.log("[uw-bg] autoar set to disabled. evidenz:", this.settings.active); - } + this.logger.log('info', 'CommsServer', "[uw-bg] autoar set to disabled. evidenz:", this.settings.active); } else if (message.cmd === "autoar-set-interval") { - if (Debug.debug) { - console.log("[uw-bg] trying to set new interval for autoAr. New interval is",message.timeout,"ms"); - } + this.logger.log('info', 'CommsServer', `[uw-bg] trying to set new interval for autoAr. New interval is, ${message.timeout} ms`); + // set fairly liberal limit var timeout = message.timeout < 4 ? 4 : message.timeout; this.settings.active.arDetect.timer_playing = timeout;