93 lines
1.9 KiB
JavaScript
93 lines
1.9 KiB
JavaScript
console.log("muffcast server v0.1");
|
|
|
|
var port = browser.runtime.connectNative("muffcast");
|
|
var waitForLoad = false;
|
|
|
|
browser.windows.getCurrent().then(function(windowInfo) {
|
|
///*
|
|
browser.windows.update(windowInfo.id, {
|
|
state: "fullscreen"
|
|
});
|
|
//*/
|
|
///*
|
|
browser.tabs.query({
|
|
currentWindow: true,
|
|
active: true
|
|
}).then(function(tabs) {
|
|
var tab = tabs[0];
|
|
browser.tabs.update(tab.id, {
|
|
url: browser.extension.getURL("splash/splash.html")
|
|
});
|
|
});
|
|
//*/
|
|
})
|
|
|
|
var sendCommand = function(message) {
|
|
browser.tabs.query({
|
|
currentWindow: true,
|
|
active: true
|
|
}).then(function(tabs) {
|
|
for (let tab of tabs) {
|
|
browser.tabs.sendMessage(
|
|
tab.id, message
|
|
).catch(function(error) {
|
|
port.postMessage(error);
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
/*
|
|
Listen for messages from the app.
|
|
*/
|
|
port.onMessage.addListener(function(message) {
|
|
console.log("received", message);
|
|
if (message.command) {
|
|
if (message.command == "load") {
|
|
if (message && message.url) {
|
|
browser.tabs.query({
|
|
currentWindow: true,
|
|
active: true
|
|
}).then(function(tabs) {
|
|
var tab = tabs[0];
|
|
waitForLoad = message;
|
|
if (tab.url != decodeURIComponent(message.url)) {
|
|
browser.tabs.update(tab.id, {
|
|
url: decodeURIComponent(message.url)
|
|
});
|
|
} else {
|
|
sendCommand(message);
|
|
waitForLoad = false;
|
|
}
|
|
});
|
|
}
|
|
} else
|
|
if (message.command == "stop") {
|
|
browser.tabs.query({
|
|
currentWindow: true,
|
|
active: true
|
|
}).then(function(tabs) {
|
|
var tab = tabs[0];
|
|
waitForLoad = false;
|
|
browser.tabs.update(tab.id, {
|
|
url: browser.extension.getURL("splash/splash.html")
|
|
}).then(function() {
|
|
port.postMessage("ok");
|
|
});
|
|
});
|
|
} else {
|
|
sendCommand(message);
|
|
}
|
|
}
|
|
});
|
|
|
|
browser.runtime.onMessage.addListener(function(message) {
|
|
if (message !== "loaded") {
|
|
console.log("response", message);
|
|
port.postMessage(message);
|
|
} else if (waitForLoad) {
|
|
sendCommand(waitForLoad);
|
|
waitForLoad = false;
|
|
}
|
|
})
|