chrome.storage 區域。
storage 會與執行中的 dev 工作階段溝通,並把 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 輸出的信封(參見 結果信封)。

