繁体   English   中英

检查Firefox WebExtensions storage.local

[英]Inspect Firefox WebExtensions storage.local

WebExtensions可以在其storage.local中本地存储数据。 显然它是一个键值存储,值可以是原始类型(如数字,布尔值和字符串)或数组类型。

我想检查一下特定的WebExtension(不是由我制作)在这个区域中存储的内容。

如何才能做到这一点?

可以自动化的方法的奖励,允许我从bash脚本中提取数据。 但GUI解决方案也是非常可接受的。

在Firefox中

  • 输入about:debugging进入导航栏并按Enter键
  • 选中在该页面的最顶部Enable add-on debugging
  • 在下面,您可以看到所有已安装扩展的列表。 找到要检查的那个,然后单击其debug链接。
  • 将显示“ Incoming Connection提示。 单击“ OK以允许它。
  • 在新弹出窗口中切换到Console选项卡
  • 在这里,您可以在扩展的上下文中执行代码
  • 粘贴以下代码以获取storage.local内容:

     chrome.storage.local.get(null, function(items) { console.log(items); }); 

编辑:

如果要下载对象,可以对其进行字符串化,从中创建blob,然后从blob创建数据URL并在新选项卡中打开或下载。 像这样:

chrome.storage.local.get(null, function(items) {
    var blob = new Blob([JSON.stringify(items, null,'  ')], {type: "text/plain"});
    var url = URL.createObjectURL(blob);
    chrome.tabs.create({ url: url }); // requires that the extension has the "tabs" permission
    //chrome.downloads.download({ url: url }); // requires that the extension has the "downloads" permission
});

目标扩展需要具有“标签”权限才能打开选项卡或“下载”权限以开始下载。 您还可以查找其他访问数据的方法。 例如通过“browserAction”/“pageAction”-popup或通过向提交帖子正文中的数据的外部服务器发送ajax调用...

要从Bash访问数据,您可以尝试从扩展的storage.js文件中读取它。 您应该在主目录(Linux)中找到它。 对我来说,它位于: ~/.mozilla/firefox/{profile}/browser-extension-data/{extension}/storage.js 在Windows上它将在appdata中的某个地方。 在OS XI上不知道。

storage.js文件是一个json文件。

我不会依赖于将来的工作。 Firefox可能会在某些时候切换到以加密格式存储数据。 也不要依赖于最新的数据。 Firefox可能无法立即将存储与磁盘上的文件同步。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM