Skip to content

Conversation

nozomemein
Copy link

@nozomemein nozomemein commented Aug 22, 2025

Description

Fixes an issue where deep links with empty paths (e.g., https://example.com) lose their scheme and authority information during Android Cold Start.

This PR fixes flutter/flutter#174249

Detailed reproduction steps, environment information, and code sample are provided in the linked issue.

Problem

On Android Cold Start, if the initial deep link has no path (https://example.com),
_effectiveInitialLocation incorrectly creates a new Uri with only /? instead of preserving scheme and authority.
This results in the router receiving a relative path instead of the full deep link URL.

Solution

Use Uri.replace(path: '/') instead of creating a new Uri, so that the original scheme and authority are preserved.

Pre-Review Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

Footnotes

  1. Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. 2 3

Copy link

google-cla bot commented Aug 22, 2025

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Copy link
Contributor

@chunhtai chunhtai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@@ -575,10 +575,7 @@ class GoRouter implements RouterConfig<RouteMatchList> {
if (platformDefaultUri.hasEmptyPath) {
// TODO(chunhtai): Clean up this once `RouteInformation.uri` is available
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this todo is obsolete now, can you remove this todo?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

deleted in the commit below!

@chunhtai chunhtai requested a review from hannah-hyj August 25, 2025 16:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Android Cold Start deep link with empty path loses scheme and authority
2 participants