| From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| From: fgei <fgei@gmail.com> |
| Date: Mon, 20 Feb 2023 07:06:53 +0000 |
| Subject: [PATCH] Support both password manager and android autofill |
| functionality |
| |
| --- |
| .../autofill/content/renderer/autofill_agent.cc | 2 -- |
| .../content/renderer/password_autofill_agent.cc | 11 ----------- |
| .../core/browser/browser_autofill_manager.cc | 13 +++++++++++++ |
| 3 files changed, 13 insertions(+), 13 deletions(-) |
| |
| diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc |
| index 382710524cd30..0e80f8c6eb647 100644 |
| --- a/components/autofill/content/renderer/autofill_agent.cc |
| +++ b/components/autofill/content/renderer/autofill_agent.cc |
| @@ -556,14 +556,12 @@ void AutofillAgent::OnTextFieldDidChange(const WebFormControlElement& element) { |
| if (password_generation_agent_ && !input_element.IsNull() && |
| password_generation_agent_->TextDidChangeInTextField(input_element)) { |
| is_popup_possibly_visible_ = true; |
| - return; |
| } |
| |
| if (!input_element.IsNull() && |
| password_autofill_agent_->TextDidChangeInTextField(input_element)) { |
| is_popup_possibly_visible_ = true; |
| last_queried_element_ = FieldRef(element); |
| - return; |
| } |
| |
| if (!input_element.IsNull()) { |
| diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/components/autofill/content/renderer/password_autofill_agent.cc |
| index dd2d3471406cd..f467d2993f5b3 100644 |
| --- a/components/autofill/content/renderer/password_autofill_agent.cc |
| +++ b/components/autofill/content/renderer/password_autofill_agent.cc |
| @@ -1146,17 +1146,6 @@ bool PasswordAutofillAgent::ShowSuggestions(const WebInputElement& element, |
| if (element.Value().length() > kMaximumTextSizeForAutocomplete) |
| return false; |
| |
| -#if BUILDFLAG(IS_ANDROID) |
| - // Don't call ShowSuggestionPopup if a keyboard replacing surface is currently |
| - // showing. Since a keyboard replacing surface in spirit is very similar to a |
| - // suggestion pop-up, return true so that the AutofillAgent does not try to |
| - // show other autofill suggestions instead. |
| - if (keyboard_replacing_surface_state_ == |
| - KeyboardReplacingSurfaceState::kIsShowing) { |
| - return true; |
| - } |
| -#endif |
| - |
| if (!HasDocumentWithValidFrame(element)) |
| return false; |
| |
| diff --git a/components/autofill/core/browser/browser_autofill_manager.cc b/components/autofill/core/browser/browser_autofill_manager.cc |
| index c87e797550ce2..1e741c34c8ce9 100644 |
| --- a/components/autofill/core/browser/browser_autofill_manager.cc |
| +++ b/components/autofill/core/browser/browser_autofill_manager.cc |
| @@ -1114,6 +1114,19 @@ void BrowserAutofillManager::OnAskForValuesToFillImpl( |
| if (base::FeatureList::IsEnabled(features::kAutofillDisableFilling)) { |
| return; |
| } |
| + |
| + if (AutofillField* _autofill_field = GetAutofillField(form, field)) { |
| + switch (_autofill_field->Type().group()) { |
| + // Do not override password manager prompt on these fields |
| + case FieldTypeGroup::kNoGroup: |
| + case FieldTypeGroup::kPasswordField: |
| + case FieldTypeGroup::kUsernameField: |
| + case FieldTypeGroup::kEmail: |
| + return; |
| + default: |
| + break; |
| + } |
| + } |
| |
| external_delegate_->SetCurrentDataListValues(field.datalist_options); |
| external_delegate_->OnQuery(form, field, transformed_box); |