Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/renderer/autofill/form_autofill_util.h" | 5 #include "chrome/renderer/autofill/form_autofill_util.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/scoped_vector.h" | 10 #include "base/memory/scoped_vector.h" |
| (...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 563 bool IsTextInput(const WebInputElement* element) { | 563 bool IsTextInput(const WebInputElement* element) { |
| 564 if (!element) | 564 if (!element) |
| 565 return false; | 565 return false; |
| 566 | 566 |
| 567 return element->isTextField() && !element->isPasswordField(); | 567 return element->isTextField() && !element->isPasswordField(); |
| 568 } | 568 } |
| 569 | 569 |
| 570 bool IsSelectElement(const WebFormControlElement& element) { | 570 bool IsSelectElement(const WebFormControlElement& element) { |
| 571 // Is static for improving performance. | 571 // Is static for improving performance. |
| 572 CR_DEFINE_STATIC_LOCAL(WebString, kSelectOne, ("select-one")); | 572 CR_DEFINE_STATIC_LOCAL(WebString, kSelectOne, ("select-one")); |
| 573 // TODO: Fix issue 172665 by avoiding string comparision. | |
|
Ilya Sherman
2013/01/28 21:14:53
TODO's should have names associated with them, e.g
Raman Kakilate
2013/01/29 21:49:27
Removed the comment as issue is filed.
| |
| 573 return element.formControlType() == kSelectOne; | 574 return element.formControlType() == kSelectOne; |
| 574 } | 575 } |
| 575 | 576 |
| 576 bool IsCheckableElement(const WebInputElement* element) { | 577 bool IsCheckableElement(const WebInputElement* element) { |
| 577 // Is static for improving performance. | |
| 578 CR_DEFINE_STATIC_LOCAL(WebString, kRadio, ("radio")); | |
| 579 CR_DEFINE_STATIC_LOCAL(WebString, kCheckbox, ("checkbox")); | |
| 580 | |
| 581 if (!element) | 578 if (!element) |
| 582 return false; | 579 return false; |
| 583 | 580 |
| 584 WebString formControlType = element->formControlType(); | 581 return element->isCheckbox() || element->isRadioButton(); |
| 585 return formControlType == kCheckbox || formControlType == kRadio; | |
| 586 } | 582 } |
| 587 | 583 |
| 588 bool IsAutofillableInputElement(const WebInputElement* element) { | 584 bool IsAutofillableInputElement(const WebInputElement* element) { |
| 589 // TODO(ramankk): Uncomment IsCheckableElement part once we have solution | 585 return IsTextInput(element) || IsCheckableElement(element); |
| 590 // for the observed performance regression. | |
| 591 return IsTextInput(element); // || IsCheckableElement(element); | |
| 592 } | 586 } |
| 593 | 587 |
| 594 const string16 GetFormIdentifier(const WebFormElement& form) { | 588 const string16 GetFormIdentifier(const WebFormElement& form) { |
| 595 string16 identifier = form.name(); | 589 string16 identifier = form.name(); |
| 596 if (identifier.empty()) | 590 if (identifier.empty()) |
| 597 identifier = form.getAttribute(WebString("id")); | 591 identifier = form.getAttribute(WebString("id")); |
| 598 | 592 |
| 599 return identifier; | 593 return identifier; |
| 600 } | 594 } |
| 601 | 595 |
| (...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 987 continue; | 981 continue; |
| 988 | 982 |
| 989 if (input_element->isAutofilled()) | 983 if (input_element->isAutofilled()) |
| 990 return true; | 984 return true; |
| 991 } | 985 } |
| 992 | 986 |
| 993 return false; | 987 return false; |
| 994 } | 988 } |
| 995 | 989 |
| 996 } // namespace autofill | 990 } // namespace autofill |
| OLD | NEW |