Skip to content

Conversation

@ShaneK
Copy link
Member

@ShaneK ShaneK commented Jan 5, 2026

Issue number: resolves internal


What is the current behavior?

When ion-tab-bar is rapidly mounted and unmounted, a race condition in connectedCallback can cause the keyboard controller to be created after the component has been disconnected. This results in orphaned event listeners (keyboardWillShow, keyboardWillHide) on the window object that are never cleaned up, causing a memory leak.

What is the new behavior?

The component now tracks its connection state with an isConnected flag. After the async keyboard controller initialization completes, the component checks if it's still connected before assigning the controller. If the component was disconnected during initialization, the controller is immediately destroyed, preventing memory leaks.

Does this introduce a breaking change?

  • Yes
  • No

Other information

Current dev build:

8.7.17-dev.11767636336.113b441d

@ShaneK ShaneK requested a review from a team as a code owner January 5, 2026 17:58
@ShaneK ShaneK requested a review from thetaPC January 5, 2026 17:58
@vercel
Copy link

vercel bot commented Jan 5, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
ionic-framework Ready Ready Preview, Comment Jan 5, 2026 6:06pm

@github-actions github-actions bot added the package: core @ionic/core package label Jan 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

package: core @ionic/core package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants