import { setupMessageHandler } from "./messages"; import { setupAutoLock } from "./alarms"; import { getSettings, isUnlocked, lock } from "./vault"; setupMessageHandler(); void setupAutoLock(); // Lock-on-close via port disconnect. chrome.runtime.sendMessage in `pagehide` // is unreliable in MV3 — the popup context tears down before the message lands. // A persistent port survives the unload; the SW locks when it sees the disconnect. chrome.runtime.onConnect.addListener((port) => { if (port.name !== "popup") return; port.onDisconnect.addListener(() => { if (isUnlocked() && getSettings().lockOnClose !== false) { lock(); } }); });