| Index: components/autofill/content/renderer/form_autofill_util.cc
|
| diff --git a/components/autofill/content/renderer/form_autofill_util.cc b/components/autofill/content/renderer/form_autofill_util.cc
|
| index bdfff0b43ba04c2254bdaed117018f7ec79c5ce6..ea4fe67abb132907d56241d1a9850168d97109ac 100644
|
| --- a/components/autofill/content/renderer/form_autofill_util.cc
|
| +++ b/components/autofill/content/renderer/form_autofill_util.cc
|
| @@ -927,11 +927,10 @@ void MatchLabelsAndFields(
|
| for (WebElement item = labels.firstItem(); !item.isNull();
|
| item = labels.nextItem()) {
|
| WebLabelElement label = item.to<WebLabelElement>();
|
| - WebFormControlElement field_element =
|
| - label.correspondingControl().to<WebFormControlElement>();
|
| + WebElement control = label.correspondingControl();
|
| FormFieldData* field_data = nullptr;
|
|
|
| - if (field_element.isNull()) {
|
| + if (control.isNull()) {
|
| // Sometimes site authors will incorrectly specify the corresponding
|
| // field element's name rather than its id, so we compensate here.
|
| base::string16 element_name = label.getAttribute(kFor);
|
| @@ -950,12 +949,12 @@ void MatchLabelsAndFields(
|
| }
|
| }
|
| }
|
| - } else if (!field_element.isFormControlElement() ||
|
| - field_element.formControlType() == kHidden) {
|
| - continue;
|
| - } else {
|
| + } else if (control.isFormControlElement()) {
|
| + WebFormControlElement form_control = control.to<WebFormControlElement>();
|
| + if (form_control.formControlType() == kHidden)
|
| + continue;
|
| // Typical case: look up |field_data| in |element_map|.
|
| - auto iter = element_map->find(field_element);
|
| + auto iter = element_map->find(form_control);
|
| if (iter == element_map->end())
|
| continue;
|
| field_data = iter->second;
|
|
|