fix: update page URL and location on pushState/replaceState#2084
Closed
tmchow wants to merge 1 commit intolightpanda-io:mainfrom
Closed
fix: update page URL and location on pushState/replaceState#2084tmchow wants to merge 1 commit intolightpanda-io:mainfrom
tmchow wants to merge 1 commit intolightpanda-io:mainfrom
Conversation
history.pushState() and replaceState() updated the navigation entry but did not update page.url or reinitialize window.location. This caused location.pathname to return the old value after pushState, breaking SPA routing detection in automation scripts. Both methods now set page.url and re-init the Location object after updating the navigation history. Fixes lightpanda-io#2081 Ref lightpanda-io#2043
Contributor
|
Thank you for the PR! Adapted to #2131 with some modifications. |
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
history.pushState()andreplaceState()added entries to the navigation history but didn't updatepage.urlor reinitializewindow._location. This meantlocation.pathnamestill returned the old path after pushState, breaking SPA routing detection in automation scripts.The fix adds two lines to both
pushStateandreplaceStateinHistory.zig:page.url = urlto update the page's active URLpage.window._location = try Location.init(url, page)to reinitialize the Location objectThis follows the same pattern used during actual navigation (Page.zig lines 477, 560, 895).
replaceStategets the same fix since it had the same gap.Fixes #2081
Ref #2043
This contribution was developed with AI assistance (Claude Code).