From bc540aca38e50d8fb165f7b181fdcd669df93998 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Mon, 7 Aug 2023 14:44:03 +0200 Subject: [PATCH] v116 from AutofillActionModeCallback to AutofillSelectionMenuItemProvider added WithNewVersion() in each call to secondary_autofill handler --- .../Enable-native-Android-autofill.patch | 111 ++++++++++++------ 1 file changed, 73 insertions(+), 38 deletions(-) diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch index 2f3b94ed..7e6f1d60 100644 --- a/build/patches/Enable-native-Android-autofill.patch +++ b/build/patches/Enable-native-Android-autofill.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html android_webview/browser/aw_contents.cc | 3 +- chrome/android/BUILD.gn | 1 + .../settings/PasswordSettings.java | 81 ++++++++++++++++++- - .../chromium/chrome/browser/tab/TabImpl.java | 50 ++++++++++++ + .../chromium/chrome/browser/tab/TabImpl.java | 51 ++++++++++++ .../browser/tab/TabViewAndroidDelegate.java | 14 ++++ chrome/browser/BUILD.gn | 7 ++ chrome/browser/android/tab_android.cc | 15 ++++ @@ -27,7 +27,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../ui/autofill/chrome_autofill_client.cc | 8 +- .../browser/android_autofill_manager.cc | 2 +- .../browser/android_autofill_manager.h | 4 +- - .../browser/content_autofill_driver.cc | 30 +++++++ + .../browser/content_autofill_driver.cc | 50 ++++++++++++ .../content/browser/content_autofill_driver.h | 9 ++- .../content_autofill_driver_factory.cc | 11 ++- .../browser/content_autofill_driver_factory.h | 1 + @@ -36,7 +36,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../autofill/core/common/autofill_prefs.h | 2 + .../embedder_support/view/ContentView.java | 46 +++++++++++ .../chromium/ui/base/ViewAndroidDelegate.java | 8 ++ - 21 files changed, 302 insertions(+), 9 deletions(-) + 21 files changed, 323 insertions(+), 9 deletions(-) diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw_contents.cc --- a/android_webview/browser/aw_contents.cc @@ -201,7 +201,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav +import android.view.ViewStructure; +import android.view.autofill.AutofillValue; +import org.chromium.components.autofill.AutofillProvider; -+import org.chromium.components.autofill.AutofillActionModeCallback; ++import org.chromium.components.autofill.AutofillSelectionMenuItemProvider; +import org.chromium.content_public.browser.SelectionPopupController; +import org.chromium.chrome.browser.preferences.Pref; +import org.chromium.components.user_prefs.UserPrefs; @@ -247,7 +247,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav /** * Initializes the {@link WebContents}. Completes the browser content components initialization * around a native WebContents pointer. -@@ -1449,6 +1477,27 @@ public class TabImpl implements Tab { +@@ -1449,6 +1477,28 @@ public class TabImpl implements Tab { mDelegateFactory.createContextMenuPopulatorFactory(this), this)); mWebContents.notifyRendererPreferenceUpdate(); @@ -268,14 +268,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav + TabImplJni.get().initializeAutofillIfNecessary(mNativeTabAndroid); + mAutofillProvider.setWebContents(webContents); + cv.setWebContents(webContents); -+ selectionController.setNonSelectionActionModeCallback( -+ new AutofillActionModeCallback(mThemedApplicationContext, mAutofillProvider)); ++ selectionController.setNonSelectionAdditionalMenuItemProvider( ++ new AutofillSelectionMenuItemProvider( ++ getContext(), mAutofillProvider)); + } + } TabHelpers.initWebContentsHelpers(this); notifyContentChanged(); } finally { -@@ -1790,6 +1839,7 @@ public class TabImpl implements Tab { +@@ -1790,6 +1840,7 @@ public class TabImpl implements Tab { void setActiveNavigationEntryTitleForUrl(long nativeTabAndroid, String url, String title); void loadOriginalImage(long nativeTabAndroid); boolean handleNonNavigationAboutURL(GURL url); @@ -448,54 +449,62 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co }); } -@@ -427,6 +429,8 @@ void ContentAutofillDriver::FormSubmitted( +@@ -427,6 +429,10 @@ void ContentAutofillDriver::FormSubmitted( } target->autofill_manager_->OnFormSubmitted( WithNewVersion(form), known_success, submission_source); -+ if (target->secondary_autofill_manager_) -+ target->secondary_autofill_manager_->OnFormSubmitted(form, known_success, submission_source); ++ if (target->secondary_autofill_manager_) { ++ target->secondary_autofill_manager_->OnFormSubmitted( ++ WithNewVersion(form), known_success, submission_source); ++ } }); } -@@ -448,6 +452,8 @@ void ContentAutofillDriver::TextFieldDidChange(const FormData& raw_form, +@@ -448,6 +454,10 @@ void ContentAutofillDriver::TextFieldDidChange(const FormData& raw_form, base::TimeTicks timestamp) { target->autofill_manager_->OnTextFieldDidChange( WithNewVersion(form), field, bounding_box, timestamp); -+ if (target->secondary_autofill_manager_) -+ target->secondary_autofill_manager_->OnTextFieldDidChange(form, field, bounding_box, timestamp); ++ if (target->secondary_autofill_manager_) { ++ target->secondary_autofill_manager_->OnTextFieldDidChange( ++ WithNewVersion(form), field, bounding_box, timestamp); ++ } }); } -@@ -467,6 +473,8 @@ void ContentAutofillDriver::TextFieldDidScroll(const FormData& raw_form, +@@ -467,6 +477,10 @@ void ContentAutofillDriver::TextFieldDidScroll(const FormData& raw_form, const FormFieldData& field, const gfx::RectF& bounding_box) { target->autofill_manager_->OnTextFieldDidScroll(WithNewVersion(form), field, bounding_box); -+ if (target->secondary_autofill_manager_) -+ target->secondary_autofill_manager_->OnTextFieldDidScroll(form, field, bounding_box); ++ if (target->secondary_autofill_manager_) { ++ target->secondary_autofill_manager_->OnTextFieldDidScroll( ++ WithNewVersion(form), field, bounding_box); ++ } }); } -@@ -487,6 +495,8 @@ void ContentAutofillDriver::SelectControlDidChange( +@@ -487,6 +501,10 @@ void ContentAutofillDriver::SelectControlDidChange( const FormFieldData& field, const gfx::RectF& bounding_box) { target->autofill_manager_->OnSelectControlDidChange( WithNewVersion(form), field, bounding_box); -+ if (target->secondary_autofill_manager_) -+ target->secondary_autofill_manager_->OnSelectControlDidChange(form, field, bounding_box); ++ if (target->secondary_autofill_manager_) { ++ target->secondary_autofill_manager_->OnSelectControlDidChange( ++ WithNewVersion(form), field, bounding_box); ++ } }); } -@@ -509,6 +519,10 @@ void ContentAutofillDriver::AskForValuesToFill( +@@ -509,6 +527,10 @@ void ContentAutofillDriver::AskForValuesToFill( AutofillSuggestionTriggerSource trigger_source) { target->autofill_manager_->OnAskForValuesToFill( WithNewVersion(form), field, bounding_box, trigger_source); -+ if (target->secondary_autofill_manager_) -+ target->secondary_autofill_manager_->OnAskForValuesToFill(form, field, bounding_box, -+ autoselect_first_suggestion, -+ form_element_was_clicked); ++ if (target->secondary_autofill_manager_) { ++ target->secondary_autofill_manager_->OnAskForValuesToFill( ++ WithNewVersion(form), field, bounding_box, trigger_source); ++ } }); } -@@ -520,12 +534,16 @@ void ContentAutofillDriver::HidePopup() { +@@ -520,12 +542,16 @@ void ContentAutofillDriver::HidePopup() { DCHECK(!target->IsPrerendering()) << "We should never affect UI while prerendering"; target->autofill_manager_->OnHidePopup(); @@ -512,25 +521,29 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co } void ContentAutofillDriver::FocusNoLongerOnForm(bool had_interacted_form) { -@@ -555,6 +573,8 @@ void ContentAutofillDriver::FocusOnFormField(const FormData& raw_form, +@@ -555,6 +581,10 @@ void ContentAutofillDriver::FocusOnFormField(const FormData& raw_form, const FormFieldData& field, const gfx::RectF& bounding_box) { target->autofill_manager_->OnFocusOnFormField(WithNewVersion(form), field, bounding_box); -+ if (target->secondary_autofill_manager_) -+ target->secondary_autofill_manager_->OnFocusOnFormField(form, field, bounding_box); ++ if (target->secondary_autofill_manager_) { ++ target->secondary_autofill_manager_->OnFocusOnFormField( ++ WithNewVersion(form), field, bounding_box); ++ } }); } -@@ -569,6 +589,8 @@ void ContentAutofillDriver::DidFillAutofillFormData(const FormData& raw_form, +@@ -569,6 +599,10 @@ void ContentAutofillDriver::DidFillAutofillFormData(const FormData& raw_form, base::TimeTicks timestamp) { target->autofill_manager_->OnDidFillAutofillFormData( WithNewVersion(form), timestamp); -+ if (target->secondary_autofill_manager_) -+ target->secondary_autofill_manager_->OnDidFillAutofillFormData(form, timestamp); ++ if (target->secondary_autofill_manager_) { ++ target->secondary_autofill_manager_->OnDidFillAutofillFormData( ++ WithNewVersion(form), timestamp); ++ } }); } -@@ -579,6 +601,8 @@ void ContentAutofillDriver::DidPreviewAutofillFormData() { +@@ -579,6 +613,8 @@ void ContentAutofillDriver::DidPreviewAutofillFormData() { autofill_router().DidPreviewAutofillFormData( this, [](ContentAutofillDriver* target) { target->autofill_manager_->OnDidPreviewAutofillFormData(); @@ -539,7 +552,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co }); } -@@ -589,6 +613,8 @@ void ContentAutofillDriver::DidEndTextFieldEditing() { +@@ -589,6 +625,8 @@ void ContentAutofillDriver::DidEndTextFieldEditing() { autofill_router().DidEndTextFieldEditing( this, [](ContentAutofillDriver* target) { target->autofill_manager_->OnDidEndTextFieldEditing(); @@ -548,16 +561,38 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co }); } -@@ -602,6 +628,8 @@ void ContentAutofillDriver::SelectFieldOptionsDidChange( +@@ -602,6 +640,10 @@ void ContentAutofillDriver::SelectFieldOptionsDidChange( [](ContentAutofillDriver* target, const FormData& form) { target->autofill_manager_->OnSelectFieldOptionsDidChange( WithNewVersion(form)); -+ if (target->secondary_autofill_manager_) -+ target->secondary_autofill_manager_->OnSelectFieldOptionsDidChange(form); ++ if (target->secondary_autofill_manager_) { ++ target->secondary_autofill_manager_->OnSelectFieldOptionsDidChange( ++ WithNewVersion(form)); ++ } }); } -@@ -649,6 +677,8 @@ void ContentAutofillDriver::Reset() { +@@ -621,6 +663,10 @@ void ContentAutofillDriver::JavaScriptChangedAutofilledValue( + const FormFieldData& field, const std::u16string& old_value) { + target->autofill_manager_->OnJavaScriptChangedAutofilledValue( + WithNewVersion(form), field, old_value); ++ if (target->secondary_autofill_manager_) { ++ target->secondary_autofill_manager_->OnJavaScriptChangedAutofilledValue( ++ WithNewVersion(form), field, old_value); ++ } + }); + } + +@@ -628,6 +674,8 @@ void ContentAutofillDriver::OnContextMenuShownInFieldCallback( + const FormGlobalId& form_global_id, + const FieldGlobalId& field_global_id) { + autofill_manager_->OnContextMenuShownInField(form_global_id, field_global_id); ++ if (secondary_autofill_manager_) ++ secondary_autofill_manager_->OnContextMenuShownInField(form_global_id, field_global_id); + } + + void ContentAutofillDriver::OnContextMenuShownInField( +@@ -649,6 +697,8 @@ void ContentAutofillDriver::Reset() { owner_->autofill_router().UnregisterDriver(this, /*driver_is_dying=*/false); autofill_manager_->Reset();