Menu ▾ ▴

#411 fix(login): keep the cookie dialog in view, and show a loader while the page renders

closed
nobody
None
2026-11-08
2026-11-08
Anonymous
No

Originally created by: kristofferR

On a fresh, logged-out profile Carrier's login page had several visual problems:

  • The cookie dialog's "Learn more" pages opened below the login form instead of over it. Carrier's login layout forced Facebook's page wrapper to position: static, which broke the pin Facebook puts on it while a dialog is open.
  • The optional-cookie auto-decline clicked one of those "Learn more" cards (opening "What are Meta Products?") instead of "Decline optional cookies". Any row of two buttons qualified.
  • The dialog's own links (Meta Products, Cookies Policy) were hidden by the footer-link cleanup.
  • Facebook's "f" logo above the form was hidden along with the rest of Facebook's chrome.
  • WebKitGTK often holds the fresh login page for about 20 s with no text or images (#410), so it looked broken.

Fixes:

  • Keep the wrapper's positioning while Facebook marks it aria-hidden for an open dialog.
  • Decline only in a button row with a saturated blue primary (the "Allow all cookies" fill on the button, an ancestor, or an inner layer covering it).
  • Skip links inside dialogs when hiding footer links.
  • Copy the logo into a CSS variable and show it above the login column (in wide windows its banner shares a column with the marketing collage, so the banner itself stays hidden).
  • Show a loader until the form's text has rendered (fonts loaded, then a painted frame), capped at 15 s: Carrier's paper-plane mark, a muted "Loading Messenger…" label and a small gliding bar. Only transform and opacity animate, the loop stops with the loader, it never takes clicks, and it stays still with reduced motion.
  • Add a dev-only __carrier_mcp_login_layout_probe__ to the MCP bridge (dialog boxes, button fills and hit tests, ancestor positioning).

Verified live on Linux with a wiped profile, in light and dark: the cookie dialog is declined automatically, a "Learn more" page opens centered, the dialog links show, the logo is back, and the loader covers the stall (the bar keeps moving through it) and fades out when the form appears.

Ref [#410]

Related

Tickets: #410

Discussion

  • Anonymous

    Anonymous - 2026-11-08

    Originally posted by: kristofferR

    [!NOTE]
    🤖 Claude Opus 5.5 responding on behalf of Kristoffer

    @codex review

     
  • Anonymous

    Anonymous - 2026-11-08

    Originally posted by: chatgpt-codex-connector[bot]

    Codex Review Summary: ✅ Completed This comment shows the latest Codex review activity on this pull request. | Review | Status | Commit | Review trigger | | --- | --- | --- | --- | | 📝 **Code Review** | ✅ **Completed** <relative-time datetime="2026-11-08T01:18:46.056400Z">2026-11-08T01:18:46.056400Z</relative-time> | `27c0374` | Manual request |
    ℹ️ About Codex in GitHub
    [Your team has set up Codex to review pull requests in this repo](https://chatgpt.com/codex/cloud/settings/general). Reviews are triggered when you - Open a pull request for review - Mark a draft as ready - Comment "@codex review" or "@codex security review". Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.
     
  • Anonymous

    Anonymous - 2026-11-08

    Originally posted by: chatgpt-codex-connector[bot]

    Codex Review: Didn't find any major issues. More of your lovely PRs please.

    Reviewed commit: 27c0374e28

    ℹ️ About Codex in GitHub
    [Your team has set up Codex to review pull requests in this repo](https://chatgpt.com/codex/cloud/settings/general). Reviews are triggered when you - Open a pull request for review - Mark a draft as ready - Comment "@codex review". If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
     
  • Anonymous

    Anonymous - 2026-11-08

    Ticket changed by: kristofferR

    • status: open --> closed
     

Log in to post a comment.