Skip to content

CJK x Windows x Chromium Browser character duplicating / removing onClick #1551

@amiatlas

Description

@amiatlas

Hey All 👋

Writing to surface a bug that has recently surfaced and we're finding on Confluence Editor as well as a sandbox editor. This could be related to #1484.

What is the issue?

The problem happens on IME composing (input CJK characters). Specifically on windows chromium browser. Edge and Chrome both can repro the problem, but firefox cannot. Mac and Linux is both ok.

While typing IME composing (input CJK characters), there is a duplication or deletion of the character. After deducing all the prosemirror step and transaction fired with the error stack, it maybe related to the function readDOMChange.

Steps to reproduce

  1. Be on windows chromium, start IME composing.
  2. Click anywhere on the line
  3. Observe
  4. Expected not to duplicate/delete

Actual behavior

  • Duplicates
  • Occasional deletes
    Although the deletion is hard to replicate on sandbox, it seems as though it's more apparent on a sandbox Confluence Editor. After the trace stack we found that it is on readDOMChange had a replace step that seemingly deletes the character.
Screen.Recording.2025-11-12.at.10.06.32.am.mov
Screen.Recording.2025-11-12.at.12.16.20.pm.mov

Environment

https://codesandbox.io/p/sandbox/a-very-basic-prosemirror-forked-wrf3qh?file=%2Findex.html

  • Chrome version: Version 142.0.7444.135 (Official Build) (arm64)
  • Operating System: Windows 11
  • Prosemirror dependency
    "prosemirror-commands": "1.7.1",
    "prosemirror-example-setup": "1.2.3",
    "prosemirror-keymap": "1.2.3",
    "prosemirror-schema-basic": "1.2.4",
    "prosemirror-tables": "1.1.1",
    "prosemirror-view": "1.41.3"

Any help would be appreciated :D Thank you !

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions