Skip to content

fix(app): initialize document helpers once - #31556

Open
minwookshin wants to merge 1 commit into
ionic-team:mainfrom
minwookshin:fix/app-global-initialization-30094
Open

minwookshin wants to merge 1 commit into
ionic-team:mainfrom
minwookshin:fix/app-global-initialization-30094

Conversation

@minwookshin

Copy link
Copy Markdown

Issue number: resolves #30094

What is the current behavior?

Each ion-app mount starts another set of document-level helpers. After three remounts, one tap adds four ripples and one native back-button event dispatches four ionBackButton events.

What is the new behavior?

Share the initialization promise across app elements so those helpers start once. Each app receives the shared focus utility, including apps mounted while initialization is still in flight. Existing configuration checks are preserved.

Does this introduce a breaking change?

  • Yes
  • No

Other information

Added a manual remount page and five functional cases covering ripples, back-button events, rapid replacement, simultaneous mounts and focus, and disabled back-button handling. All 15 browser cases passed across Chromium, Firefox, and WebKit; the ripple and back-button regressions both fail against the unchanged base.

The core build, 87 unit suites (803 tests), scoped ESLint, and formatting checks passed. Back-button coverage dispatches the native event in the browser; it was not tested on physical Android hardware. No screenshot baselines changed.

@minwookshin
minwookshin requested a review from a team as a code owner October 9, 2026 07:25
@minwookshin
minwookshin requested a review from ShaneK October 9, 2026 07:25
@vercel

vercel Bot commented Oct 9, 2026

Copy link
Copy Markdown

@minwookshin is attempting to deploy a commit to the Ionic Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added the package: core @ionic/core package label Oct 9, 2026

This branch has not been deployed

No deployments
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.

IonApp does not clean up event listeners on unmount, causing duplicate ripple effects on remount.

1 participant