检查 Firefox WebExtensions storage.local

Nic*_*oul 3 javascript bash local-storage firefox-addon-webextensions

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

我想检查一个特定的 WebExtension(不是我制作的)在这个区域存储了什么。

如何才能做到这一点?

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

For*_*vin 5

在火狐浏览器中

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

    chrome.storage.local.get(null, function(items) {
        console.log(items);
    });
    
    Run Code Online (Sandbox Code Playgroud)

编辑:

如果要下载对象,可以对其进行字符串化,从中创建一个 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
});
Run Code Online (Sandbox Code Playgroud)

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