Google chrome extension 如何在Chrome开发工具中查看/编辑localStorage和IndexedDB数据

Google chrome extension 如何在Chrome开发工具中查看/编辑localStorage和IndexedDB数据,google-chrome-extension,google-chrome-devtools,service-worker,indexeddb,Google Chrome Extension,Google Chrome Devtools,Service Worker,Indexeddb,我正在开发一个大量使用IndexedDB的Chrome扩展。我目前正在将工作从使用清单版本2(MV2)迁移到清单版本3(MV3) 在MV2中,后台页面通过窗口访问IndexedDB。IndexedDB,运行正常,我可以通过打开后台页面的Chrome开发工具查看IndexedDB数据,并导航到应用程序>存储>IndexedDB 在MV3中,后台页面需要迁移到相应的服务工作者。服务人员使用self.indexedDB(因为窗口不可用),并且它似乎工作正常(即,向数据库写入和读取数据似乎工作正常)。但

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

在MV2中,后台页面通过
窗口访问IndexedDB。IndexedDB
,运行正常,我可以通过打开后台页面的Chrome开发工具查看IndexedDB数据,并导航到应用程序>存储>IndexedDB

在MV3中,后台页面需要迁移到相应的服务工作者。服务人员使用
self.indexedDB
(因为
窗口不可用),并且它似乎工作正常(即,向数据库写入和读取数据似乎工作正常)。但是,当我打开服务人员的DevTools时(从chrome://extensions/ 然后单击所讨论的扩展的“Inspect views:Service worker”),即使在控件单击IndexedDB并选择“Refresh IndexedDB”之后,在IndexedDB下也看不到任何数据

本地存储似乎也存在同样的问题。DevTools for localStorage中没有显示任何内容,尽管我可以在服务人员中成功地执行以下操作:

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"]);
  });  
}
它将
某些值打印到控制台

所以基本上,我想我要问的是:为什么DevTools不为我的MV3 Chrome扩展显示服务工作者的IndexedDB或localStorage数据


(Chrome版本是90.0.4430.93(官方版本)(x86_64)。这是在macOS Big Sur上,如果这有什么区别的话…

我提交了一个功能请求,要求在中实现它,以便您可以单击星号来提高报告的重要性,并通知进度

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

  • 弹出/选项-只需在页面内单击鼠标右键并选择“检查”
  • 通过chrome扩展名://URL打开扩展名文件的任何选项卡,例如,您可以手动复制粘贴URL,如
    chrome扩展名://**id**/manifest.json
    ,其中
    **id**
    是您可以在中看到的扩展名idchrome://extensions 在右上角启用“开发者模式”开关后的页面
请注意,与此无关,这是一件完全不同的事情。

请参阅。

我在中提交了一个功能请求以实现它,这样您就可以单击星号来提高报告的重要性,并收到进度通知

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

  • 弹出/选项-只需在页面内单击鼠标右键并选择“检查”
  • 通过chrome扩展名://URL打开扩展名文件的任何选项卡,例如,您可以手动复制粘贴URL,如
    chrome扩展名://**id**/manifest.json
    ,其中
    **id**
    是您可以在中看到的扩展名idchrome://extensions 在右上角启用“开发者模式”开关后的页面
请注意,与此无关,这是一件完全不同的事情。