Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

[macOS] Set textfield autofill type #39632

Merged
merged 1 commit into from
Feb 15, 2023

Conversation

cbracken
Copy link
Member

macOS supports three autofill types: username, password, and oneTimeCode. Apply these content types when the equivalent Flutter autofill hints are set.

Note that enabling autocomplete of username and password in applications will still require setting the "Autofill Credential Provider" and "Associated Domains" entitlements, and for the FlutterTextInputPlugin to be updated to use an NSSecureTextInput input type.

Issue: flutter/flutter#120252

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 Flutter Style Guide and the C++, Objective-C, Java style guides.
  • I listed at least one issue that this PR fixes in the description above.
  • I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test-exempt. See testing the engine for instructions on writing and running engine tests.
  • I updated/added relevant documentation (doc comments with ///).
  • I signed the CLA.
  • All existing and new tests are passing.

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

Copy link
Member

@loic-sharma loic-sharma left a comment

Choose a reason for hiding this comment

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

LGTM, but consider getting approval from someone more familiar with macOS :)

@cbracken cbracken force-pushed the autofill-content-type branch from 3a8eb2e to 7d60ee3 Compare February 14, 2023 21:17
Copy link
Contributor

@yaakovschectman yaakovschectman left a comment

Choose a reason for hiding this comment

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

Looks okay, but ditto on not knowing much about mac or objective C++

macOS supports three autofill types: username, password, and
oneTimeCode. Apply these content types when the equivalent Flutter
autofill hints are set.

Note that enabling autocomplete of username and password in applications
will still require setting the "Autofill Credential Provider" and
"Associated Domains" entitlements, and for the FlutterTextInputPlugin to
be updated to use an NSSecureTextInput input type.

Issue: flutter/flutter#120252
@cbracken cbracken force-pushed the autofill-content-type branch from 7d60ee3 to 702ad9e Compare February 14, 2023 21:27
@cbracken cbracken merged commit 9af56b3 into flutter:main Feb 15, 2023
@cbracken cbracken deleted the autofill-content-type branch February 15, 2023 17:46
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 15, 2023
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Feb 15, 2023
…120821)

* b59787f40 Roll Skia from cd19d680b078 to 21627ff455d0 (2 revisions) (flutter/engine#39650)

* 9af56b3ee [macOS] Set textfield autofill type (flutter/engine#39632)

* a8b3d1af5 Added wide gamut colors to offscreen buffers (flutter/engine#39482)
cbracken added a commit to cbracken/flutter_engine that referenced this pull request Feb 16, 2023
This just extracts arguments to the TextInputClient.setClient async
method call into an NSDictionary local to reduce the deep
indentation of the formatted code.

While the bulk of these calls are identical and could be extracted to a
utility function, or a class extension method like
`handleDefaultSetClientCall`, the point of these tests is to exercise
FlutterTextInputPlugin, and the message protocol over the channel are
precisely what's  being tested, so it makes sense to keep these
explicit.

Followup patch to flutter#39632.

Issue: flutter/flutter#120252
cbracken added a commit to cbracken/flutter_engine that referenced this pull request Feb 16, 2023
This just extracts arguments to the TextInputClient.setClient async
method call into an NSDictionary local to reduce the deep
indentation of the formatted code.

While the bulk of these calls are identical and could be extracted to a
utility function, or a class extension method like
`handleDefaultSetClientCall`, the point of these tests is to exercise
FlutterTextInputPlugin, and the message protocol over the channel are
precisely what's  being tested, so it makes sense to keep these
explicit.

Followup patch to flutter#39632.

Issue: flutter/flutter#120252
cbracken added a commit to cbracken/flutter_engine that referenced this pull request Feb 16, 2023
This just extracts arguments to the TextInputClient.setClient async
method call into an NSDictionary local to reduce the deep
indentation of the formatted code.

While the bulk of these calls are identical and could be extracted to a
utility function, or a class extension method like
`handleDefaultSetClientCall`, the point of these tests is to exercise
FlutterTextInputPlugin, and the message protocol over the channel are
precisely what's  being tested, so it makes sense to keep these
explicit.

Followup patch to flutter#39632.

Issue: flutter/flutter#120252
cbracken added a commit to cbracken/flutter_engine that referenced this pull request Feb 16, 2023
This just extracts arguments to the TextInputClient.setClient async
method call into an NSDictionary local to reduce the deep
indentation of the formatted code.

While the bulk of these calls are identical and could be extracted to a
utility function, or a class extension method like
`handleDefaultSetClientCall`, the point of these tests is to exercise
FlutterTextInputPlugin, and the message protocol over the channel are
precisely what's  being tested, so it makes sense to keep these
explicit.

Followup patch to flutter#39632.

Issue: flutter/flutter#120252
auto-submit bot pushed a commit that referenced this pull request Feb 16, 2023
This just extracts arguments to the TextInputClient.setClient async
method call into an NSDictionary local to reduce the deep
indentation of the formatted code.

While the bulk of these calls are identical and could be extracted to a
utility function, or a class extension method like
`handleDefaultSetClientCall`, the point of these tests is to exercise
FlutterTextInputPlugin, and the message protocol over the channel are
precisely what's  being tested, so it makes sense to keep these
explicit.

Followup patch to #39632.

Issue: flutter/flutter#120252
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants