fix: add null checks to prevent crash when a chart is destroyed#12178
Open
keithbrink wants to merge 2 commits intochartjs:masterfrom
Open
fix: add null checks to prevent crash when a chart is destroyed#12178keithbrink wants to merge 2 commits intochartjs:masterfrom
keithbrink wants to merge 2 commits intochartjs:masterfrom
Conversation
…ent ownerDocument crash Adds null checks before calling getComputedStyle(canvas) to prevent crash when canvas element is null and code tries to access canvas.ownerDocument. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When a chart is destroyed while an animation frame is in-flight, the animation callback can still execute and attempt operations on null/destroyed canvas elements, causing multiple crash scenarios:
Both issues share the same root cause: Animator._update() executes after chart.destroy(), attempting to render on destroyed canvas resources.
Crash paths:
This manifests in Vue/React SPAs when users navigate away from pages containing animated charts. The component unmount destroys the chart, but previously-scheduled animation frames may still fire and attempt to access destroyed resources.
Similar to the issue fixed in #11764 for clearCanvas.