-
Notifications
You must be signed in to change notification settings - Fork 3.5k
[google_sign_in] Implement hosted domain on Android #9871
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
[google_sign_in] Implement hosted domain on Android #9871
Conversation
Adds support for hosted domain filtering on Android. This was wired up for `authorize` (which would apply when calling `authorize` without a user set), but not for `authenticate`, because the first draft of Android support only used the one-tap flow, which doesn't have domain filter support, and I forgot to add it when I added the button flow. Because one-tap doesn't support the filtering feature, this adjusts the way the `attemptLightweightAuthentication` is handled when a filter is set. Instead of following the usual guidance to call it first with `filterToAuthorized` and `autoSelectEnabled` (for returning sign-in), then again without (for one-tap UI), it will only do the first call, which means it will allow returning sign-ins, but not show a general one-tap selection UI that could allow seleting an account that doesn't meet the filter requirement. (In theory, there are cases where this would be wrong if someone changed their filtering dynamically from run to run, but I can't imagine why that would be done, and in that case there's nothing that can be done with the current SDK support anyway, so if someone really wants to do that they need to just not call `attemptLightweightAuthentication`.) Fixes flutter/flutter#174200
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request successfully implements hostedDomain
filtering on Android for Google Sign-In. The changes are well-implemented across the native and Dart layers, including necessary updates to the Pigeon communication files. The logic correctly handles the limitations of the one-tap sign-in flow, which doesn't support domain filtering. New tests have been added to cover the new functionality. The only issue I've found is a minor formatting problem in the CHANGELOG.md
file.
flutter/packages@141d8e3...a3f09e5 2025-08-28 [email protected] [google_sign_in] Implement hosted domain on Android (flutter/packages#9871) 2025-08-28 [email protected] [google_maps_flutter_platform_interface] Add cameraControl enable/disable & position on web (flutter/packages#9897) 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
Adds support for hosted domain filtering on Android. This was wired up for
authorize
(which would apply when callingauthorize
without a user set), but not forauthenticate
, because the first draft of Android support only used the one-tap flow, which doesn't have domain filter support, and I forgot to add it when I added the button flow.Because one-tap doesn't support the filtering feature, this adjusts the way the
attemptLightweightAuthentication
is handled when a filter is set. Instead of following the usual guidance to call it first withfilterToAuthorized
andautoSelectEnabled
(for returning sign-in), then again without (for one-tap UI), it will only do the first call, which means it will allow returning sign-ins, but not show a general one-tap selection UI that could allow seleting an account that doesn't meet the filter requirement. (In theory, there are cases where this would be wrong if someone changed their filtering dynamically from run to run, but I can't imagine why that would be done, and in that case there's nothing that can be done with the current SDK support anyway, so if someone really wants to do that they need to just not callattemptLightweightAuthentication
.)Also updates to the latest version of Pigeon since I was regenerating the Pigeon files already.
Fixes flutter/flutter#174200
Pre-Review Checklist
[shared_preferences]
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.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.///
).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
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