handleMessage _always_ tries to execute command, even if it has forwarding flags set. Command is executed before forwarding.
This commit is contained in:
parent
4c41601319
commit
c26744b9d9
@ -133,6 +133,15 @@ class CommsServer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
subscribe(command, callback) {
|
||||||
|
console.log("subscribing to command:", command, "with callback", callback)
|
||||||
|
if (!this.commands[command]) {
|
||||||
|
this.commands[command] = [callback];
|
||||||
|
} else {
|
||||||
|
this.commands[command].push(callback);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async getCurrentTabHostname() {
|
async getCurrentTabHostname() {
|
||||||
const activeTab = await this._getActiveTab();
|
const activeTab = await this._getActiveTab();
|
||||||
|
|
||||||
@ -243,35 +252,35 @@ class CommsServer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
execCmd(message, portOrSender, sendResponse) {
|
async execCmd(message, portOrSender, sendResponse) {
|
||||||
|
console.log("got a command to exec:", message.cmd, message, this.commands[message.cmd], this.commands)
|
||||||
this.logger.log(
|
this.logger.log(
|
||||||
'info', 'comms', '[CommsServer.js::execCmd] Received message', message,
|
'info', 'comms', '[CommsServer.js::execCmd] Received message', message,
|
||||||
". Port/sender:", portOrSender, "sendResponse:", sendResponse, "\nThere is ", this.commands[message.cmd]?.length ?? 0,
|
". Port/sender:", portOrSender, "sendResponse:", sendResponse, "\nThere is ", this.commands[message.cmd]?.length ?? 0,
|
||||||
" command(s) for action", message.cmd
|
" command(s) for action", message.cmd
|
||||||
);
|
);
|
||||||
for (const c of this.commands[message.cmd]) {
|
if (this.commands[message.cmd]) {
|
||||||
c(message, portOrSender, sendResponse);
|
for (const c of this.commands[message.cmd]) {
|
||||||
|
await c(message, portOrSender, sendResponse);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
handleMessage(message, portOrSender, sendResponse) {
|
async handleMessage(message, portOrSender, sendResponse) {
|
||||||
|
await this.execCmd(message, portOrSender, sendResponse);
|
||||||
|
|
||||||
if (message.forwardToContentScript) {
|
if (message.forwardToContentScript) {
|
||||||
this.logger.log('info', 'comms', "[CommsServer.js::processReceivedMessage] Message has 'forward to content script' flag set. Forwarding message as is. Message:", message);
|
this.logger.log('info', 'comms', "[CommsServer.js::processReceivedMessage] Message has 'forward to content script' flag set. Forwarding message as is. Message:", message);
|
||||||
this.sendToFrame(message, message.targetTab, message.targetFrame);
|
this.sendToFrame(message, message.targetTab, message.targetFrame);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
if (message.forwardToAll) {
|
if (message.forwardToAll) {
|
||||||
this.logger.log('info', 'comms', "[CommsServer.js::processReceivedMessage] Message has 'forward to all' flag set. Forwarding message as is. Message:", message);
|
this.logger.log('info', 'comms', "[CommsServer.js::processReceivedMessage] Message has 'forward to all' flag set. Forwarding message as is. Message:", message);
|
||||||
this.sendToAll(message);
|
this.sendToAll(message);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
if (message.forwardToActive) {
|
if (message.forwardToActive) {
|
||||||
this.logger.log('info', 'comms', "[CommsServer.js::processReceivedMessage] Message has 'forward to active' flag set. Forwarding message as is. Message:", message);
|
this.logger.log('info', 'comms', "[CommsServer.js::processReceivedMessage] Message has 'forward to active' flag set. Forwarding message as is. Message:", message);
|
||||||
this.sendToActive(message);
|
this.sendToActive(message);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.execCmd(message, portOrSender, sendResponse);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async processReceivedMessage(message, port){
|
async processReceivedMessage(message, port){
|
||||||
|
@ -49,6 +49,7 @@ class UWServer {
|
|||||||
this.settings = new Settings({logger: this.logger});
|
this.settings = new Settings({logger: this.logger});
|
||||||
await this.settings.init();
|
await this.settings.init();
|
||||||
this.comms = new CommsServer(this);
|
this.comms = new CommsServer(this);
|
||||||
|
this.comms.subscribe('show-logger', async () => await this.initUi());
|
||||||
|
|
||||||
var ths = this;
|
var ths = this;
|
||||||
if(BrowserDetect.firefox) {
|
if(BrowserDetect.firefox) {
|
||||||
@ -198,6 +199,26 @@ class UWServer {
|
|||||||
this.selectedSubitem[menu] = subitem;
|
this.selectedSubitem[menu] = subitem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async initUi() {
|
||||||
|
try {
|
||||||
|
if (BrowserDetect.firefox) {
|
||||||
|
console.log("")
|
||||||
|
browser.tabs.executeScript({
|
||||||
|
file: '/ext/uw-ui.js',
|
||||||
|
allFrames: true,
|
||||||
|
});
|
||||||
|
} else if (BrowserDetect.chrome) {
|
||||||
|
chrome.tabs.executeScript({
|
||||||
|
file: '/ext/uw-ui.js',
|
||||||
|
allFrames: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.error("UI initialization failed. Reason:", e);
|
||||||
|
this.logger.log('ERROR', 'uwbg', 'UI initialization failed. Reason:', e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async getCurrentTab() {
|
async getCurrentTab() {
|
||||||
if (BrowserDetect.firefox) {
|
if (BrowserDetect.firefox) {
|
||||||
return (await browser.tabs.query({active: true, currentWindow: true}))[0];
|
return (await browser.tabs.query({active: true, currentWindow: true}))[0];
|
||||||
|
Loading…
Reference in New Issue
Block a user