from AutofillActionModeCallback to AutofillSelectionMenuItemProvider
added WithNewVersion() in each call to secondary_autofill handler
This commit is contained in:
Carmelo Messina
2023-08-07 14:44:03 +02:00
parent 2ef82c5d12
commit bc540aca38
@@ -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();