Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 718 void ExtractAutofillableElements( | 718 void ExtractAutofillableElements( |
| 719 const WebFormElement& form_element, | 719 const WebFormElement& form_element, |
| 720 RequirementsMask requirements, | 720 RequirementsMask requirements, |
| 721 std::vector<WebFormControlElement>* autofillable_elements) { | 721 std::vector<WebFormControlElement>* autofillable_elements) { |
| 722 WebVector<WebFormControlElement> control_elements; | 722 WebVector<WebFormControlElement> control_elements; |
| 723 form_element.getFormControlElements(control_elements); | 723 form_element.getFormControlElements(control_elements); |
| 724 | 724 |
| 725 autofillable_elements->clear(); | 725 autofillable_elements->clear(); |
| 726 for (size_t i = 0; i < control_elements.size(); ++i) { | 726 for (size_t i = 0; i < control_elements.size(); ++i) { |
| 727 WebFormControlElement element = control_elements[i]; | 727 WebFormControlElement element = control_elements[i]; |
| 728 if (!IsAutofillableElement(element)) | 728 if (!IsAutofillableElement(element) || |
| 729 element.isReadOnly() || | |
| 730 !element.isEnabled()) | |
|
Mike West
2014/10/02 12:49:57
Why not fold this into IsAutofillable{Input?}Eleme
| |
| 729 continue; | 731 continue; |
| 730 | 732 |
| 731 if (requirements & REQUIRE_AUTOCOMPLETE) { | 733 if (requirements & REQUIRE_AUTOCOMPLETE) { |
| 732 // TODO(isherman): WebKit currently doesn't handle the autocomplete | 734 // TODO(isherman): WebKit currently doesn't handle the autocomplete |
| 733 // attribute for select or textarea elements, but it probably should. | 735 // attribute for select or textarea elements, but it probably should. |
| 734 WebInputElement* input_element = toWebInputElement(&control_elements[i]); | 736 WebInputElement* input_element = toWebInputElement(&control_elements[i]); |
| 735 if (IsAutofillableInputElement(input_element) && | 737 if (IsAutofillableInputElement(input_element) && |
| 736 !SatisfiesRequireAutocomplete(*input_element)) | 738 !SatisfiesRequireAutocomplete(*input_element)) |
| 737 continue; | 739 continue; |
| 738 } | 740 } |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 859 WebVector<WebFormControlElement> control_elements; | 861 WebVector<WebFormControlElement> control_elements; |
| 860 form_element.getFormControlElements(control_elements); | 862 form_element.getFormControlElements(control_elements); |
| 861 | 863 |
| 862 // A vector of bools that indicate whether each field in the form meets the | 864 // A vector of bools that indicate whether each field in the form meets the |
| 863 // requirements and thus will be in the resulting |form|. | 865 // requirements and thus will be in the resulting |form|. |
| 864 std::vector<bool> fields_extracted(control_elements.size(), false); | 866 std::vector<bool> fields_extracted(control_elements.size(), false); |
| 865 | 867 |
| 866 for (size_t i = 0; i < control_elements.size(); ++i) { | 868 for (size_t i = 0; i < control_elements.size(); ++i) { |
| 867 const WebFormControlElement& control_element = control_elements[i]; | 869 const WebFormControlElement& control_element = control_elements[i]; |
| 868 | 870 |
| 869 if (!IsAutofillableElement(control_element)) | 871 if (!IsAutofillableElement(control_element) || |
| 872 control_element.isReadOnly() || | |
| 873 !control_element.isEnabled()) | |
| 870 continue; | 874 continue; |
| 871 | 875 |
| 872 const WebInputElement* input_element = toWebInputElement(&control_element); | 876 const WebInputElement* input_element = toWebInputElement(&control_element); |
| 873 if (requirements & REQUIRE_AUTOCOMPLETE && | 877 if (requirements & REQUIRE_AUTOCOMPLETE && |
| 874 IsAutofillableInputElement(input_element) && | 878 IsAutofillableInputElement(input_element) && |
| 875 !SatisfiesRequireAutocomplete(*input_element)) | 879 !SatisfiesRequireAutocomplete(*input_element)) |
| 876 continue; | 880 continue; |
| 877 | 881 |
| 878 // Create a new FormFieldData, fill it out and map it to the field's name. | 882 // Create a new FormFieldData, fill it out and map it to the field's name. |
| 879 FormFieldData* form_field = new FormFieldData; | 883 FormFieldData* form_field = new FormFieldData; |
| (...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1154 | 1158 |
| 1155 gfx::RectF GetScaledBoundingBox(float scale, WebFormControlElement* element) { | 1159 gfx::RectF GetScaledBoundingBox(float scale, WebFormControlElement* element) { |
| 1156 gfx::Rect bounding_box(element->boundsInViewportSpace()); | 1160 gfx::Rect bounding_box(element->boundsInViewportSpace()); |
| 1157 return gfx::RectF(bounding_box.x() * scale, | 1161 return gfx::RectF(bounding_box.x() * scale, |
| 1158 bounding_box.y() * scale, | 1162 bounding_box.y() * scale, |
| 1159 bounding_box.width() * scale, | 1163 bounding_box.width() * scale, |
| 1160 bounding_box.height() * scale); | 1164 bounding_box.height() * scale); |
| 1161 } | 1165 } |
| 1162 | 1166 |
| 1163 } // namespace autofill | 1167 } // namespace autofill |
| OLD | NEW |