popup now receives info about current tab as well as the list of frames with videos in that tab

This commit is contained in:
Tamius Han 2018-11-08 23:05:47 +01:00
parent 5cf3ec9b86
commit cbd7cbeb4a
3 changed files with 22 additions and 5 deletions

View File

@ -277,7 +277,7 @@ class CommsServer {
} }
if (message.cmd === 'get-current-site') { if (message.cmd === 'get-current-site') {
port.postMessage({cmd: 'set-current-site', site: await this.getCurrentTabHostname()}); port.postMessage({cmd: 'set-current-site', site: this.server.getVideoTab()});
} }
if (message.cmd === 'get-config') { if (message.cmd === 'get-config') {

View File

@ -14,6 +14,7 @@ class UWServer {
this.setup(); this.setup();
this.videoTabs = {}; this.videoTabs = {};
this.currentTabId = 0;
} }
async setup() { async setup() {
@ -60,13 +61,13 @@ class UWServer {
console.log("[uw-bg::onTabSwitched] TAB CHANGED, GETTING INFO FROM MAIN TAB"); console.log("[uw-bg::onTabSwitched] TAB CHANGED, GETTING INFO FROM MAIN TAB");
try { try {
var tabId = activeInfo.tabId; // just for readability this.currentTabId = activeInfo.tabId; // just for readability
var tab; var tab;
if (BrowserDetect.firefox) { if (BrowserDetect.firefox) {
var tab = await browser.tabs.get(tabId); var tab = await browser.tabs.get(this.currentTabId);
} else if (BrowserDetect.chrome) { } else if (BrowserDetect.chrome) {
var tab = await this._promisifyTabsGet(chrome, tabId); var tab = await this._promisifyTabsGet(chrome, this.currentTabId);
} }
this.currentSite = this.extractHostname(tab.url); this.currentSite = this.extractHostname(tab.url);
@ -145,6 +146,21 @@ class UWServer {
console.log("[UWServer::ungisterVideo] video unregistered. current videoTabs:", this.videoTabs); console.log("[UWServer::ungisterVideo] video unregistered. current videoTabs:", this.videoTabs);
} }
} }
getVideoTab() {
// friendly reminder: if current tab doesn't have a video,
// there won't be anything in this.videoTabs[this.currentTabId]
if (this.videoTabs[this.currentTabId]) {
return this.videoTabs[this.currentTabId];
}
// return something more or less empty if this tab doesn't have
// a video registered for it
return {
host: this.currentSite,
frames: []
}
}
} }
var server = new UWServer(); var server = new UWServer();

View File

@ -129,7 +129,8 @@ async function processReceivedMessage(message, port){
port.postMessage({cmd: 'get-current-zoom'}); port.postMessage({cmd: 'get-current-zoom'});
} }
site = message.site; site = message.site;
loadConfig(message.site); loadConfig(message.site.host);
loadFrames(message.site);
} else if (message.cmd === 'set-current-zoom') { } else if (message.cmd === 'set-current-zoom') {
setCurrentZoom(message.zoom); setCurrentZoom(message.zoom);
} }