From 33acbe5015a944a7a5ebbcd3d380297f429f813d Mon Sep 17 00:00:00 2001 From: Tamius Han Date: Wed, 10 Jan 2018 23:16:07 +0100 Subject: [PATCH] =?UTF-8?q?Okay=20then.=20Turns=20out=20background=20scrip?= =?UTF-8?q?t=20might=20not=20be=20necessary.=20(Even=20though=20not=20yet?= =?UTF-8?q?=20removed=20from=20the=20projects,=20popup=20now=20communicate?= =?UTF-8?q?s=20directly=20with=20the=20tab=20as=20opposed=20to=20backgroun?= =?UTF-8?q?d=20page=20which=20forwards=20everything=20to=20the=20tab.=20I?= =?UTF-8?q?=20think.=20But=20this=20means=20even=20Chrome=20=E2=80=94=20as?= =?UTF-8?q?=20shit=20as=20it=20is=20=E2=80=94=20might=20be=20able=20to=20d?= =?UTF-8?q?o=20the=20popup=20stuff=20without=20me=20having=20to=20maintain?= =?UTF-8?q?=20another=20version=20of=20code=20that=20does=20the=20same=20t?= =?UTF-8?q?hing.)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/conf/Debug.js | 2 +- js/conf/Keybinds.js | 8 +- js/lib/ChromeCancer.js | 299 +++-------------------------------------- js/uw-bg.js | 17 +-- js/uw.js | 26 +++- res/popup/js/popup.js | 45 +++++-- 6 files changed, 89 insertions(+), 308 deletions(-) diff --git a/js/conf/Debug.js b/js/conf/Debug.js index 035bdca..a92131c 100644 --- a/js/conf/Debug.js +++ b/js/conf/Debug.js @@ -1,6 +1,6 @@ // Set prod to true when releasing // _prod = true; -// _prod = false; +_prod = false; Debug = { debug: true, diff --git a/js/conf/Keybinds.js b/js/conf/Keybinds.js index 4390cd8..8d99012 100644 --- a/js/conf/Keybinds.js +++ b/js/conf/Keybinds.js @@ -113,6 +113,7 @@ var _kbd_load = async function() { } + this.keybinds = keybinds; _kbd_keybinds = keybinds; } @@ -134,8 +135,13 @@ var _kbd_fetch = async function(){ return _kbd_keybinds; } +var _kbd_getKeybinds = function(){ + return _kbd_keybinds; +} + var Keybinds = { init: _kbd_setup, fetch: _kbd_fetch, - mods: _kbd_ModKeys + mods: _kbd_ModKeys, + getKeybinds: _kbd_getKeybinds } diff --git a/js/lib/ChromeCancer.js b/js/lib/ChromeCancer.js index e4c2096..d994f1e 100644 --- a/js/lib/ChromeCancer.js +++ b/js/lib/ChromeCancer.js @@ -8,299 +8,34 @@ // // welcome to callback hell +var _cancer_popup_port; +var _cancer_uwbg_popup_port; -var _cancer_hasVideos_lastValue = undefined; -var _cancer_arActive_lastValue = undefined; - -async function _cancer_recvmsg(message, sender, sendResponse){ - - if(Debug.debug){ - console.log("[ChromeCancer::_cancer_recvmsg] received message", message); - - } - - var tabs = await Comms.queryTabs({currentWindow: true, active: true}); - - message.sender = "uwbg"; - message.receiver = "uw"; - - if(message.cmd == "has-videos"){ - - if(tabs.length == 0) - return false; - - chrome.tabs.sendMessage(tabs[0].id, message, /*options,*/ function(response){ - if(Debug.debug) - console.log("[ChromeCancer::_cancer_recvmsg] received response for -- has-videos -- ", response); - - var resp = {response: response}; - - if(Debug.debug) - console.log("[ChromeCancer::_cancer_recvmsg] sending response for -- has-videos -- ", response); - - _cancer_hasVideos_lastValue = response.response; - sendResponse(resp); - }); - } - if(message.cmd == "has-videos-cancer"){ - var resp = {response: _cancer_hasVideos_lastValue}; - sendResponse(resp); - } - - if(message.cmd == "get-config-cancer"){ - var resp = _cancer_arActive_lastValue; - sendResponse(resp); - } - - if(message.cmd == "get-config"){ - if (tabs.length == 0) - return false; - - message.cmd = "get-ardetect-active"; - var config = {}; - config.videoAlignment = Settings.miscFullscreenSettings.videoFloat; - config.arConf = {}; - config.arConf.enabled_global = Settings.arDetect.enabled == "global"; - - var keybinds = await Keybinds.fetch(); - if(Debug.debug) - console.log("[ChromeCancer::_cancer_recvmsg] Keybinds.fetch returned this:", keybinds); - - config.keyboardShortcuts = keybinds; - - - - // predvidevajmo, da je enako. Če je drugače, bomo popravili ko dobimo odgovor - // assume current is same as global & change that when you get response from content script - config.arConf.enabled_current = Settings.arDetect.enabled == "global"; - - chrome.tabs.sendMessage(tabs[0].id, message, /*options,*/ function(response){ - if(Debug.debug){ - console.log("[ChromeCancer::_cancer_recvmsg] (callback) config so far:", config); - } - - if(response !== undefined){ - config.arConf.enabled_current = response.response.arDetect_active; - } - else if(Debug.debug){ - console.log("[ChromeCancer::_cancer_recvmsg] (callback) response undefined:", response); - } - - var resp = {response: config}; - if(Debug.debug) - console.log("[ChromeCancer::_cancer_recvmsg] sending response for -- get-config --", resp); - - _cancer_aractive_lastValue = resp; - sendResponse(resp); - }); - } - else if(message.cmd == "force-ar"){ - if (tabs.length == 0) - return false; - - chrome.tabs.sendMessage(tabs[0].id, message); // args: {cmd: string, newAr: number/"auto"} - } - - else if(message.cmd == "stop-autoar"){ - if (tabs.length == 0) - return false; - - chrome.tabs.sendMessage(tabs[0].id, message); - } - else if(message.cmd == "force-video-float"){ - if (tabs.length == 0) - return false; - - if(message.global){ - Settings.miscFullscreenSettings.videoFloat = message.newFloat; - } - - chrome.tabs.sendMessage(tabs[0].id, message); - } - - else if(message.cmd == "disable-autoar"){ - Settings.arDetect.enabled = "no"; - Settings.save(); - - if (tabs.length == 0) - return false; - chrome.tabs.sendMessage(tabs[0].id, "reload-settings"); - } - else if(message.cmd == "disable-autoar-whitelist-only"){ - Settings.arDetect.enabled = "whitelist"; - Settings.save(); - - if (tabs.length == 0) - return false; - chrome.tabs.sendMessage(tabs[0].id, "reload-settings"); - } - else if(message.cmd == "enable-autoar"){ - Settings.arDetect.enabled = "global"; - Settings.save(); - - if (tabs.length == 0) - return false; - chrome.tabs.sendMessage(tabs[0].id, "reload-settings"); - } - -} - -function _cancer_content_receiveMessage(message, sender, sendResponse){ - if(Debug.debug) - console.log("[ChromeCancer::receiveMessage_cs] ] we received a message.", message); - - - if(message.cmd == "has-videos"){ - var anyVideos = PageInfo.hasVideos(); - - var resp = {response: {"hasVideos": anyVideos }}; - - if(Debug.debug) - console.log("[ChromeCancer::receiveMessage_cs] ] sending response for has-videos:",resp); - - sendResponse(resp); - - } - else if(message.cmd == "get-ardetect-active"){ - var arDetect_active = ArDetect.isRunning(); - - var resp = {response: {"arDetect_active": arDetect_active }} - if(Debug.debug) - console.log("[ChromeCancer::receiveMessage_cs] ] sending response for get-ardetect-active:",resp); - sendResponse(resp); - - } - else if(message.cmd == "force-ar"){ - if(Debug.debug) - console.log("[ChromeCancer::receiveMessage_cs] ] we're being commanded to change aspect ratio to", message.newAr); - - if(message.newAr == "auto"){ - ArDetect.stop(); // just in case - ArDetect.arSetup(); - } - else{ - ArDetect.stop(); - - // we aren't in full screen, but we will want aspect ratio to be fixed when we go to - Resizer.setFsAr(message.newAr); - } - } - else if(message.cmd == "force-video-float"){ - if(Debug.debug) - console.log("[ChromeCancer::receiveMessage_cs] ] we're aligning video to", message.newFloat); - - Settings.miscFullscreenSettings.videoFloat = message.newFloat; - Settings.save(); - } - else if(message.cmd == "stop-autoar"){ - ArDetect.stop(); - } - else if(message.cmd == "reload-settings"){ - Settings.reload(); - } -} - -function _cancer_check4conf(){ - var command = {}; - command.cmd = "get-config"; - command.sender = "popup"; - command.receiver = "uwbg"; - - - browser.runtime.sendMessage(command, function(response){ - if(response){ - if(Debug.debug) - console.log("[ChromeCancer::check4conf] received response:",response); - - loadConfig(response.response); - } - else{ - if(Debug.debug) - console.log("%c[ChromeCancer::check4conf] sending message failed. retrying in 1s ... -- response for get-config:", "color: #f00", response); - - setTimeout(_cancer_check4conf, 1000); - } - }); -} - -function _cancer_check4videos(){ - - var command = {}; - command.cmd = "has-videos"; - command.sender = "popup"; - command.receiver = "uwbg"; - - browser.runtime.sendMessage(command, function(response){ - if(response){ - if(Debug.debug) - console.log("[ChromeCancer::check4videos] received response:",response); - - if(response.response.hasVideos){ +var _cancer_popup_handleCallbacks = function (message){ + if(message.cmd == "has-video-response"){ + if(message.response){ + if(message.response.hasVideos){ hasVideos = true; - openMenu(selectedMenu); + openMenu(); } } - else{ - if(Debug.debug) - console.log("%c[ChromeCancer::check4conf] sending message failed. retrying in 1s ... -- response for has-videos:", "color: #f00", response); - - setTimeout(_cancer_check4videos, 1000); + } + if(message.cmd == "get-config-response"){ + if(message.response){ + loadConfig(message.response); } - }); + } } -function _cancer_check4conf2(){ - var command = {}; - command.cmd = "get-config-cancer"; - command.sender = "popup"; - command.receiver = "uwbg"; +var _cancer_init_popup = function() { + var _cancer_popup_port = browser.runtime.connect({name: "_uw_bg_popup"}); - - browser.runtime.sendMessage(command, function(response){ - if(response){ - if(Debug.debug) - console.log("[ChromeCancer::check4conf2 (cancer edit)] received response:",response); - - loadConfig(response.response); - } - else{ - if(Debug.debug) - console.log("%c[ChromeCancer::check4conf (cancer edit)] sending message failed. retrying in 1s ... -- response for get-config:", "color: #f00", response, chrome.extension.lastError); - - setTimeout(_cancer_check4conf2, 1000); - } - }); -} - -function _cancer_check4videos2(){ - - var command = {}; - command.cmd = "has-videos-cancer"; - command.sender = "popup"; - command.receiver = "uwbg"; - - browser.runtime.sendMessage(command, function(response){ - if(response){ - if(Debug.debug) - console.log("[ChromeCancer::check4videos2 (cancer edit)] received response:",response); - - if(response.response.hasVideos){ - hasVideos = true; - openMenu(selectedMenu); - } - } - else{ - if(Debug.debug) - console.log("%c[ChromeCancer::check4conf2 (cancer edit)] sending message failed. retrying in 1s ... -- response for has-videos-cancer:", "color: #f00", response); - - setTimeout(_cancer_check4videos2, 1000); - } - }); + _cancer_popup_port.onMessage.addListener(_cancer_handleCallbacks); } - +/* var ChromeCancer = { recvmsg: _cancer_recvmsg, receiveMessage_cs: _cancer_content_receiveMessage, @@ -308,4 +43,4 @@ var ChromeCancer = { check4videos: _cancer_check4videos, check4videos2: _cancer_check4videos2, check4conf2: _cancer_check4conf2 -} +}*/ diff --git a/js/uw-bg.js b/js/uw-bg.js index 1e67afb..0e7a92b 100644 --- a/js/uw-bg.js +++ b/js/uw-bg.js @@ -27,6 +27,7 @@ async function sendMessage(message){ } async function _uwbg_rcvmsg(message){ + return; if(Debug.debug){ console.log("[uw-bg::_uwbg_rcvmsg] received message", message); } @@ -34,16 +35,16 @@ async function _uwbg_rcvmsg(message){ message.sender = "uwbg"; message.receiver = "uw"; - if(message.cmd == "has-videos"){ - var response = await sendMessage(message); - - if(Debug.debug){ - console.log("[uw-bg::_uwbg_rcvmsg] received response for message", message, "response is this -->", response); - } - - return Promise.resolve(response); + if(message.cmd == "has-videos"){ + var response = await sendMessage(message); + + if(Debug.debug){ + console.log("[uw-bg::_uwbg_rcvmsg] received response for message", message, "response is this -->", response); } + + return Promise.resolve(response); } + if(message.cmd == "get-config"){ var config = {}; config.videoAlignment = Settings.miscFullscreenSettings.videoFloat; diff --git a/js/uw.js b/js/uw.js index b61bc02..c6122e6 100644 --- a/js/uw.js +++ b/js/uw.js @@ -152,10 +152,24 @@ function receiveMessage(message) { } - else if(message.cmd == "get-ardetect-active"){ - - var arDetect_active = ArDetect.isRunning(); - return Promise.resolve({response: {"arDetect_active": arDetect_active }}); + else if(message.cmd == "get-config"){ + + var config = {}; + config.videoAlignment = Settings.miscFullscreenSettings.videoFloat; + config.arConf = {}; + config.arConf.enabled_global = Settings.arDetect.enabled == "global"; + + var keybinds = Keybinds.getKeybinds(); + if(Debug.debug) + console.log("[uw-bg::_uwbg_rcvmsg] Keybinds.fetch returned this:", keybinds); + + config.keyboardShortcuts = keybinds; + + // predvidevajmo, da je enako. Če je drugače, bomo popravili ko dobimo odgovor + // assume current is same as global & change that when you get response from content script + config.arConf.enabled_current = ArDetect.isRunning(); + + return Promise.resolve({response: config}); } else if(message.cmd == "force-ar"){ @@ -186,6 +200,10 @@ function receiveMessage(message) { else if(message.cmd == "reload-settings"){ Settings.reload(); } + + if(message.cmd == "testing"){ + return Promise.resolve({response: "test response hier"}); + } } diff --git a/res/popup/js/popup.js b/res/popup/js/popup.js index 406461f..a1f8aeb 100644 --- a/res/popup/js/popup.js +++ b/res/popup/js/popup.js @@ -34,14 +34,39 @@ var hasVideos = false; var _config; var _changeAr_button_shortcuts = { "autoar":"none", "reset":"none", "219":"none", "189":"none", "169":"none" } + +async function test(){ + var message = {cmd: "testing"}; + try{ + var tabs = await Comms.queryTabs({currentWindow: true, active: true}); + if(Debug.debug) + console.log("[popup.js::test] trying to send message", message, " to tab ", tabs[0], ". (all tabs:", tabs,")"); + + var response = await browser.tabs.sendMessage(tabs[0].id, message); + console.log("[popup.js::test] response is this:",response); + } + catch(e){ + console.log("[popup.js::test] sending message failed. prolly cos browser.tabs no worky?", e); + } +} +test(); + + + +async function sendMessage(message){ + console.log("SENDING MESSAGE TO CONTENT SCRIPT"); + var tabs = await Comms.queryTabs({currentWindow: true, active: true}); + if(Debug.debug) + console.log("[uw-bg::sendMessage] trying to send message", message, " to tab ", tabs[0], ". (all tabs:", tabs,")"); + + var response = await browser.tabs.sendMessage(tabs[0].id, message); + console.log("[uw-bg::sendMessage] response is this:",response); + return response; +} + function check4videos(){ - var command = {}; - command.cmd = "has-videos"; - command.sender = "popup"; - command.receiver = "uwbg"; - - Comms.sendMessageRuntime(command) + sendMessage({cmd: "has-videos"}) .then(response => { if(Debug.debug) console.log("[popup.js::check4videos] received response:",response); @@ -60,12 +85,8 @@ function check4videos(){ } function check4conf(){ - var command = {}; - command.cmd = "get-config"; - command.sender = "popup"; - command.receiver = "uwbg"; - Comms.sendMessageRuntime(command) + sendMessage({cmd: "get-config"}) .then(response => { if(Debug.debug) console.log("[popup.js::check4conf] received response:",response); @@ -345,7 +366,7 @@ document.addEventListener("click", (e) => { var command = getcmd(e); if(command) - Comms.sendMessageRuntime(command); + sendMessage(command); });