Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[url_lancher] Don't use canLaunchUrl in Link #4400

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

stuartmorgan-g
Copy link
Contributor

The pattern of calling canLaunchUrl when there's no fallback is an anti-pattern, and the README explicitly recommends against it; on some platforms, canLaunchUrl is unreliable in some cases, and/or requires extra permissions that launchUrl does not.

This reworks the launch call to just try, and handle failure, instead of trying to pre-check.

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the relevant style guides and ran the auto-formatter. (Unlike the flutter/flutter repo, the flutter/packages repo does use dart format.)
  • I signed the CLA.
  • The title of the PR starts with the name of the package surrounded by square brackets, e.g. [shared_preferences]
  • I listed at least one issue that this PR fixes in the description above.
  • I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.
  • I updated CHANGELOG.md to add a description of the change, following repository CHANGELOG style.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is test-exempt.
  • All existing and new tests are passing.

The pattern of calling `canLaunchUrl` when there's no fallback is an
anti-pattern, and the README explicitly recommends against it; on some
platforms, `canLaunchUrl` is unreliable in some cases, and/or requires
extra permissions that `launchUrl` does not.

This reworks the launch call to just try, and handle failure, instead of
trying to pre-check.
Copy link
Member

@ditman ditman left a comment

Choose a reason for hiding this comment

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

LGTM!

@ditman ditman added the autosubmit Merge PR when tree becomes green via auto submit App label Jul 8, 2023
@auto-submit auto-submit bot merged commit 3eaad3d into flutter:main Jul 8, 2023
@stuartmorgan-g stuartmorgan-g deleted the url-launcher-link-remove-canlaunch branch July 8, 2023 09:47
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 10, 2023
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Jul 10, 2023
flutter/packages@b61eea1...4469c5e

2023-07-08 [email protected] Roll Flutter from d55a7d8 to 65ff3cb (21 revisions) (flutter/packages#4413)
2023-07-08 [email protected] [tool] Update Dart SDK version (flutter/packages#4402)
2023-07-08 [email protected] [url_lancher] Don't use `canLaunchUrl` in Link (flutter/packages#4400)
2023-07-08 [email protected] Remove unused autosubmit configuration file (flutter/packages#4410)
2023-07-07 49699333+dependabot[bot]@users.noreply.github.com [file_selector]: Bump androidx.annotation:annotation from 1.5.0 to 1.6.0 in /packages/file_selector/file_selector_android/android (flutter/packages#4312)
2023-07-07 [email protected] Roll Flutter from bc49cd1 to d55a7d8 (17 revisions) (flutter/packages#4403)
2023-07-07 [email protected] [shared_preferences] Variable binding in a condition requires an initializer fix (flutter/packages#4407)
2023-07-07 [email protected] [go_router] implemented helpers for StatefulShellRoute (flutter/packages#4228)
2023-07-07 [email protected] [in_app_purchase_android] Bump com.android.billingclient:billing from 5.2.0 to 6.0.0. (flutter/packages#4390)
2023-07-07 [email protected] [tool] Use 'flutter pub get' for Flutter packages (flutter/packages#4397)
2023-07-07 [email protected] [ci] Enable LUCI stable custom Linux tests (flutter/packages#4404)
2023-07-07 [email protected] [tool] Fix --current-package for app-facing packages (flutter/packages#4399)
2023-07-07 [email protected] [ci] Switch some tests to LUCI (flutter/packages#4395)
2023-07-07 [email protected] [flutter_markdown] Pass parent TextStyle down to MarkdownElementBuilder.visitElementAfter (flutter/packages#4393)
2023-07-07 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 2.3.3 to 2.20.3 (flutter/packages#4394)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
gbtb16 pushed a commit to gbtb16/flutter that referenced this pull request Nov 6, 2023
flutter/packages@b61eea1...4469c5e

2023-07-08 [email protected] Roll Flutter from d55a7d8 to 65ff3cb (21 revisions) (flutter/packages#4413)
2023-07-08 [email protected] [tool] Update Dart SDK version (flutter/packages#4402)
2023-07-08 [email protected] [url_lancher] Don't use `canLaunchUrl` in Link (flutter/packages#4400)
2023-07-08 [email protected] Remove unused autosubmit configuration file (flutter/packages#4410)
2023-07-07 49699333+dependabot[bot]@users.noreply.github.com [file_selector]: Bump androidx.annotation:annotation from 1.5.0 to 1.6.0 in /packages/file_selector/file_selector_android/android (flutter/packages#4312)
2023-07-07 [email protected] Roll Flutter from bc49cd1 to d55a7d8 (17 revisions) (flutter/packages#4403)
2023-07-07 [email protected] [shared_preferences] Variable binding in a condition requires an initializer fix (flutter/packages#4407)
2023-07-07 [email protected] [go_router] implemented helpers for StatefulShellRoute (flutter/packages#4228)
2023-07-07 [email protected] [in_app_purchase_android] Bump com.android.billingclient:billing from 5.2.0 to 6.0.0. (flutter/packages#4390)
2023-07-07 [email protected] [tool] Use 'flutter pub get' for Flutter packages (flutter/packages#4397)
2023-07-07 [email protected] [ci] Enable LUCI stable custom Linux tests (flutter/packages#4404)
2023-07-07 [email protected] [tool] Fix --current-package for app-facing packages (flutter/packages#4399)
2023-07-07 [email protected] [ci] Switch some tests to LUCI (flutter/packages#4395)
2023-07-07 [email protected] [flutter_markdown] Pass parent TextStyle down to MarkdownElementBuilder.visitElementAfter (flutter/packages#4393)
2023-07-07 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 2.3.3 to 2.20.3 (flutter/packages#4394)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosubmit Merge PR when tree becomes green via auto submit App p: url_launcher
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants