Google chrome extension 浏览器关闭时清除Chrome扩展的临时存储数据

Google chrome extension 浏览器关闭时清除Chrome扩展的临时存储数据,google-chrome-extension,session-storage,google-chrome-storage,chrome-sync,Google Chrome Extension,Session Storage,Google Chrome Storage,Chrome Sync,我正在构建一个扩展,每次浏览器打开时都会要求用户输入一个强密码。其目的是在注册时使用该密码为新网站派生和生成强密码,并在用户下次访问已访问的网站时尝试重新生成相同的密码。 我使用以下方法存储用户的主密码(用于生成密码),这是敏感信息: window.sessionStorage.setItem(varName) 我使用下面的方法在需要的时候得到它 sessionStorage.getItem(varName) 我的问题是,我希望这些存储在浏览器数据中的数据在Chrome打开时有效。每次用户关

我正在构建一个扩展,每次浏览器打开时都会要求用户输入一个强密码。其目的是在注册时使用该密码为新网站派生和生成强密码,并在用户下次访问已访问的网站时尝试重新生成相同的密码。 我使用以下方法存储用户的主密码(用于生成密码),这是敏感信息:

window.sessionStorage.setItem(varName)
我使用下面的方法在需要的时候得到它

sessionStorage.getItem(varName)
我的问题是,我希望这些存储在浏览器数据中的数据在Chrome打开时有效。每次用户关闭浏览器时都需要清除此主密码,每次重新打开时都需要询问此主密码。 我读到会话存储是临时的,它会被清除,但它对我的扩展不起作用。我还知道,当浏览器停止运行您的脚本时,没有什么可以添加的来检测它是否关闭。
你能帮我吗?有没有这样的方法可以在短时间内保存数据?

因为Manifest V3删除了持久性后台页面的概念。你可以用电脑来模仿。关于这一点,唯一需要注意的是,它将变量存储在extensions本地存储中,这对该用户来说仍然是正常的

模拟浏览器关闭的一种方法是创建一个打开的端口,然后当浏览器关闭或重新加载扩展时,它将为该端口调用
onDisconnect
,您可以清除
chrome.storage.local.clear()

启动浏览器时,只需连接:

chrome.runtime.connect(null, {})

当后台脚本返回睡眠状态时,这可能会自动卸载,不幸的是,获得通过的唯一方法是保持自己弹出的托管扩展窗口。但对于用户体验来说,这可能有些过分。

只需在持久化后台脚本中使用一个全局变量即可。@wOxxOm谢谢您的建议,但我从服务器检索了一些其他元数据,并在特定部分使用。请将其保存在全局变量中。
chrome.runtime.connect(null, {})