1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef WEBKIT_GLUE_FORM_FIELD_H_ 6 #define WEBKIT_GLUE_FORM_FIELD_H_ 7 8 #include <vector> 9 10 #ifdef ANDROID 11 #include "base/base_api.h" 12 #endif 13 #include "base/string16.h" 14 #ifndef ANDROID 15 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFormControlElement.h" 16 #endif 17 18 namespace webkit_glue { 19 20 // Stores information about a field in a form. 21 struct 22 #ifdef ANDROID 23 BASE_API 24 #endif 25 FormField { 26 FormField(); 27 #ifndef ANDROID 28 explicit FormField(WebKit::WebFormControlElement element); 29 #endif 30 FormField(const string16& label, 31 const string16& name, 32 const string16& value, 33 const string16& form_control_type, 34 int max_length, 35 bool is_autofilled); 36 virtual ~FormField(); 37 38 // Equality tests for identity which does not include |value_| or |size_|. 39 // Use |StrictlyEqualsHack| method to test all members. 40 // TODO(dhollowa): These operators need to be revised when we implement field 41 // ids. 42 bool operator==(const FormField& field) const; 43 bool operator!=(const FormField& field) const; 44 45 // Test equality of all data members. 46 // TODO(dhollowa): This will be removed when we implement field ids. 47 bool StrictlyEqualsHack(const FormField& field) const; 48 49 string16 label; 50 string16 name; 51 string16 value; 52 string16 form_control_type; 53 int max_length; 54 bool is_autofilled; 55 std::vector<string16> option_strings; 56 }; 57 58 // So we can compare FormFields with EXPECT_EQ(). 59 std::ostream& operator<<(std::ostream& os, const FormField& field); 60 61 } // namespace webkit_glue 62 63 #endif // WEBKIT_GLUE_FORM_FIELD_H_ 64