微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Chrome DevTools 中查看/编辑 localStorage 和 IndexedDB 数据

如何解决如何在 Chrome DevTools 中查看/编辑 localStorage 和 IndexedDB 数据

我正在开发一个大量使用 IndexedDB 的 Chrome 扩展程序。我目前正在将工作从使用清单版本 2 (MV2) 迁移到清单版本 3 (MV3)。

在 MV2 中,后台页面通过 window.indexedDB 访问 IndexedDB,这工作正常,我可以通过打开后台页面的 Chrome DevTools 查看 IndexedDB 数据,然后导航到应用程序 > 存储 > IndexedDB。

在MV3中,后台页面需要迁移到对应的service worker。服务工作者使用 self.indexedDB(因为 window 不可用),并且它似乎工作正常(即写入和读取数据库似乎工作正常)。但是,当我为 Service Worker 打开 DevTools(来自 chrome://extensions/ 并单击相关扩展的“检查视图:Service worker”)时,即使在控制之后,IndexedDB 下也看不到任何数据 -点击 IndexedDB 并选择“刷新 IndexedDB”。

localStorage 似乎也存在同样的问题。 DevTools for localStorage 中没有显示任何内容,即使我可以在 service worker 中成功执行以下操作:

chrome.storage.local.set({"a_key": "some_value"},function() {
  console.log('setting the key-value pair');
});

setTimeout(checkMyValue,1000);

function checkMyValue() 
{
  chrome.storage.local.get(["a_key"],function(result) {
    console.log('The value is ' + result["a_key"]);
  });  
}

some_value 打印到控制台。

所以基本上,我想我想问的是:为什么 DevTools 不显示 Service Worker 的 IndexedDB 或 localStorage 数据,对于我的 MV3 Chrome 扩展?

(Chrome 版本为 90.0.4430.93(官方版本)(x86_64)。这是在 macOS Big Sur 上,如果这有什么不同...)

解决方法

我提交了一项功能请求以在 https://crbug.com/1204851 中实施它,以便您可以单击星标以提高报告的重要性并收到进度通知。

当前的解决方法是在扩展程序的任何 UI 页面上打开 devtools:

  • 弹出窗口/选项 - 只需在页面内右键单击并选择“检查”
  • 任何带有扩展程序文件的选项卡都通过其 chrome-extension:// URL 打开,例如您可以手动复制粘贴像 chrome-extension://**id**/manifest.json 这样的 URL,其中 **id** 是您的扩展程序的 ID,您可以在启用右上角的“开发者模式”开关后在 chrome://extensions 页面中看到它。

请注意,localStoragechrome.storage 无关,这是完全不同的事情。
how to inspect extension's chrome.storage in devtools

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。