chrome.storage 区域。
storage 与一个正在运行的开发会话通信,并把 storage 调用放到扩展内部执行,所以你看到的正是你的代码看到的内容。不需要 DevTools,也不需要临时的 console.log。
会话必须以解锁控制通道的方式运行:用 extension dev --allow-control 启动它。被拒绝时,错误信息会点名缺少的那个 flag。
什么时候使用 storage
- 你想查看扩展持久化了什么,又不想为此专门搭一个调试界面。
- 测试或 agent 需要在跑通某个流程之前先给 storage 播下初始状态。
- 你想在一个实时会话中翻转某个存储的功能开关,并观察效果。
用法
local 区域,再读取单个键,然后写入一个值:
参数与 flag
值是怎么解析的
--value 会按 JSON 解析,因此 '{"theme": "dark"}'、'42' 和 'true' 都是带类型送达的。不是合法 JSON 的输入会退回为原始字符串,所以 --value hello 会存下字符串 "hello",不需要额外加引号。
set 同时需要 --key 和 --value。少了任何一个,都会在建立任何连接之前以 E_ARGS 失败。除 get 与 set 以外的动作也以同样的方式失败。
失败模式
- 该浏览器没有会话:
E_SESSION_NOT_FOUND,并给出应当运行的完整extension dev --allow-control命令。 - 会话在运行时没有带
--allow-control:连接被拒绝,错误信息会点名这个 flag。 - storage 调用在扩展内部抛出了异常(例如向只读的
managed区域写入):E_STORAGE。 - 调用超出了
--timeout:E_TIMEOUT。
0,任何失败都是 1。机器消费方应当读取 --output json 输出的信封(参见 结果信封)。

