Skip to content

Commit 50578bc

Browse files
committed
Delay dock connection warning
1 parent 5cc05bf commit 50578bc

2 files changed

Lines changed: 65 additions & 1 deletion

File tree

background.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4645,6 +4645,8 @@ chrome.runtime.onMessage.addListener(async function (request, sender, sendRespon
46454645
sendResponse({ state: isExtensionOn, streamID: streamID, password: password, settings: settings, beginnerMode: getPopupBeginnerMode() });
46464646
} else if (request.cmd && request.cmd === "getOnOffState") {
46474647
sendResponse({ state: isExtensionOn, streamID: streamID, password: password, settings: settings, beginnerMode: getPopupBeginnerMode() });
4648+
} else if (request.cmd && request.cmd === "getDockTransportHealth") {
4649+
sendResponse({ state: isExtensionOn, dockTransportHealth: getDockTransportHealth() });
46484650
} else if (request.cmd && request.cmd === "getSettings") {
46494651
ensureHandleStatusCache();
46504652
let responseData;

popup.js

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11492,6 +11492,9 @@ document.addEventListener("DOMContentLoaded", async function(event) {
1149211492
}
1149311493

1149411494
var serverFallbackUndoState = null;
11495+
var serverFallbackHealthCheckTimer = null;
11496+
var serverFallbackAutoClearTimer = null;
11497+
var serverFallbackAutoClearUntil = 0;
1149511498

1149611499
function getServerFallbackInputState() {
1149711500
return {
@@ -11544,6 +11547,50 @@ document.addEventListener("DOMContentLoaded", async function(event) {
1154411547
return banner;
1154511548
}
1154611549

11550+
function hideServerFallbackBanner() {
11551+
var banner = getServerFallbackBanner();
11552+
if (banner) {
11553+
banner.classList.remove("show");
11554+
banner.classList.remove("success");
11555+
}
11556+
if (serverFallbackAutoClearTimer) {
11557+
clearTimeout(serverFallbackAutoClearTimer);
11558+
serverFallbackAutoClearTimer = null;
11559+
}
11560+
}
11561+
11562+
function requestDockTransportHealth(callback) {
11563+
if (typeof chrome === "undefined" || !chrome.runtime || typeof chrome.runtime.sendMessage !== "function") {
11564+
return;
11565+
}
11566+
chrome.runtime.sendMessage({ cmd: "getDockTransportHealth" }, function (response) {
11567+
if (typeof callback === "function") {
11568+
callback(response);
11569+
}
11570+
});
11571+
}
11572+
11573+
function scheduleServerFallbackAutoClear() {
11574+
if (serverFallbackAutoClearTimer) {
11575+
clearTimeout(serverFallbackAutoClearTimer);
11576+
}
11577+
serverFallbackAutoClearUntil = Date.now() + 30000;
11578+
serverFallbackAutoClearTimer = setTimeout(function checkDockTransport() {
11579+
requestDockTransportHealth(function (response) {
11580+
var health = response && response.dockTransportHealth;
11581+
if (health && health.fakeMessageTransportReady) {
11582+
hideServerFallbackBanner();
11583+
return;
11584+
}
11585+
if (Date.now() < serverFallbackAutoClearUntil) {
11586+
serverFallbackAutoClearTimer = setTimeout(checkDockTransport, 2000);
11587+
} else {
11588+
serverFallbackAutoClearTimer = null;
11589+
}
11590+
});
11591+
}, 2000);
11592+
}
11593+
1154711594
function showServerFallbackBanner(health, customMessage, success, hideEnableButton, showUndoButton) {
1154811595
var banner = getServerFallbackBanner();
1154911596
if (!banner) {
@@ -11594,9 +11641,12 @@ document.addEventListener("DOMContentLoaded", async function(event) {
1159411641
banner.classList.remove("success");
1159511642
}
1159611643
banner.classList.add("show");
11644+
if (!success) {
11645+
scheduleServerFallbackAutoClear();
11646+
}
1159711647
}
1159811648

11599-
function maybePromptServerFallbackAfterFakeMessage(response) {
11649+
function maybePromptServerFallbackAfterFakeMessage(response, afterGrace) {
1160011650
var health = response && response.dockTransportHealth;
1160111651
if (!health) {
1160211652
return;
@@ -11606,6 +11656,18 @@ document.addEventListener("DOMContentLoaded", async function(event) {
1160611656
return;
1160711657
}
1160811658
if (health.fakeMessageTransportReady) {
11659+
hideServerFallbackBanner();
11660+
return;
11661+
}
11662+
if (!afterGrace) {
11663+
if (serverFallbackHealthCheckTimer) {
11664+
clearTimeout(serverFallbackHealthCheckTimer);
11665+
}
11666+
serverFallbackHealthCheckTimer = setTimeout(function () {
11667+
requestDockTransportHealth(function (updatedResponse) {
11668+
maybePromptServerFallbackAfterFakeMessage(updatedResponse, true);
11669+
});
11670+
}, 3000);
1160911671
return;
1161011672
}
1161111673
if (health.serverFallbackEnabled) {

0 commit comments

Comments
 (0)