Commit 0d185496 authored by Ana-Cosmina Popescu's avatar Ana-Cosmina Popescu Committed by Commit Bot

Deprecate checksum_for_url in favor of a new checksum field inside AutofillRandomizedValue.

Bug: 1095605
Change-Id: Ic09d3f0fcc098ab1b19b9a09eba33a7de0e10ef5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2332579
Commit-Queue: Ana-Cosmina Popescu <anacosmina@google.com>
Reviewed-by: default avatarChristos Froussios <cfroussios@chromium.org>
Reviewed-by: default avatarMaxim Kolosovskiy  <kolos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#795401}
parent 61c64cb5
......@@ -2005,8 +2005,8 @@ TEST_P(AutofillUploadTest, RichMetadata) {
EXPECT_TRUE(upload.randomized_form_metadata().has_id());
EXPECT_TRUE(upload.randomized_form_metadata().has_name());
EXPECT_TRUE(upload.randomized_form_metadata().has_url());
ASSERT_TRUE(upload.randomized_form_metadata().has_checksum_for_url());
EXPECT_EQ(upload.randomized_form_metadata().checksum_for_url(), 3608731642);
ASSERT_TRUE(upload.randomized_form_metadata().url().has_checksum());
EXPECT_EQ(upload.randomized_form_metadata().url().checksum(), 3608731642);
EXPECT_EQ(3, upload.field_size());
for (const auto& f : upload.field()) {
ASSERT_TRUE(f.has_randomized_field_metadata());
......
......@@ -429,11 +429,16 @@ void EncodeRandomizedValue(const RandomizedEncoder& encoder,
FieldSignature field_signature,
base::StringPiece data_type,
base::StringPiece data_value,
bool include_checksum,
AutofillRandomizedValue* output) {
DCHECK(output);
output->set_encoding_type(encoder.encoding_type());
output->set_encoded_bits(
encoder.Encode(form_signature, field_signature, data_type, data_value));
if (include_checksum) {
DCHECK(data_type == RandomizedEncoder::FORM_URL);
output->set_checksum(StrToHash32Bit(data_value.data()));
}
}
void EncodeRandomizedValue(const RandomizedEncoder& encoder,
......@@ -441,9 +446,11 @@ void EncodeRandomizedValue(const RandomizedEncoder& encoder,
FieldSignature field_signature,
base::StringPiece data_type,
base::StringPiece16 data_value,
bool include_checksum,
AutofillRandomizedValue* output) {
EncodeRandomizedValue(encoder, form_signature, field_signature, data_type,
base::UTF16ToUTF8(data_value), output);
base::UTF16ToUTF8(data_value), include_checksum,
output);
}
void PopulateRandomizedFormMetadata(const RandomizedEncoder& encoder,
......@@ -455,12 +462,12 @@ void PopulateRandomizedFormMetadata(const RandomizedEncoder& encoder,
if (!form.id_attribute().empty()) {
EncodeRandomizedValue(encoder, form_signature, kNullFieldSignature,
RandomizedEncoder::FORM_ID, form.id_attribute(),
metadata->mutable_id());
/*include_checksum=*/false, metadata->mutable_id());
}
if (!form.name_attribute().empty()) {
EncodeRandomizedValue(encoder, form_signature, kNullFieldSignature,
RandomizedEncoder::FORM_NAME, form.name_attribute(),
metadata->mutable_name());
/*include_checksum=*/false, metadata->mutable_name());
}
for (const ButtonTitleInfo& e : form.button_titles()) {
......@@ -468,6 +475,7 @@ void PopulateRandomizedFormMetadata(const RandomizedEncoder& encoder,
DCHECK(!e.first.empty());
EncodeRandomizedValue(encoder, form_signature, kNullFieldSignature,
RandomizedEncoder::FORM_BUTTON_TITLES, e.first,
/*include_checksum=*/false,
button_title->mutable_title());
button_title->set_type(static_cast<ButtonTitleType>(e.second));
}
......@@ -475,8 +483,7 @@ void PopulateRandomizedFormMetadata(const RandomizedEncoder& encoder,
if (encoder.AnonymousUrlCollectionIsEnabled() && !full_source_url.empty()) {
EncodeRandomizedValue(encoder, form_signature, kNullFieldSignature,
RandomizedEncoder::FORM_URL, full_source_url,
metadata->mutable_url());
metadata->set_checksum_for_url(StrToHash32Bit(full_source_url));
/*include_checksum=*/true, metadata->mutable_url());
}
}
......@@ -490,43 +497,48 @@ void PopulateRandomizedFieldMetadata(
if (!field.id_attribute.empty()) {
EncodeRandomizedValue(encoder, form_signature, field_signature,
RandomizedEncoder::FIELD_ID, field.id_attribute,
metadata->mutable_id());
/*include_checksum=*/false, metadata->mutable_id());
}
if (!field.name_attribute.empty()) {
EncodeRandomizedValue(encoder, form_signature, field_signature,
RandomizedEncoder::FIELD_NAME, field.name_attribute,
metadata->mutable_name());
/*include_checksum=*/false, metadata->mutable_name());
}
if (!field.form_control_type.empty()) {
EncodeRandomizedValue(encoder, form_signature, field_signature,
RandomizedEncoder::FIELD_CONTROL_TYPE,
field.form_control_type, metadata->mutable_type());
field.form_control_type, /*include_checksum=*/false,
metadata->mutable_type());
}
if (!field.label.empty()) {
EncodeRandomizedValue(encoder, form_signature, field_signature,
RandomizedEncoder::FIELD_LABEL, field.label,
/*include_checksum=*/false,
metadata->mutable_label());
}
if (!field.aria_label.empty()) {
EncodeRandomizedValue(encoder, form_signature, field_signature,
RandomizedEncoder::FIELD_ARIA_LABEL, field.aria_label,
/*include_checksum=*/false,
metadata->mutable_aria_label());
}
if (!field.aria_description.empty()) {
EncodeRandomizedValue(encoder, form_signature, field_signature,
RandomizedEncoder::FIELD_ARIA_DESCRIPTION,
field.aria_description,
field.aria_description, /*include_checksum=*/false,
metadata->mutable_aria_description());
}
if (!field.css_classes.empty()) {
EncodeRandomizedValue(encoder, form_signature, field_signature,
RandomizedEncoder::FIELD_CSS_CLASS, field.css_classes,
/*include_checksum=*/false,
metadata->mutable_css_class());
}
if (!field.placeholder.empty()) {
EncodeRandomizedValue(encoder, form_signature, field_signature,
RandomizedEncoder::FIELD_PLACEHOLDER,
field.placeholder, metadata->mutable_placeholder());
field.placeholder, /*include_checksum=*/false,
metadata->mutable_placeholder());
}
}
......
......@@ -92,7 +92,7 @@ message AutofillRandomizedValue {
//
// BIT_K encodings:
// each randomized bit i in |encoded_bits| corresponds to bit k of the byte
// at the corresponsding offset i of the original metadata value, up to
// at the corresponding offset i of the original metadata value, up to
// i=64 (8 bytes).
//
// EVEN_BITS encoding:
......@@ -103,7 +103,7 @@ message AutofillRandomizedValue {
// each randomized bit i in |encoded_bits| corresponds to bit 2*i+1 of the
// original metadata value, up to i=256 (32 bytes).
//
// ALL_BITS encding:
// ALL_BITS encoding:
// each bit i in |encoded_bits| corresponds to bit i of the original
// metadata value, up to i=512 (64 bytes).
//
......@@ -115,6 +115,11 @@ message AutofillRandomizedValue {
// transmitted as noise. For all of the other encodings, the encoded bits
// does not encode any full bytes.
optional bytes encoded_bits = 2;
// 32-bit checksum before randomization (passed in clear text). Note that
// this value may not be present; for now, it is only stored for metadata
// values of type FORM_URL.
optional fixed32 checksum = 3;
}
// Describes how the button is implemented in HTML source. Corresponds to
......@@ -157,8 +162,7 @@ message AutofillRandomizedFormMetadata {
// Titles of form's buttons. Example: <input type="submit" value="XXXXX">
repeated ButtonTitle button_title = 5;
// Hash of the clear form URL, not randomized.
optional fixed32 checksum_for_url = 6;
reserved 6;
}
// The collection of autofill field metadata to be sent using randomization.
......
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