为什么cookie无法返回?

问题描述 投票:0回答:1

我有以下 Firefox 扩展。我想从浏览器获取cookie。但是当我单击扩展中的“全部”时,

console.log(await (browser.cookies.getAll({}))
仅打印零长度的数组。我尝试与以下包进行比较,但我看不出导致问题的差异是什么。我怎样才能找出导致问题的原因?

https://github.com/hrdl-github/cookies-txt

==> manifest.json <==
{
  "manifest_version": 2,
  "name": "DefaultPopup",
  "version": "1.0",
  "permissions": [
    "downloads"
    , "cookies"
  ],
  "browser_action": {
    "default_popup": "popup/choose_option.html"
  },
  "background": {
    "scripts": ["background.js"]
  },
  "content_scripts": [
    {
      "matches": ["*://*/*"],
      "js": ["runtime.js"]
    }
  ]
}

==> background.js <==
browser.runtime.onInstalled.addListener(function(details) {
  console.log('onInstalled');
  console.log(details);
});

browser.runtime.onMessage.addListener(async function(details) {
  console.log('onMessage');
  console.log(details);
  console.log(
    await (browser.cookies.getAll({}))
  );
});

==> runtime.js <==
console.log(browser)
/*
console.log(browser.downloads)
console.log(browser.runtime)
console.log(browser.runtime.id)
*/

==> popup/choose_option.html <==
<!DOCTYPE html>
<html>
  <body>
    <button class="all">All </button>
    <script src="choose_option.js"></script>
  </body>
</html>

==> popup/choose_option.js <==
document.querySelector(".all").addEventListener("click", () => {
  console.log('click')
  browser.runtime.sendMessage("my message");
  window.close();
});
firefox-addon
1个回答
0
投票

我不确定您是否仍然遇到问题,但扩展程序需要您想要获取其 cookie 的选项卡或 URL 的权限。

tabs
允许从打开的选项卡获取 cookie(在默认存储中)。
*://*/*
<all_urls>
允许获取所有 cookie(在默认存储中),即使对于不在打开的选项卡中的源也是如此。

...
  "permissions": [
    "downloads",
    "cookies",
    "*://*/*"
  ],
...

既然我上面提到过,

storeId
参数的可选属性
details

  • firefox-default
    (或无)用于普通窗口中的cookie(没有身份)
  • firefox-private
    用于私人窗口中的 cookie
  • firefox-container-N
    ,其中
    N
    是一个数字,用于上下文身份

您一次只能购买一家商店。

© www.soinside.com 2019 - 2024. All rights reserved.