summaryrefslogtreecommitdiff
path: root/chromium/components/android_autofill
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2022-02-04 17:20:24 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2022-02-12 08:15:25 +0000
commit8fa0776f1f79e91fc9c0b9c1ba11a0a29c05196b (patch)
tree788d8d7549712682703a0310ca4a0f0860d4802b /chromium/components/android_autofill
parent606d85f2a5386472314d39923da28c70c60dc8e7 (diff)
downloadqtwebengine-chromium-8fa0776f1f79e91fc9c0b9c1ba11a0a29c05196b.tar.gz
BASELINE: Update Chromium to 98.0.4758.90
Change-Id: Ib7c41539bf8a8e0376bd639f27d68294de90f3c8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/android_autofill')
-rw-r--r--chromium/components/android_autofill/DEPS6
-rw-r--r--chromium/components/android_autofill/browser/BUILD.gn1
-rw-r--r--chromium/components/android_autofill/browser/android_autofill_manager.h3
-rw-r--r--chromium/components/android_autofill/browser/autofill_provider.cc2
-rw-r--r--chromium/components/android_autofill/browser/autofill_provider.h10
-rw-r--r--chromium/components/android_autofill/browser/autofill_provider_android.cc6
-rw-r--r--chromium/components/android_autofill/browser/autofill_provider_unittest.cc20
-rw-r--r--chromium/components/android_autofill/browser/form_data_android.cc4
-rw-r--r--chromium/components/android_autofill/browser/form_field_data_android.h3
-rw-r--r--chromium/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java47
-rw-r--r--chromium/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProviderUMA.java3
-rw-r--r--chromium/components/android_autofill/browser/test_autofill_provider.h5
12 files changed, 47 insertions, 63 deletions
diff --git a/chromium/components/android_autofill/DEPS b/chromium/components/android_autofill/DEPS
index a0d14e6ba50..730952a3e13 100644
--- a/chromium/components/android_autofill/DEPS
+++ b/chromium/components/android_autofill/DEPS
@@ -4,3 +4,9 @@ include_rules = [
"+content/public/browser",
"+ui",
]
+
+specific_include_rules = {
+ "autofill_provider_unittest.cc" : [
+ "+content/public/test",
+ ],
+}
diff --git a/chromium/components/android_autofill/browser/BUILD.gn b/chromium/components/android_autofill/browser/BUILD.gn
index d80b56fd847..78122578fc7 100644
--- a/chromium/components/android_autofill/browser/BUILD.gn
+++ b/chromium/components/android_autofill/browser/BUILD.gn
@@ -83,6 +83,7 @@ source_set("unit_tests") {
sources = [ "autofill_provider_unittest.cc" ]
deps = [
":test_support",
+ "//content/test:test_support",
"//testing/gmock",
"//testing/gtest",
]
diff --git a/chromium/components/android_autofill/browser/android_autofill_manager.h b/chromium/components/android_autofill/browser/android_autofill_manager.h
index 87c386912ad..0a1896194f0 100644
--- a/chromium/components/android_autofill/browser/android_autofill_manager.h
+++ b/chromium/components/android_autofill/browser/android_autofill_manager.h
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_ANDROID_AUTOFILL_BROWSER_ANDROID_AUTOFILL_MANAGER_H_
#define COMPONENTS_ANDROID_AUTOFILL_BROWSER_ANDROID_AUTOFILL_MANAGER_H_
+#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "components/autofill/core/browser/autofill_manager.h"
#include "components/autofill/core/common/dense_set.h"
@@ -113,7 +114,7 @@ class AndroidAutofillManager : public AutofillManager {
AutofillProvider* GetAutofillProvider();
bool has_server_prediction_ = false;
- AutofillProvider* autofill_provider_for_testing_ = nullptr;
+ raw_ptr<AutofillProvider> autofill_provider_for_testing_ = nullptr;
base::WeakPtrFactory<AndroidAutofillManager> weak_ptr_factory_{this};
};
diff --git a/chromium/components/android_autofill/browser/autofill_provider.cc b/chromium/components/android_autofill/browser/autofill_provider.cc
index 91e386f62bb..8a0483d55d9 100644
--- a/chromium/components/android_autofill/browser/autofill_provider.cc
+++ b/chromium/components/android_autofill/browser/autofill_provider.cc
@@ -25,7 +25,7 @@ void AutofillProvider::set_is_download_manager_disabled_for_testing() {
}
AutofillProvider::AutofillProvider(content::WebContents* web_contents)
- : web_contents_(web_contents) {
+ : content::WebContentsUserData<AutofillProvider>(*web_contents) {
web_contents->SetUserData(UserDataKey(), base::WrapUnique(this));
}
diff --git a/chromium/components/android_autofill/browser/autofill_provider.h b/chromium/components/android_autofill/browser/autofill_provider.h
index 213cb4b0c06..dca4a6b7fb8 100644
--- a/chromium/components/android_autofill/browser/autofill_provider.h
+++ b/chromium/components/android_autofill/browser/autofill_provider.h
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_ANDROID_AUTOFILL_BROWSER_AUTOFILL_PROVIDER_H_
#define COMPONENTS_ANDROID_AUTOFILL_BROWSER_AUTOFILL_PROVIDER_H_
+#include "base/memory/raw_ptr.h"
#include "base/time/time.h"
#include "components/autofill/core/common/form_data.h"
#include "components/autofill/core/common/mojom/autofill_types.mojom.h"
@@ -101,16 +102,9 @@ class AutofillProvider : public content::WebContentsUserData<AutofillProvider> {
explicit AutofillProvider(content::WebContents* web_contents);
friend class content::WebContentsUserData<AutofillProvider>;
-#ifdef UNIT_TEST
- // For the unit tests where WebContents isn't available.
- AutofillProvider() = default;
-#endif // UNIT_TEST
-
- content::WebContents* web_contents() { return web_contents_; }
+ content::WebContents* web_contents() { return &GetWebContents(); }
private:
- content::WebContents* web_contents_;
-
WEB_CONTENTS_USER_DATA_KEY_DECL();
};
diff --git a/chromium/components/android_autofill/browser/autofill_provider_android.cc b/chromium/components/android_autofill/browser/autofill_provider_android.cc
index ec56956d55b..f8b9fe7708c 100644
--- a/chromium/components/android_autofill/browser/autofill_provider_android.cc
+++ b/chromium/components/android_autofill/browser/autofill_provider_android.cc
@@ -53,12 +53,6 @@ static jlong JNI_AutofillProvider_Init(
AutofillProviderAndroid::Create(env, jcaller, web_contents));
}
-static jboolean JNI_AutofillProvider_IsQueryServerFieldTypesEnabled(
- JNIEnv* env) {
- return base::FeatureList::IsEnabled(
- features::kAndroidAutofillQueryServerFieldTypes);
-}
-
// Static
AutofillProviderAndroid* AutofillProviderAndroid::Create(
JNIEnv* env,
diff --git a/chromium/components/android_autofill/browser/autofill_provider_unittest.cc b/chromium/components/android_autofill/browser/autofill_provider_unittest.cc
index 0f76356223a..05685586c9e 100644
--- a/chromium/components/android_autofill/browser/autofill_provider_unittest.cc
+++ b/chromium/components/android_autofill/browser/autofill_provider_unittest.cc
@@ -2,8 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/memory/raw_ptr.h"
#include "components/android_autofill/browser/android_autofill_manager.h"
#include "components/android_autofill/browser/test_autofill_provider.h"
+#include "content/public/test/browser_task_environment.h"
+#include "content/public/test/test_browser_context.h"
+#include "content/public/test/web_contents_tester.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace autofill {
@@ -29,6 +33,9 @@ class AndroidAutofillManagerTestHelper : public AndroidAutofillManager {
class AutofillProviderTestHelper : public TestAutofillProvider {
public:
+ explicit AutofillProviderTestHelper(content::WebContents* web_contents)
+ : TestAutofillProvider(web_contents) {}
+
bool HasServerPrediction() const { return manager_->has_server_prediction(); }
private:
@@ -44,14 +51,17 @@ class AutofillProviderTestHelper : public TestAutofillProvider {
void OnServerQueryRequestError(AndroidAutofillManager* manager,
FormSignature form_signature) override {}
- AndroidAutofillManager* manager_;
+ raw_ptr<AndroidAutofillManager> manager_;
};
class AutofillProviderTest : public testing::Test {
public:
void SetUp() override {
+ web_contents_ = content::WebContentsTester::CreateTestWebContents(
+ &browser_context_, nullptr);
+ // Owned by WebContents.
autofill_provider_test_helper_ =
- std::make_unique<AutofillProviderTestHelper>();
+ new AutofillProviderTestHelper(web_contents_.get());
android_autofill_manager_test_helper_ =
std::make_unique<AndroidAutofillManagerTestHelper>(
autofill_provider_test_helper_.get());
@@ -66,7 +76,11 @@ class AutofillProviderTest : public testing::Test {
}
private:
- std::unique_ptr<AutofillProviderTestHelper> autofill_provider_test_helper_;
+ content::BrowserTaskEnvironment task_environment_;
+ content::TestBrowserContext browser_context_;
+ std::unique_ptr<content::WebContents> web_contents_;
+ // Owned by WebContents.
+ raw_ptr<AutofillProviderTestHelper> autofill_provider_test_helper_;
std::unique_ptr<AndroidAutofillManagerTestHelper>
android_autofill_manager_test_helper_;
};
diff --git a/chromium/components/android_autofill/browser/form_data_android.cc b/chromium/components/android_autofill/browser/form_data_android.cc
index 71beba4d77d..67dce6abc16 100644
--- a/chromium/components/android_autofill/browser/form_data_android.cc
+++ b/chromium/components/android_autofill/browser/form_data_android.cc
@@ -45,8 +45,8 @@ ScopedJavaLocalRef<jobject> FormDataAndroid::GetJavaPeer(
UpdateFieldTypes(*form_structure);
ScopedJavaLocalRef<jstring> jname =
ConvertUTF16ToJavaString(env, form_.name);
- ScopedJavaLocalRef<jstring> jhost =
- ConvertUTF8ToJavaString(env, form_.url.GetOrigin().spec());
+ ScopedJavaLocalRef<jstring> jhost = ConvertUTF8ToJavaString(
+ env, form_.url.DeprecatedGetOriginAsURL().spec());
obj = Java_FormData_createFormData(env, reinterpret_cast<intptr_t>(this),
jname, jhost, form_.fields.size());
java_ref_ = JavaObjectWeakGlobalRef(env, obj);
diff --git a/chromium/components/android_autofill/browser/form_field_data_android.h b/chromium/components/android_autofill/browser/form_field_data_android.h
index 9ebd98884a7..1d5a8f353ff 100644
--- a/chromium/components/android_autofill/browser/form_field_data_android.h
+++ b/chromium/components/android_autofill/browser/form_field_data_android.h
@@ -7,6 +7,7 @@
#include "base/android/jni_weak_ref.h"
#include "base/android/scoped_java_ref.h"
+#include "base/memory/raw_ptr.h"
#include "components/autofill/core/browser/autofill_type.h"
#include "components/autofill/core/common/form_field_data.h"
@@ -38,7 +39,7 @@ class FormFieldDataAndroid {
std::vector<AutofillType> server_predictions_;
// Not owned.
- FormFieldData* field_ptr_;
+ raw_ptr<FormFieldData> field_ptr_;
JavaObjectWeakGlobalRef java_ref_;
};
diff --git a/chromium/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java b/chromium/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java
index f09e696c20f..9cf929c4381 100644
--- a/chromium/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java
+++ b/chromium/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java
@@ -62,10 +62,6 @@ import java.util.ArrayList;
public class AutofillProvider {
private static final String TAG = "AutofillProvider";
- // This member is initialize at first use. Not access it directly, always through
- // isQueryServerFieldTypesEnabled().
- private static Boolean sIsQueryServerFieldTypesEnabled;
-
private static class FocusField {
public final short fieldIndex;
public final Rect absBound;
@@ -134,16 +130,13 @@ public class AutofillProvider {
.addAttribute("label", field.mLabel)
.addAttribute("ua-autofill-hints", field.mHeuristicType)
.addAttribute("id", field.mId);
-
- if (isQueryServerFieldTypesEnabled()) {
- builder.addAttribute("crowdsourcing-autofill-hints", field.getServerType());
- builder.addAttribute("computed-autofill-hints", field.getComputedType());
- // Compose multiple predictions to a string separated by ','.
- String[] predictions = field.getServerPredictions();
- if (predictions != null && predictions.length > 0) {
- builder.addAttribute("crowdsourcing-predictions-autofill-hints",
- String.join(",", predictions));
- }
+ builder.addAttribute("crowdsourcing-autofill-hints", field.getServerType());
+ builder.addAttribute("computed-autofill-hints", field.getComputedType());
+ // Compose multiple predictions to a string separated by ','.
+ String[] predictions = field.getServerPredictions();
+ if (predictions != null && predictions.length > 0) {
+ builder.addAttribute("crowdsourcing-predictions-autofill-hints",
+ String.join(",", predictions));
}
switch (field.getControlType()) {
case FormFieldData.ControlType.LIST:
@@ -383,12 +376,9 @@ public class AutofillProvider {
bundle.putCharSequence("VIRTUAL_STRUCTURE_PROVIDER_NAME", mProviderName);
bundle.putCharSequence(
"VIRTUAL_STRUCTURE_PROVIDER_VERSION", VersionConstants.PRODUCT_VERSION);
-
- if (isQueryServerFieldTypesEnabled()) {
- AutofillHintsService autofillHintsService = mRequest.getAutofillHintsService();
- if (autofillHintsService != null) {
- bundle.putBinder("AUTOFILL_HINTS_SERVICE", autofillHintsService.getBinder());
- }
+ AutofillHintsService autofillHintsService = mRequest.getAutofillHintsService();
+ if (autofillHintsService != null) {
+ bundle.putBinder("AUTOFILL_HINTS_SERVICE", autofillHintsService.getBinder());
}
}
mRequest.fillViewStructure(structure);
@@ -816,23 +806,13 @@ public class AutofillProvider {
@CalledByNative
private void onQueryDone(boolean success) {
- if (mRequest != null) {
- mRequest.onQueryDone(success);
- }
+ if (mRequest == null) return;
+ mRequest.onQueryDone(success);
mAutofillUMA.onServerTypeAvailable(
- (success && mRequest != null) ? mRequest.mFormData : null,
- /*afterSessionStarted*/ true);
+ success ? mRequest.mFormData : null, /*afterSessionStarted*/ true);
mAutofillManager.onQueryDone(success);
}
- public static boolean isQueryServerFieldTypesEnabled() {
- if (sIsQueryServerFieldTypesEnabled == null) {
- sIsQueryServerFieldTypesEnabled =
- AutofillProviderJni.get().isQueryServerFieldTypesEnabled();
- }
- return sIsQueryServerFieldTypesEnabled;
- }
-
private void forceNotifyFormValues() {
if (mRequest == null) return;
for (int i = 0; i < mRequest.getFieldCount(); ++i) {
@@ -924,6 +904,5 @@ public class AutofillProvider {
long nativeAutofillProviderAndroid, AutofillProvider caller, String value);
void setAnchorViewRect(long nativeAutofillProviderAndroid, AutofillProvider caller,
View anchorView, float x, float y, float width, float height);
- boolean isQueryServerFieldTypesEnabled();
}
}
diff --git a/chromium/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProviderUMA.java b/chromium/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProviderUMA.java
index 3f4ea071c87..f71250b0cb7 100644
--- a/chromium/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProviderUMA.java
+++ b/chromium/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProviderUMA.java
@@ -144,7 +144,7 @@ public class AutofillProviderUMA {
if (mSuggestionTimeMillis != null) {
recordTimesHistogram(UMA_AUTOFILL_SUGGESTION_TIME, mSuggestionTimeMillis);
}
- if (!mServerPredictionAvailable && AutofillProvider.isQueryServerFieldTypesEnabled()) {
+ if (!mServerPredictionAvailable) {
RecordHistogram.recordEnumeratedHistogram(
UMA_AUTOFILL_SERVER_PREDICTION_AVAILABILITY,
SERVER_PREDICTION_NOT_AVAILABLE, SERVER_PREDICTION_AVAILABLE_COUNT);
@@ -152,7 +152,6 @@ public class AutofillProviderUMA {
}
public void onServerTypeAvailable(FormData formData, boolean afterSessionStarted) {
- if (!AutofillProvider.isQueryServerFieldTypesEnabled()) return;
mServerPredictionAvailable = true;
RecordHistogram.recordEnumeratedHistogram(UMA_AUTOFILL_SERVER_PREDICTION_AVAILABILITY,
afterSessionStarted ? SERVER_PREDICTION_AVAILABLE_AFTER_SESSION_STARTS
diff --git a/chromium/components/android_autofill/browser/test_autofill_provider.h b/chromium/components/android_autofill/browser/test_autofill_provider.h
index 807ac439192..dcb28fa9815 100644
--- a/chromium/components/android_autofill/browser/test_autofill_provider.h
+++ b/chromium/components/android_autofill/browser/test_autofill_provider.h
@@ -13,11 +13,6 @@ namespace autofill {
class TestAutofillProvider : public AutofillProvider {
public:
-#ifdef UNIT_TEST
- // For unit testing only.
- TestAutofillProvider() = default;
-#endif // UNIT_TEST
-
// Create a instance owned by |web_contents|.
explicit TestAutofillProvider(content::WebContents* web_contents)
: AutofillProvider(web_contents) {}