Memory leaks in contenteditable with large documents and frequent DOM operations
OS: Any Any · Device: Desktop Any · Browser: Chrome 115.0+ · Keyboard: US QWERTY
Open case →Scenario
Large documents, retained DOM references, MutationObserver chains, and undo stacks can leak memory if not detached—especially in single-page apps that keep the editor mounted for hours.
Large documents, retained DOM references, MutationObserver chains, and undo stacks can leak memory if not detached—especially in single-page apps that keep the editor mounted for hours.
Visual view of how this scenario connects to its concrete cases and environments. Nodes can be dragged and clicked.
Each row is a concrete case for this scenario, with a dedicated document and playground.
| Case | OS | Device | Browser | Keyboard | Status |
|---|---|---|---|---|---|
| ce-0225-memory-leak-large-docs | Any Any | Desktop Any | Chrome 115.0+ | US QWERTY | draft |
Open a case to see the detailed description and its dedicated playground.
OS: Any Any · Device: Desktop Any · Browser: Chrome 115.0+ · Keyboard: US QWERTY
Open case →Other scenarios that share similar tags or category.
A known Chromium regression around spellcheck and large contenteditable regions caused severe typing lag—documented for planning workarounds such as spellcheck=false or chunking.
When a contenteditable element has CSS filters applied (blur, brightness, etc.), editing performance may be degraded. Typing may lag, and selection may be slow to update.
When a contenteditable element has CSS will-change property set, performance may be affected. In some cases, it may improve performance by hinting the browser about upcoming changes. In other cases, it may degrade performance by creating unnecessary layers.
When a MutationObserver is attached to a contenteditable element or its parent, the observer callbacks may interfere with editing performance. Frequent DOM mutations during typing can trigger many observer callbacks, causing lag or jank.
Managing exponential slowdowns in large documents and browser-specific engine thrashing.
Have questions, suggestions, or want to share your experience? Join the discussion below.