Skip to content

🐛 修复 Firefox 中 GM_cookie 无法获取 cookie 的问题#1319

Merged
CodFrm merged 14 commits intorelease/mv2from
fix/firefox-gm-cookie
Mar 28, 2026
Merged

🐛 修复 Firefox 中 GM_cookie 无法获取 cookie 的问题#1319
CodFrm merged 14 commits intorelease/mv2from
fix/firefox-gm-cookie

Conversation

@CodFrm
Copy link
Copy Markdown
Member

@CodFrm CodFrm commented Mar 28, 2026

Checklist / 检查清单

  • Fixes mentioned issues / 修复已提及的问题
  • Code reviewed by human / 代码通过人工检查
  • Changes tested / 已完成测试

Description / 描述

fix #1187

Firefox 中 GM_cookie.list 无法获取 cookie,原因有两个:

  1. undefined 属性传递差异chrome.cookies.getAll() 调用时传入了值为 undefined 的属性(如 domain: undefined),Chrome 会忽略这些属性,但 Firefox 可能将其视为过滤条件,导致无匹配结果
  2. 缺少 firstPartyDomain:Firefox 的 First-Party Isolation (FPI) 开启时,需要 firstPartyDomain: null 才能返回所有 cookie

修复方式:新增 cookieQuery() 工具函数,过滤 undefined 属性并在 Firefox 下自动添加 firstPartyDomain: null,应用于所有 chrome.cookies.* 调用(list/set/delete)。

Screenshots / 截图

N/A

CodFrm and others added 5 commits March 28, 2026 21:22
在模块顶层保存原生 CustomEvent、MouseEvent、dispatchEvent、addEventListener 引用,
防止页面脚本通过 hook 全局构造函数窃取 IPC 通信密钥,伪造 GM_* API 调用。
@cyfung1031
Copy link
Copy Markdown
Collaborator

这么突然把 Firefox 版搞起来?

@CodFrm
Copy link
Copy Markdown
Member Author

CodFrm commented Mar 28, 2026

这么突然把 Firefox 版搞起来?

主要是有人反馈了安全漏洞,然后顺便修一下

@CodFrm
Copy link
Copy Markdown
Member Author

CodFrm commented Mar 28, 2026

好像有点问题,firefox处理不了cookie,我不记得是什么原因去了

@cyfung1031
Copy link
Copy Markdown
Collaborator

cyfung1031 commented Mar 28, 2026

好像有点问题,firefox处理不了cookie,我不记得是什么原因去了

? 不是加了 firstPartyDomain 就行了吗

MV3那边有重构过 GM_cookie 这个东西 ( methodInject 那个, 能够一层一层注入 )
跟 GM_XXX 不返回 Promise, GM.XXXX 返回 Promise
GM_cookie 那几个写法也有对齐过TM

所以可以正确实现 GM_cookie.list 因为会先注入 GM_cookie 再把 GM_cookie.list 注入

@CodFrm
Copy link
Copy Markdown
Member Author

CodFrm commented Mar 28, 2026

好像有点问题,firefox处理不了cookie,我不记得是什么原因去了

? 不是加了 firstPartyDomain 就行了吗

MV3那边有重构过 GM_cookie 这个东西 ( methodInject 那个, 能够一层一层注入 ) 跟 GM_XXX 不返回 Promise, GM.XXXX 返回 Promise GM_cookie 那几个写法也有对齐过TM

所以可以正确实现 GM_cookie.list 因为会先注入 GM_cookie 再把 GM_cookie.list 注入

哦哦,搞错了,是我测试脚本的问题

@CodFrm CodFrm merged commit 69d98e2 into release/mv2 Mar 28, 2026
2 checks passed
@CodFrm CodFrm deleted the fix/firefox-gm-cookie branch March 28, 2026 19:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants