Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(234)

Side by Side Diff: components/autofill/content/renderer/form_autofill_util.cc

Issue 2640783002: [Password Generation] Send id attribute to server for HTML based form classifier (Closed)
Patch Set: Fixed failed test Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/autofill/content/renderer/form_autofill_util.h" 5 #include "components/autofill/content/renderer/form_autofill_util.h"
6 6
7 #include <map> 7 #include <map>
8 #include <memory> 8 #include <memory>
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
(...skipping 1348 matching lines...) Expand 10 before | Expand all | Expand 10 after
1359 } 1359 }
1360 1360
1361 void WebFormControlElementToFormField( 1361 void WebFormControlElementToFormField(
1362 const WebFormControlElement& element, 1362 const WebFormControlElement& element,
1363 const FieldValueAndPropertiesMaskMap* field_value_and_properties_map, 1363 const FieldValueAndPropertiesMaskMap* field_value_and_properties_map,
1364 ExtractMask extract_mask, 1364 ExtractMask extract_mask,
1365 FormFieldData* field) { 1365 FormFieldData* field) {
1366 DCHECK(field); 1366 DCHECK(field);
1367 DCHECK(!element.isNull()); 1367 DCHECK(!element.isNull());
1368 CR_DEFINE_STATIC_LOCAL(WebString, kAutocomplete, ("autocomplete")); 1368 CR_DEFINE_STATIC_LOCAL(WebString, kAutocomplete, ("autocomplete"));
1369 CR_DEFINE_STATIC_LOCAL(WebString, kId, ("id"));
1369 CR_DEFINE_STATIC_LOCAL(WebString, kRole, ("role")); 1370 CR_DEFINE_STATIC_LOCAL(WebString, kRole, ("role"));
1370 CR_DEFINE_STATIC_LOCAL(WebString, kPlaceholder, ("placeholder")); 1371 CR_DEFINE_STATIC_LOCAL(WebString, kPlaceholder, ("placeholder"));
1371 CR_DEFINE_STATIC_LOCAL(WebString, kClass, ("class")); 1372 CR_DEFINE_STATIC_LOCAL(WebString, kClass, ("class"));
1372 1373
1373 // The label is not officially part of a WebFormControlElement; however, the 1374 // The label is not officially part of a WebFormControlElement; however, the
1374 // labels for all form control elements are scraped from the DOM and set in 1375 // labels for all form control elements are scraped from the DOM and set in
1375 // WebFormElementToFormData. 1376 // WebFormElementToFormData.
1376 field->name = element.nameForAutofill(); 1377 field->name = element.nameForAutofill();
1378 base::string16 id = element.getAttribute(kId);
1379 if (id != field->name)
sebsg 2017/01/18 19:22:49 Can you also just make a quick note or refer to HT
kolos1 2017/01/19 11:09:16 Done. Also removed the comment about the label. A
1380 field->id = id;
1377 field->form_control_type = element.formControlType().utf8(); 1381 field->form_control_type = element.formControlType().utf8();
1378 field->autocomplete_attribute = element.getAttribute(kAutocomplete).utf8(); 1382 field->autocomplete_attribute = element.getAttribute(kAutocomplete).utf8();
1379 if (field->autocomplete_attribute.size() > kMaxDataLength) { 1383 if (field->autocomplete_attribute.size() > kMaxDataLength) {
1380 // Discard overly long attribute values to avoid DOS-ing the browser 1384 // Discard overly long attribute values to avoid DOS-ing the browser
1381 // process. However, send over a default string to indicate that the 1385 // process. However, send over a default string to indicate that the
1382 // attribute was present. 1386 // attribute was present.
1383 field->autocomplete_attribute = "x-max-data-length-exceeded"; 1387 field->autocomplete_attribute = "x-max-data-length-exceeded";
1384 } 1388 }
1385 if (base::LowerCaseEqualsASCII( 1389 if (base::LowerCaseEqualsASCII(
1386 base::StringPiece16(element.getAttribute(kRole)), "presentation")) 1390 base::StringPiece16(element.getAttribute(kRole)), "presentation"))
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
1806 // Zero selection start is for password manager, which can show usernames 1810 // Zero selection start is for password manager, which can show usernames
1807 // that do not begin with the user input value. 1811 // that do not begin with the user input value.
1808 selection_start = (offset == base::string16::npos) ? 0 : offset; 1812 selection_start = (offset == base::string16::npos) ? 0 : offset;
1809 } 1813 }
1810 1814
1811 input_element->setSelectionRange(selection_start, suggestion.length()); 1815 input_element->setSelectionRange(selection_start, suggestion.length());
1812 } 1816 }
1813 1817
1814 } // namespace form_util 1818 } // namespace form_util
1815 } // namespace autofill 1819 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698