diff --git a/src/background.ts b/src/background.ts index 80da5e8be..44a80015c 100644 --- a/src/background.ts +++ b/src/background.ts @@ -204,6 +204,13 @@ async function getTotp(text: string) { if (period) { entryData[hash].period = period; } + if ( + (await EntryStorage.hasEncryptedEntry()) !== + encryption.getEncryptionStatus() + ) { + chrome.tabs.sendMessage(id, { action: "errorenc" }); + return; + } await EntryStorage.import(encryption, entryData); chrome.tabs.sendMessage(id, { action: "added", account }); } @@ -410,6 +417,10 @@ function setAutolock() { document.cookie = `passphrase="${getCachedPassphrase()}${getCookieExpiry()}"`; autolockTimeout = setTimeout(() => { cachedPassphrase = ""; + const id = contentTab.id; + if (id) { + chrome.tabs.sendMessage(id, { action: "stopCapture" }); + } }, Number(localStorage.autolock) * 60000); } } diff --git a/src/content.ts b/src/content.ts index bad3d9725..677a835cb 100644 --- a/src/content.ts +++ b/src/content.ts @@ -14,6 +14,9 @@ if (!document.getElementById("__ga_grayLayout__")) { case "errorqr": alert(chrome.i18n.getMessage("errorqr")); break; + case "errorenc": + alert(chrome.i18n.getMessage("phrase_incorrect")); + break; case "added": alert(message.account + chrome.i18n.getMessage("added")); break; @@ -23,6 +26,17 @@ if (!document.getElementById("__ga_grayLayout__")) { case "pastecode": pasteCode(message.code); break; + case "stopCapture": + const captureBox = document.getElementById("__ga_captureBox__"); + if (captureBox) { + captureBox.style.display = "none"; + } + + const grayLayout = document.getElementById("__ga_grayLayout__"); + if (grayLayout) { + grayLayout.style.display = "none"; + } + break; default: // invalid command, ignore it break;