diff --git a/extension/src/background.ts b/extension/src/background.ts index e7b2efe..2c6eecb 100644 --- a/extension/src/background.ts +++ b/extension/src/background.ts @@ -166,8 +166,10 @@ class TabShareExtension { if (!pending.timerId) { pending.timerId = setTimeout(() => { const existed = this._pendingTabSelection.delete(tabId); - if (existed) + if (existed) { pending.connection.close('Tab has been inactive for 5 seconds'); + chrome.tabs.sendMessage(tabId, { type: 'connectionTimeout' }); + } }, 5000); return; } diff --git a/extension/src/ui/connect.tsx b/extension/src/ui/connect.tsx index adcc79c..a06ae8b 100644 --- a/extension/src/ui/connect.tsx +++ b/extension/src/ui/connect.tsx @@ -121,6 +121,13 @@ const ConnectApp: React.FC = () => { setStatus({ type: 'error', message: 'Connection rejected. This tab can be closed.' }); }, []); + useEffect(() => { + chrome.runtime.onMessage.addListener(message => { + if (message.type === 'connectionTimeout') + handleReject(); + }); + }, []); + return (