Fix escape hatch showing URL instead of page title on cold start#4456
Open
SabrinaTardio wants to merge 3 commits intomainfrom
Open
Fix escape hatch showing URL instead of page title on cold start#4456SabrinaTardio wants to merge 3 commits intomainfrom
SabrinaTardio wants to merge 3 commits intomainfrom
Conversation
Preserve the persisted page title in updateTabModel() when WKWebView title hasn't loaded yet. During tab restoration, setting self.url triggers updateTabModel() before WKWebView.title is available via KVO, which overwrites the NSCoding-persisted Link with a title-less one.
Contributor
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit a124e4e. Configure here.
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.

Task/Issue URL: https://app.asana.com/1/137249556945/project/1204186595873227/task/1214042008558081?focus=true
Tech Design URL: N/A
CC: N/A
Description
updateTabModel()when the WKWebView title hasn't loaded yet, fixing the escape hatch card showing the URL/domain twice instead of the page title after cold startself.urltriggersupdateTabModel()beforeWKWebView.titleis available via KVO, which overwrites the NSCoding-persistedLink(which has the correct title) with a newLink(title: nil, url:), causingdisplayTitleto fall back to the hostTesting Steps
Impact and Risks
Impact Level: Low
What could go wrong?
updateTabModel()is called again whentitlechanges via itsdidSet, which will overwrite with the correct value.Quality Considerations
TabViewController.linkcomputed property already performs this same merge logic viaLink.merge(with:), so this alignsupdateTabModel()with existing behaviorNotes to Reviewer
TabViewController.link(computed property) already does viaactiveLink.merge(with: storedLink)-- it preserves the existing title when the new one is nil.Made with Cursor
Note
Low Risk
Low risk: a small, localized change to how
tabModel.linkis updated, only affecting tab title persistence when the web view title is temporarily missing during restoration.Overview
Fixes cold-start tab restoration where
updateTabModel()could overwrite a persistedLinktitle withnilbeforeWKWebView.titleis available.updateTabModel()now keeps the previously stored title for the same URL when the currenttitleis empty, preventing UI surfaces (e.g., the escape hatch card) from showing the URL/domain in place of the page title.Reviewed by Cursor Bugbot for commit 19de876. Bugbot is set up for automated code reviews on this repo. Configure here.