Menu ▾ ▴

#401 perf(privacy): never nest blurs, which made hovering lag

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

Originally created by: kristofferR

With Hide Names on, hovering a message in a group chat took 2 to over 5 seconds to show the hover actions on Linux, and kept Messenger's web process at a full core for 8–14 seconds.

The cause was blurs nested inside blurs. Each group sender label was marked together with every element inside it, and the names-only profile-link rule blurred every picture-free element in a link, so 5–6 filter: blur() layers sat inside each other. WebKit renders each filter into its own layer, and with the default renderer (DMA-BUF off) every repaint of the area multiplies that cost.

  • Mark only the label, and blur only the outermost picture-free element of a mixed profile link.
  • Turn off every filter inside an element that is already blurred, including profile links the other rules would blur, with enough specificity to override them.

Measured with real pointer moves over chat rows and message bubbles in a group chat (DMA-BUF off, the default before [#400]):

Hide Names Bubble hover latency CPU while hovering Busy afterwards
off 0.18–0.40 s 303 ticks ~2 s
on, before 2.3 s to over 5 s 2065 ticks 14 s at a full core
on, after 0.18–0.47 s 422 ticks ~2 s

With names and avatars hidden, there are no nested filters in names-only, avatars-only or both modes. Checked in the Original Boys Club group and the Adine chat.

Stacked on [#389].

Ref [#364]

Related

Tickets: #364
Tickets: #389
Tickets: #400

Discussion

  • Anonymous

    Anonymous - 2026-11-07

    Originally posted by: kristofferR

    ⏸️ crq will not request further automated reviews for this pull request.

    Reason: CodeRabbit reviews these changes once, in combined PR [#394]

    Resume with crq unhold kristofferr/carrier 401.

     

    Related

    Tickets: #394

  • Anonymous

    Anonymous - 2026-11-07

    Originally posted by: kristofferR

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

    @codex review

     
  • Anonymous

    Anonymous - 2026-11-07

    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-07T20:09:26.845113Z">2026-11-07T20:09:26.845113Z</relative-time> | `39add3b` | 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-07

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

    Codex Review: Didn't find any major issues. Breezy!

    Reviewed commit: 39add3b234

    ℹ️ 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-07

    Ticket changed by: kristofferR

    • status: open --> closed
     
  • Anonymous

    Anonymous - 2026-11-07

    Originally posted by: kristofferR

    ✅ The administrative hold has been retired because this pull request merged. crq will not request further automated reviews.

     

Log in to post a comment.