Okay then. Turns out background script might not be necessary. (Even though not yet removed from the projects, popup now communicates directly with the tab as opposed to background page which forwards everything to the tab. I think. But this means even Chrome — as shit as it is — might be able to do the popup stuff without me having to maintain another
version of code that does the same thing.)
This commit is contained in:
parent
45c986d66d
commit
33acbe5015
@ -1,6 +1,6 @@
|
|||||||
// Set prod to true when releasing
|
// Set prod to true when releasing
|
||||||
// _prod = true;
|
// _prod = true;
|
||||||
// _prod = false;
|
_prod = false;
|
||||||
|
|
||||||
Debug = {
|
Debug = {
|
||||||
debug: true,
|
debug: true,
|
||||||
|
@ -113,6 +113,7 @@ var _kbd_load = async function() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.keybinds = keybinds;
|
||||||
_kbd_keybinds = keybinds;
|
_kbd_keybinds = keybinds;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,8 +135,13 @@ var _kbd_fetch = async function(){
|
|||||||
return _kbd_keybinds;
|
return _kbd_keybinds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var _kbd_getKeybinds = function(){
|
||||||
|
return _kbd_keybinds;
|
||||||
|
}
|
||||||
|
|
||||||
var Keybinds = {
|
var Keybinds = {
|
||||||
init: _kbd_setup,
|
init: _kbd_setup,
|
||||||
fetch: _kbd_fetch,
|
fetch: _kbd_fetch,
|
||||||
mods: _kbd_ModKeys
|
mods: _kbd_ModKeys,
|
||||||
|
getKeybinds: _kbd_getKeybinds
|
||||||
}
|
}
|
||||||
|
@ -8,299 +8,34 @@
|
|||||||
//
|
//
|
||||||
// welcome to callback hell
|
// welcome to callback hell
|
||||||
|
|
||||||
|
var _cancer_popup_port;
|
||||||
|
var _cancer_uwbg_popup_port;
|
||||||
|
|
||||||
var _cancer_hasVideos_lastValue = undefined;
|
var _cancer_popup_handleCallbacks = function (message){
|
||||||
var _cancer_arActive_lastValue = undefined;
|
if(message.cmd == "has-video-response"){
|
||||||
|
if(message.response){
|
||||||
async function _cancer_recvmsg(message, sender, sendResponse){
|
if(message.response.hasVideos){
|
||||||
|
|
||||||
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){
|
|
||||||
hasVideos = true;
|
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";
|
|
||||||
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
var _cancer_init_popup = function() {
|
||||||
|
var _cancer_popup_port = browser.runtime.connect({name: "_uw_bg_popup"});
|
||||||
|
|
||||||
|
_cancer_popup_port.onMessage.addListener(_cancer_handleCallbacks);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
var ChromeCancer = {
|
var ChromeCancer = {
|
||||||
recvmsg: _cancer_recvmsg,
|
recvmsg: _cancer_recvmsg,
|
||||||
receiveMessage_cs: _cancer_content_receiveMessage,
|
receiveMessage_cs: _cancer_content_receiveMessage,
|
||||||
@ -308,4 +43,4 @@ var ChromeCancer = {
|
|||||||
check4videos: _cancer_check4videos,
|
check4videos: _cancer_check4videos,
|
||||||
check4videos2: _cancer_check4videos2,
|
check4videos2: _cancer_check4videos2,
|
||||||
check4conf2: _cancer_check4conf2
|
check4conf2: _cancer_check4conf2
|
||||||
}
|
}*/
|
||||||
|
@ -27,6 +27,7 @@ async function sendMessage(message){
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function _uwbg_rcvmsg(message){
|
async function _uwbg_rcvmsg(message){
|
||||||
|
return;
|
||||||
if(Debug.debug){
|
if(Debug.debug){
|
||||||
console.log("[uw-bg::_uwbg_rcvmsg] received message", message);
|
console.log("[uw-bg::_uwbg_rcvmsg] received message", message);
|
||||||
}
|
}
|
||||||
@ -43,7 +44,7 @@ async function _uwbg_rcvmsg(message){
|
|||||||
|
|
||||||
return Promise.resolve(response);
|
return Promise.resolve(response);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if(message.cmd == "get-config"){
|
if(message.cmd == "get-config"){
|
||||||
var config = {};
|
var config = {};
|
||||||
config.videoAlignment = Settings.miscFullscreenSettings.videoFloat;
|
config.videoAlignment = Settings.miscFullscreenSettings.videoFloat;
|
||||||
|
24
js/uw.js
24
js/uw.js
@ -152,10 +152,24 @@ function receiveMessage(message) {
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else if(message.cmd == "get-ardetect-active"){
|
else if(message.cmd == "get-config"){
|
||||||
|
|
||||||
var arDetect_active = ArDetect.isRunning();
|
var config = {};
|
||||||
return Promise.resolve({response: {"arDetect_active": arDetect_active }});
|
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"){
|
else if(message.cmd == "force-ar"){
|
||||||
@ -186,6 +200,10 @@ function receiveMessage(message) {
|
|||||||
else if(message.cmd == "reload-settings"){
|
else if(message.cmd == "reload-settings"){
|
||||||
Settings.reload();
|
Settings.reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(message.cmd == "testing"){
|
||||||
|
return Promise.resolve({response: "test response hier"});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -34,14 +34,39 @@ var hasVideos = false;
|
|||||||
var _config;
|
var _config;
|
||||||
var _changeAr_button_shortcuts = { "autoar":"none", "reset":"none", "219":"none", "189":"none", "169":"none" }
|
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(){
|
function check4videos(){
|
||||||
|
|
||||||
var command = {};
|
sendMessage({cmd: "has-videos"})
|
||||||
command.cmd = "has-videos";
|
|
||||||
command.sender = "popup";
|
|
||||||
command.receiver = "uwbg";
|
|
||||||
|
|
||||||
Comms.sendMessageRuntime(command)
|
|
||||||
.then(response => {
|
.then(response => {
|
||||||
if(Debug.debug)
|
if(Debug.debug)
|
||||||
console.log("[popup.js::check4videos] received response:",response);
|
console.log("[popup.js::check4videos] received response:",response);
|
||||||
@ -60,12 +85,8 @@ function check4videos(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function check4conf(){
|
function check4conf(){
|
||||||
var command = {};
|
|
||||||
command.cmd = "get-config";
|
|
||||||
command.sender = "popup";
|
|
||||||
command.receiver = "uwbg";
|
|
||||||
|
|
||||||
Comms.sendMessageRuntime(command)
|
sendMessage({cmd: "get-config"})
|
||||||
.then(response => {
|
.then(response => {
|
||||||
if(Debug.debug)
|
if(Debug.debug)
|
||||||
console.log("[popup.js::check4conf] received response:",response);
|
console.log("[popup.js::check4conf] received response:",response);
|
||||||
@ -345,7 +366,7 @@ document.addEventListener("click", (e) => {
|
|||||||
|
|
||||||
var command = getcmd(e);
|
var command = getcmd(e);
|
||||||
if(command)
|
if(command)
|
||||||
Comms.sendMessageRuntime(command);
|
sendMessage(command);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user