From 152c76a49742732b72d061032979d5b27ca2af28 Mon Sep 17 00:00:00 2001 From: "dhollowa@chromium.org" Date: Thu, 8 Apr 2010 15:49:10 +0000 Subject: AutoFill Re-enable labeling input elements. Over-reverted. Adding back in. BUG=40306 TEST=FormManagerTest.* TBR=jhawkins@chromium.org Related to: http://codereview.chromium.org/1519026 Committed revision 43922. Review URL: http://codereview.chromium.org/1578022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43948 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/renderer/form_manager.cc | 19 +++++++++++++++++++ chrome/renderer/form_manager_unittest.cc | 3 +-- 2 files changed, 20 insertions(+), 2 deletions(-) (limited to 'chrome/renderer') diff --git a/chrome/renderer/form_manager.cc b/chrome/renderer/form_manager.cc index 042edab..98c5513 100644 --- a/chrome/renderer/form_manager.cc +++ b/chrome/renderer/form_manager.cc @@ -148,6 +148,25 @@ bool FormManager::WebFormElementToFormData(const WebFormElement& element, if (form_fields.empty()) return false; + // Loop through the label elements inside the form element. For each label + // element, get the corresponding form control element, use the form control + // element's name as a key into the map to find the + // previously created FormField and set the FormField's label to the + // innerText() of the label element. + WebNodeList labels = element.getElementsByTagName("label"); + for (unsigned i = 0; i < labels.length(); ++i) { + WebLabelElement label = labels.item(i).toElement(); + WebFormControlElement field_element = + label.correspondingControl().toElement(); + if (field_element.isNull() || !field_element.isFormControlElement()) + continue; + + std::map::iterator iter = + name_map.find(field_element.nameForAutofill()); + if (iter != name_map.end()) + iter->second->set_label(label.innerText()); + } + // Copy the created FormFields into the resulting FormData object. for (ScopedVector::const_iterator iter = form_fields.begin(); iter != form_fields.end(); ++iter) { diff --git a/chrome/renderer/form_manager_unittest.cc b/chrome/renderer/form_manager_unittest.cc index 0bf4ae3b..281ff16 100644 --- a/chrome/renderer/form_manager_unittest.cc +++ b/chrome/renderer/form_manager_unittest.cc @@ -422,8 +422,7 @@ TEST_F(FormManagerTest, Reset) { ASSERT_EQ(0U, forms.size()); } -// http://crbug.com/40306 -TEST_F(FormManagerTest, DISABLED_Labels) { +TEST_F(FormManagerTest, Labels) { LoadHTML("
" " " " " -- cgit v1.1