Skip to content

[url_launcher] Fixes new unnecessary boolean operations warnings #9409

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
merged 7 commits into from
Jul 10, 2025

Conversation

FMorschel
Copy link
Contributor

I had opened #9361 and messed up when rebasing the changes. That made the old PR get closed.

CC @stuartmorgan-g for continuing the review.

Description from the old PR:

I'm fixing dart-lang/sdk#60614, which adds some other cases to no_literal_bool_comparisons, and these were triggered here.

I'm unsure of the intended behaviour of the packages\url_launcher\url_launcher\lib\src\legacy_api.dart part, but I can fix it if the result wasn't intended this way (the operators' priority may be less known here).

About the other cases with || true, I think these might be a pattern from the team, so maybe adding a file ignore could also fix this. Please say so that I can make this the right way for you.

Pre-Review Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [Tree Hygiene] page, which explains my responsibilities.
  • I read and followed the [relevant style guides] and ran [the auto-formatter].
  • 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 [linked to 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 I have commented below to indicate which [version change exemption] this PR falls under1.
  • I updated CHANGELOG.md to add a description of the change, [following repository CHANGELOG style], or I have commented below to indicate which [CHANGELOG exemption] this PR falls under1.
  • I updated/added any relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or I have commented below to indicate which [test exemption] this PR falls under1.
  • All existing and new tests are passing.

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

@FMorschel
Copy link
Contributor Author

Continuing from my last message:

Sorry for the long delay. I came back to this today. I (fortunately) don't think that any cases are broken.

There would only be a problem if either the forceWebView or forceSafariVC default was true.

When adding the change you suggested on the last comment, no test broke, and I could not think of a test that would break before/after this change. If you can, please say so that I can add it.

@stuartmorgan-g
Copy link
Contributor

I (fortunately) don't think that any cases are broken.

There would only be a problem if either the forceWebView or forceSafariVC default was true.

Why would a problem only happen with defaults? Clients can pass non-default values.

When adding the change you suggested on the last comment, no test broke

I'm aware that your PR didn't break any tests; that's why I said we needed to add a test. The lack of test breakage with the previous version indicates missing test coverage.

and I could not think of a test that would break before/after this change. If you can, please say so that I can add it.

As I said in the previous review:

forceSafariVC = false and forceWebView = true

A test asserting that this call throws should pass:

launch('nonwebscheme://', forceSafariVC: false, forceWebView: true);

@FMorschel
Copy link
Contributor Author

FMorschel commented Jun 9, 2025

Alright, I see where I made the mistake in my consideration. Sorry, I'll add the test. Thanks!

@stuartmorgan-g
Copy link
Contributor

Since it would only affect the last two cases, it would make them the middle cases and the outputs are exactly the same.

That is not correct.

Have you actually run the test I suggested before and after the PR?

@FMorschel
Copy link
Contributor Author

Have you actually run the test I suggested before and after the PR?

Now I have. I'm really sorry I got confused on my last comment.

I'm adding the new test now. Thanks for your patience!

Copy link
Contributor

@stuartmorgan-g stuartmorgan-g left a comment

Choose a reason for hiding this comment

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

url_launcher needs a version bump, per the CI failure, since there are changes to production code.

@FMorschel FMorschel changed the title Fixes new unnecessary boolean operations warnings [url_launcher] Fixes new unnecessary boolean operations warnings Jun 17, 2025
@FMorschel
Copy link
Contributor Author

I've bumped the version already @stuartmorgan-g.

I've also added url_launcher to the PR name since this is the only package that had any significant changes.

Is the version bump I did enough? Am I missing anything still? Thanks!

@stuartmorgan-g
Copy link
Contributor

Am I missing anything still?

Yes; all of the failures flagged by CI need to be resolved.

@FMorschel
Copy link
Contributor Author

I've added the version number on the Changelog, and a new entry about the new case that will throw.

  1. One of the tests timed out.
  2. I need an exemption for in_app_purchase. The only change there was adding the ignore comment.

Copy link
Contributor

@stuartmorgan-g stuartmorgan-g left a comment

Choose a reason for hiding this comment

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

LGTM

@stuartmorgan-g stuartmorgan-g added override: no versioning needed Override the check requiring version bumps for most changes override: no changelog needed Override the check requiring CHANGELOG updates for most changes labels Jun 17, 2025
@stuartmorgan-g
Copy link
Contributor

Version/CHANGELOG override: Although the change is to example/lib/main.dart, and thus usually requires a version change since it's published on pub.dev, the // ignore isn't important for the use case of using the code from pub.dev since it's analysis-option specific.

@stuartmorgan-g stuartmorgan-g added the autosubmit Merge PR when tree becomes green via auto submit App label Jun 17, 2025
@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Jun 17, 2025
Copy link
Contributor

auto-submit bot commented Jun 17, 2025

autosubmit label was removed for flutter/packages/9409, because This PR has not met approval requirements for merging. The PR author is not a member of flutter-hackers and needs 1 more review(s) in order to merge this PR.

  • Merge guidelines: A PR needs at least one approved review if the author is already part of flutter-hackers or two member reviews if the author is not a flutter-hacker before re-applying the autosubmit label. Reviewers: If you left a comment approving, please use the "approve" review action instead.

@FMorschel
Copy link
Contributor Author

Hey @Hixie and @bparrishMines can I get some reviews here please? The changes are really minimal. Simply adding an ignore comment.

Thanks a lot!

@stuartmorgan-g
Copy link
Contributor

@bparrishMines for secondary review; please add autosubmit once it's approved.

Copy link
Contributor

@bparrishMines bparrishMines left a comment

Choose a reason for hiding this comment

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

LGTM

@bparrishMines bparrishMines added the autosubmit Merge PR when tree becomes green via auto submit App label Jul 10, 2025
@auto-submit auto-submit bot merged commit 3fe6a01 into flutter:main Jul 10, 2025
78 checks passed
@FMorschel FMorschel deleted the booleans branch July 10, 2025 19:14
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 17, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 17, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 17, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 17, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jul 17, 2025
github-merge-queue bot pushed a commit to flutter/flutter that referenced this pull request Jul 17, 2025
flutter/packages@4a231ae...cb8fef6

2025-07-17 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump androidx.activity:activity from 1.9.3 to 1.10.1 in
/packages/image_picker/image_picker_android/android
(flutter/packages#8725)
2025-07-17 [email protected] [webview_flutter] Update
androidx.webkit to 1.14.0 (flutter/packages#9638)
2025-07-17 [email protected] Roll Flutter from
c2739f0 to 9c626d9 (18 revisions) (flutter/packages#9641)
2025-07-17 [email protected] Roll Flutter (stable) from
077b4a4 to d7b523b (3 revisions) (flutter/packages#9640)
2025-07-17 [email protected] Fix Gemini note wrapping
(flutter/packages#9639)
2025-07-17 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.google.android.gms:play-services-maps from 18.2.0
to 19.2.0 in
/packages/google_maps_flutter/google_maps_flutter_android/android
(flutter/packages#9120)
2025-07-17 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump androidx.fragment:fragment from 1.6.2 to 1.8.8 in
/packages/local_auth/local_auth_android/android (flutter/packages#9406)
2025-07-16 [email protected] [ci] Add Gemini Code Assist review
config (flutter/packages#9632)
2025-07-16 [email protected] Roll Flutter from
cc3110c to c2739f0 (15 revisions) (flutter/packages#9633)
2025-07-16 [email protected] [image_picker]
redesign example app (flutter/packages#9625)
2025-07-16 [email protected] [camera_avfoundation]
Implementation swift migration - part 7 (flutter/packages#9595)
2025-07-15 [email protected]
[webview_flutter_wkwebview] Replace Flutter method failure assertion
with nslog (flutter/packages#9587)
2025-07-15 [email protected] Roll Flutter from
a930ec1 to cc3110c (24 revisions) (flutter/packages#9631)
2025-07-15 [email protected] [webview_flutter] Add
setMixedContentMode for Android (flutter/packages#9586)
2025-07-15 [email protected] [google_sign_in] Add exception info
to migration guide (flutter/packages#9574)
2025-07-14 [email protected] [camera_android] Use
WeakReference to prevent startImageStream OOM error when main thread
hangs (#166533) (flutter/packages#9571)
2025-07-14 [email protected] [quick_actions]
Restore the appShortcutLaunchActivityAfterStarting test in
quick_actions_android (flutter/packages#9508)
2025-07-14 [email protected] Roll Flutter from
35f197f to a930ec1 (3 revisions) (flutter/packages#9624)
2025-07-14 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.android.tools.build:gradle from 8.9.1 to 8.11.1
in /packages/pigeon/platform_tests/test_plugin/android
(flutter/packages#9618)
2025-07-12 [email protected] Roll Flutter from
43657f3 to 35f197f (39 revisions) (flutter/packages#9602)
2025-07-11 [email protected] Replace popularity badges
(flutter/packages#9594)
2025-07-11 [email protected] [rfw] Update
test to not depend on toString() (flutter/packages#9590)
2025-07-11 [email protected] [camera_avfoundation]
Implementation swift migration - part 6 (flutter/packages#9588)
2025-07-10 [email protected] [url_launcher]
Fixes new unnecessary boolean operations warnings
(flutter/packages#9409)
2025-07-10 [email protected] [google_sign_in] Add troubleshooting
to Android README (flutter/packages#9581)
2025-07-10 [email protected] Roll Flutter from
ac12f66 to 43657f3 (25 revisions) (flutter/packages#9589)
2025-07-10 [email protected]
[go_router_builder] Update case sensitive test to `go_router` 16.0.0
(flutter/packages#9482)
2025-07-09 [email protected] [rfw] Remove the
RFW WASM example (flutter/packages#9551)
2025-07-09 [email protected] Roll Flutter (stable) from
fcf2c11 to 077b4a4 (5 revisions) (flutter/packages#9585)
2025-07-09 [email protected] Roll Flutter from
adffe24 to ac12f66 (28 revisions) (flutter/packages#9584)
2025-07-09 [email protected] [video_player] Add html 5 video poster
support (thumbnail) as a VideoPlayerWebOptions (flutter/packages#8940)

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] 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://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
azatech pushed a commit to azatech/flutter that referenced this pull request Jul 28, 2025
…er#172303)

flutter/packages@4a231ae...cb8fef6

2025-07-17 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump androidx.activity:activity from 1.9.3 to 1.10.1 in
/packages/image_picker/image_picker_android/android
(flutter/packages#8725)
2025-07-17 [email protected] [webview_flutter] Update
androidx.webkit to 1.14.0 (flutter/packages#9638)
2025-07-17 [email protected] Roll Flutter from
c2739f0 to 9c626d9 (18 revisions) (flutter/packages#9641)
2025-07-17 [email protected] Roll Flutter (stable) from
077b4a4 to d7b523b (3 revisions) (flutter/packages#9640)
2025-07-17 [email protected] Fix Gemini note wrapping
(flutter/packages#9639)
2025-07-17 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.google.android.gms:play-services-maps from 18.2.0
to 19.2.0 in
/packages/google_maps_flutter/google_maps_flutter_android/android
(flutter/packages#9120)
2025-07-17 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump androidx.fragment:fragment from 1.6.2 to 1.8.8 in
/packages/local_auth/local_auth_android/android (flutter/packages#9406)
2025-07-16 [email protected] [ci] Add Gemini Code Assist review
config (flutter/packages#9632)
2025-07-16 [email protected] Roll Flutter from
cc3110c to c2739f0 (15 revisions) (flutter/packages#9633)
2025-07-16 [email protected] [image_picker]
redesign example app (flutter/packages#9625)
2025-07-16 [email protected] [camera_avfoundation]
Implementation swift migration - part 7 (flutter/packages#9595)
2025-07-15 [email protected]
[webview_flutter_wkwebview] Replace Flutter method failure assertion
with nslog (flutter/packages#9587)
2025-07-15 [email protected] Roll Flutter from
a930ec1 to cc3110c (24 revisions) (flutter/packages#9631)
2025-07-15 [email protected] [webview_flutter] Add
setMixedContentMode for Android (flutter/packages#9586)
2025-07-15 [email protected] [google_sign_in] Add exception info
to migration guide (flutter/packages#9574)
2025-07-14 [email protected] [camera_android] Use
WeakReference to prevent startImageStream OOM error when main thread
hangs (flutter#166533) (flutter/packages#9571)
2025-07-14 [email protected] [quick_actions]
Restore the appShortcutLaunchActivityAfterStarting test in
quick_actions_android (flutter/packages#9508)
2025-07-14 [email protected] Roll Flutter from
35f197f to a930ec1 (3 revisions) (flutter/packages#9624)
2025-07-14 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.android.tools.build:gradle from 8.9.1 to 8.11.1
in /packages/pigeon/platform_tests/test_plugin/android
(flutter/packages#9618)
2025-07-12 [email protected] Roll Flutter from
43657f3 to 35f197f (39 revisions) (flutter/packages#9602)
2025-07-11 [email protected] Replace popularity badges
(flutter/packages#9594)
2025-07-11 [email protected] [rfw] Update
test to not depend on toString() (flutter/packages#9590)
2025-07-11 [email protected] [camera_avfoundation]
Implementation swift migration - part 6 (flutter/packages#9588)
2025-07-10 [email protected] [url_launcher]
Fixes new unnecessary boolean operations warnings
(flutter/packages#9409)
2025-07-10 [email protected] [google_sign_in] Add troubleshooting
to Android README (flutter/packages#9581)
2025-07-10 [email protected] Roll Flutter from
ac12f66 to 43657f3 (25 revisions) (flutter/packages#9589)
2025-07-10 [email protected]
[go_router_builder] Update case sensitive test to `go_router` 16.0.0
(flutter/packages#9482)
2025-07-09 [email protected] [rfw] Remove the
RFW WASM example (flutter/packages#9551)
2025-07-09 [email protected] Roll Flutter (stable) from
fcf2c11 to 077b4a4 (5 revisions) (flutter/packages#9585)
2025-07-09 [email protected] Roll Flutter from
adffe24 to ac12f66 (28 revisions) (flutter/packages#9584)
2025-07-09 [email protected] [video_player] Add html 5 video poster
support (thumbnail) as a VideoPlayerWebOptions (flutter/packages#8940)

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] 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://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
vashworth pushed a commit to vashworth/packages that referenced this pull request Jul 30, 2025
…tter#9409)

I had opened flutter#9361 and messed up when rebasing the changes. That made the old PR get closed.

CC @stuartmorgan-g for continuing the review.

Description from the old PR:

I'm fixing dart-lang/sdk#60614, which adds some other cases to `no_literal_bool_comparisons`, and these were triggered here.

I'm unsure of the intended behaviour of the `packages\url_launcher\url_launcher\lib\src\legacy_api.dart` part, but I can fix it if the result wasn't intended this way (the operators' priority may be less known here).

About the other cases with `|| true`, I think these might be a pattern from the team, so maybe adding a file ignore could also fix this. Please say so that I can make this the right way for you.

## Pre-Review Checklist

[^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.
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 override: no changelog needed Override the check requiring CHANGELOG updates for most changes override: no versioning needed Override the check requiring version bumps for most changes p: in_app_purchase p: rfw Remote Flutter Widgets p: url_launcher
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants