Index: chrome/renderer/form_manager.cc |
diff --git a/chrome/renderer/form_manager.cc b/chrome/renderer/form_manager.cc |
index 8a5d5596f88ac4ad8c9c169014f5a45670610e3d..4c731a9718e4380712f222e59e996ad718e75f67 100644 |
--- a/chrome/renderer/form_manager.cc |
+++ b/chrome/renderer/form_manager.cc |
@@ -330,6 +330,18 @@ void FormManager::WebFormControlElementToFormField( |
WebFormControlElement& e = const_cast<WebFormControlElement&>(element); |
WebSelectElement select_element = e.to<WebSelectElement>(); |
value = select_element.value(); |
+ |
+ // Convert the |select_element| value to text if requested. |
+ if (extract_mask & EXTRACT_TEXT) { |
+ WebVector<WebElement> list_items = select_element.listItems(); |
+ for (size_t i = 0; i < list_items.size(); ++i) { |
+ if (list_items[i].hasTagName("option") && |
+ list_items[i].to<WebOptionElement>().value() == value) { |
+ value = list_items[i].to<WebOptionElement>().text(); |
James Hawkins
2010/11/16 18:03:12
This overwrites the value of the selected option,
dhollowa
2010/11/16 19:25:57
Yes, I verified this case. We only send the |text
|
+ break; |
+ } |
+ } |
+ } |
} |
// TODO(jhawkins): This is a temporary stop-gap measure designed to prevent |