Repository navigation
Messenger frame: load watchdog, back/forward-cache restore and a clean reset so the widget opens on iPhone - #215
Merged
Conversation
…n reset so the widget opens on iPhone On iOS Safari the launcher sometimes didn't open the widget until a reload. - Load watchdog (10 s per stage): no ping from the messenger → load it into the frame directly; still nothing → remove the frame so the next tap starts fresh, instead of a full-screen loader with no way out. - pageshow (persisted): a frame that was still loading is rebuilt and reopened; a connected one gets its open/closed classes and state re-sent. - A second open before the ping keeps the loader up, not a blank frame. - destroy() resets comReady and clears the watchdog, so a re-init (e.g. setLanguage) doesn't send queued messages to a frame not yet ready. From a G2 review (Vira C., Feb 2026). Not yet tried on a real iPhone. Co-Authored-By: Claude Opus 5.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.
What (
GleapFrameManager.js)pageshow(persisted): a still-loading frame is rebuilt and reopened; a connected one gets its classes fixed and state re-sent.destroy()resetscomReadyand clears the watchdog, so a re-init (e.g.setLanguage) doesn't send queued messages to a frame that isn't ready.Why
G2 review (Vira C., Feb 2026): sometimes Gleap doesn't open on iPhone without restarting. Root cause not certain from code; this hardens the three likeliest causes.
Checks
npx jest40 suites / 750 tests ✅;npm run buildcompiles (build/ and published/ left out). No CHANGELOG entry (comes with the version bump).🤖 Generated with Claude Code