Commit fb743598 authored by Christoph Schwering's avatar Christoph Schwering Committed by Commit Bot

[Autofill] Cleaned up autofill validation functions.

This cosmetic CL rewrites the validation functions
for autofill data in a declarative way.

Bug: 1007974
Change-Id: I99f8171caf67b3ebc711afe2cc231f73eb310684
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2440873Reviewed-by: default avatarMatthias Körber <koerber@google.com>
Commit-Queue: Christoph Schwering <schwering@google.com>
Cr-Commit-Position: refs/heads/master@{#830618}
parent a061eada
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include "components/autofill/core/common/autofill_data_validation.h" #include "components/autofill/core/common/autofill_data_validation.h"
#include "base/ranges/algorithm.h"
#include "components/autofill/core/common/form_data.h" #include "components/autofill/core/common/form_data.h"
#include "components/autofill/core/common/form_field_data.h" #include "components/autofill/core/common/form_field_data.h"
#include "components/autofill/core/common/password_form_fill_data.h" #include "components/autofill/core/common/password_form_fill_data.h"
...@@ -38,60 +39,29 @@ bool IsValidFormFieldData(const FormFieldData& field) { ...@@ -38,60 +39,29 @@ bool IsValidFormFieldData(const FormFieldData& field) {
} }
bool IsValidFormData(const FormData& form) { bool IsValidFormData(const FormData& form) {
if (!IsValidString16(form.name) || !IsValidGURL(form.url) || return IsValidString16(form.name) && IsValidGURL(form.url) &&
!IsValidGURL(form.action)) IsValidGURL(form.action) && form.fields.size() <= kMaxListSize &&
return false; base::ranges::all_of(form.fields, &IsValidFormFieldData);
if (form.fields.size() > kMaxListSize)
return false;
for (const FormFieldData& field : form.fields) {
if (!IsValidFormFieldData(field))
return false;
}
return true;
} }
bool IsValidPasswordFormFillData(const PasswordFormFillData& form) { bool IsValidPasswordFormFillData(const PasswordFormFillData& form) {
if (!IsValidString16(form.name) || !IsValidGURL(form.url) || return IsValidString16(form.name) && IsValidGURL(form.url) &&
!IsValidGURL(form.action) || !IsValidFormFieldData(form.username_field) || IsValidGURL(form.action) &&
!IsValidFormFieldData(form.password_field) || IsValidFormFieldData(form.username_field) &&
!IsValidString(form.preferred_realm)) { IsValidFormFieldData(form.password_field) &&
return false; IsValidString(form.preferred_realm) &&
} base::ranges::all_of(form.additional_logins, [](const auto& login) {
return IsValidString16(login.username) &&
for (const auto& it : form.additional_logins) { IsValidString16(login.password) && IsValidString(login.realm);
if (!IsValidString16(it.username) || !IsValidString16(it.password) || });
!IsValidString(it.realm))
return false;
}
return true;
} }
bool IsValidString16Vector(const std::vector<base::string16>& v) { bool IsValidString16Vector(const std::vector<base::string16>& v) {
if (v.size() > kMaxListSize) return v.size() <= kMaxListSize && base::ranges::all_of(v, &IsValidString16);
return false;
for (const base::string16& str : v) {
if (!IsValidString16(str))
return false;
}
return true;
} }
bool IsValidFormDataVector(const std::vector<FormData>& v) { bool IsValidFormDataVector(const std::vector<FormData>& v) {
if (v.size() > kMaxListSize) return v.size() <= kMaxListSize && base::ranges::all_of(v, &IsValidFormData);
return false;
for (const FormData& form : v) {
if (!IsValidFormData(form))
return false;
}
return true;
} }
} // namespace autofill } // namespace autofill
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment