[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)

Status Open
Maintainer reply None cached
Activity 0 comments · opened Aug 27, 2026

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_

View original on GitHub ↗