[BUG] Claude in Chrome: cookie consent banner re-appears on every sidepanel open — anthropic-consent-preferences cookie not readable in cross-site iframe (missing Partitioned attribute)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Summary
The cookie consent banner (data-testid="consent-banner", linking to anthropic.com/legal/cookies) is shown inside the Claude in Chrome sidepanel every single time the panel is opened, even immediately after clicking Accept/Reject, and even in a brand-new window where the relevant cookie already exists with a valid, non-expired value.
Environment
Claude in Chrome extension (chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/sidepanel.html)
Sidepanel embeds https://claude.ai content in an iframe under the extension's top-level origin
Desktop Chrome
What Should Happen?
Expected behavior
Once a user has responded to the consent banner, the choice should persist and the banner should not reappear on subsequent sidepanel opens.
Actual behavior
The banner reappears on every open. The consent cookie is genuinely written to and retained in the browser's cookie store (visible via DevTools' Application panel), but the sidepanel's own script apparently cannot read it back via document.cookie.
Root cause (best-effort analysis, not confirmed internally)
The sidepanel is a chrome-extension:// top-level document embedding https://claude.ai in an iframe — a cross-site context. Chrome restricts JS-level access (document.cookie) to non-partitioned cookies in such cross-site/third-party iframe contexts. Other cookies on the same domain (cf_clearance, lastActiveOrg) already carry the Partitioned attribute (visible in DevTools' Partitioned/Cross-site columns) and work correctly in this context. anthropic-consent-preferences does not have Partitioned set, so it is invisible to the embedded frame's own script, causing the app to conclude "no consent on record" on every load.
Suggested fix
Set anthropic-consent-preferences with Partitioned; SameSite=None; Secure (CHIPS), matching the treatment already given to cf_clearance and lastActiveOrg.
Error Messages/Logs
Steps to Reproduce
Steps to reproduce
Open the Claude in Chrome sidepanel.
Cookie consent banner appears (bottom-right of the panel's own frame, which visually renders at the bottom-left of the browser window since the panel is docked left).
Open DevTools on the sidepanel (sidepanel.html?tabId=...) → Application → Cookies → https://claude.ai.
Observe cookie anthropic-consent-preferences (domain .claude.ai, e.g. value URL-decodes to {"analytics":true,"marketing":...}), with a long expiry (~2027), SameSite=Lax, and no Partitioned flag.
Close the panel, reopen it (or open a brand-new browser window and open the panel there).
The banner reappears, despite the cookie from step 4 still being present and unexpired in the cookie store (confirmed via DevTools in the new window/session).
Claude Model
None
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
N/A — this is about the Claude in Chrome browser extension, not the CLI - Claude in Chrome Version 1.0.85
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Other
Additional Information
_No response_