-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
[url_launcher] Convert iOS to Pigeon #3481
Merged
auto-submit
merged 5 commits into
flutter:main
from
stuartmorgan:url-launcher-pigeon-ios
Mar 18, 2023
Merged
[url_launcher] Convert iOS to Pigeon #3481
auto-submit
merged 5 commits into
flutter:main
from
stuartmorgan:url-launcher-pigeon-ios
Mar 18, 2023
Conversation
This file contains 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
I used |
jmagman
approved these changes
Mar 17, 2023
stuartmorgan
added
the
autosubmit
Merge PR when tree becomes green via auto submit App
label
Mar 17, 2023
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/flutter
that referenced
this pull request
Mar 20, 2023
tarrinneal
pushed a commit
to flutter/flutter
that referenced
this pull request
Mar 20, 2023
* 7636eb7 [go_router_builder] Support default value for `Set`, `List` and `Iterable` route parameters (flutter/packages#3391) * 26c95da [image_picker] Move HashSet construction within if-statement (flutter/packages#3448) * f5687b2 [image_picker] fix typos in comments (flutter/packages#3413) * 84afba7 [image_picker] Migrate Android to Pigeon (flutter/packages#3476) * 42927fc [image_picker]: Bump androidx.exifinterface:exifinterface from 1.3.3 to 1.3.6 in /packages/image_picker/image_picker_android/android (flutter/packages#3238) * 9a44bdf Require Dart SDK 2.14, because of using APIs. (flutter/packages#3468) * 12609a2 [ci] Clean up iOS simulators (flutter/packages#3458) * 9b136a9 [ci/tool] Add external dependency validation (flutter/packages#3466) * 11aab47 Manual roll Flutter from fb7e828 to 67e5f66 (8 revisions) (flutter/packages#3482) * 784291b Update goldens (flutter/packages#3442) * 43a42d1 [webview_flutter_android] Updates Dart and Java InstanceManagers (flutter/packages#3282) * d0de136 [camera] Reland android flip/change camera while recording (flutter/packages#3460) * 74fd094 [image_picker_android] Adjust file extension in FileUtils when it does not match its mime type (flutter/packages#3409) * d2f1d2d [flutter_adaptive_scaffold] : 🐛 [FIX] : Issue: 121135. (flutter/packages#3253) * 3d078b5 Roll Flutter from 67e5f66 to 53dfd23 (39 revisions) (flutter/packages#3484) * 3b3a09d [url_launcher] Convert iOS to Pigeon (flutter/packages#3481) * 80cd50a Roll Flutter from 53dfd23 to 6bd2b3c (17 revisions) (flutter/packages#3486) * 998bb29 [webview_flutter] Updates the README with the migration of `WebView.initialCookies` and Hybrid Composition on (flutter/packages#3470) * bbf86a7 Roll Flutter from 6bd2b3c to 3e4e092 (7 revisions) (flutter/packages#3490)
nploi
pushed a commit
to nploi/packages
that referenced
this pull request
Jul 16, 2023
[url_launcher] Convert iOS to Pigeon
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
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.
Replaces the manual method channel code with Pigeon. Includes minor adjustments to the boundary API:
I also added explicit handling of invalid URLs, which previously would just throw when we tried to use the
nil
NSURL and bubble up to the Dart side. The resulting wrapped-raw-OS-exceptionPlatformException
was pretty low-information, and has caused a lot of confusion in the past (although now that the primary entry point tourl_launcher
isUri
based rather thanString
based, that's much less common). The exception strings match the macOS implementation.PlatformException
that can only result from invalid input, and to the extent that they are they could have been broken at any time by minor changes to the exception message coming from iOS.ArgumentError
in all implementations, but that really is a breaking change, so will require a concerted cross-implementation push.Since there were no real native unit tests, I did some backfilling to help fill in coverage. I didn't try to be comprehensive (there's still no testing of the SVC paths), but it's substantially more than was there. I used a protocol and manual fake, rather than injecting an OCMock, so that the tests will be easy to convert to Swift later.
Part of flutter/flutter#117915
Pre-launch Checklist
dart format
.)[shared_preferences]
pubspec.yaml
with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.CHANGELOG.md
to add a description of the change, following repository CHANGELOG style.///
).