Skip to content

Let the multi-account note be silenced for good - #357

Open
dmnyc wants to merge 1 commit into
mainfrom
feat/shared-headsup-optout
Open

dmnyc wants to merge 1 commit into
mainfrom
feat/shared-headsup-optout

Conversation

@dmnyc

@dmnyc dmnyc commented Sep 22, 2026

Copy link
Copy Markdown
Owner

Fixes #340. Independent of the composer stack (#341#356); based on main.

What

  • "Don't show this again" joins "Got it" on the shared-identity "Heads up!" card — a quiet, un-filled twin, because the primary read of the row stays the acknowledgment. It writes sharedHeadsUpOptOut to chrome.storage.local (per-browser UI state, deliberately not the encrypted settings store — the prompt windows read it without unlocking).
  • Opted out, neither the explainer nor the "Multiple accounts used" caption renders, in the prompt window or the panel sheet. The confirm itself, its account picker, and the "Sign as a different account" relabel are untouched — the opt-out answers the explanation, never the question it explains (the same non-negotiable Shared-identity "Heads up!": let users silence it for good (local storage opt-out) #340 recorded).
  • The way back: a "Show the note again" restorer in Settings → Apps & browsing clears both flags and refreshes the panel's memo, so the one-time explainer returns as if never seen.
  • The race, fixed on the way past: both flags load together and renderSharedNote awaits them — the old async single-flag read could repaint a dismissed explainer when a confirm rendered before the read landed.

8 new tests in test/shared-headsup-optout.test.js cover both surfaces symmetrically. Note for review: this composes with #349 (per-host opt-out of the confirm itself) — #349's opt-out takes precedence where set; this one only silences the note.

…efore rendering

Some users have seen the "Heads up!" explainer, understand the choice it
explains, and want the note gone altogether: "Got it" only ever
collapsed it to a "Multiple accounts used" caption that never ended, so
every shared-site confirm carried a line they had long stopped reading.

The card carries a second, quiet answer now — "Don't show this again" —
which writes sharedHeadsUpOptOut to the same chrome.storage.local both
surfaces read (per-browser UI state, not account data, so the prompt
windows can read it without unlocking). Opted out, neither the explainer
nor the caption renders; the confirm itself and its account picker are
untouched, because the opt-out answers the explanation, never the
question it explains. The way back is a restorer in Settings → Apps &
browsing that clears both flags, so the one-time explainer returns as if
never seen.

On the way past, the race: both flags load together and the render
awaits them, where the async single-flag read used to repaint a
dismissed explainer because a confirm rendered before the read landed.

Fixes #340.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Shared-identity "Heads up!": let users silence it for good (local storage opt-out)

1 participant