1dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef CHROME_BROWSER_AUTOFILL_CREDIT_CARD_FIELD_H_ 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define CHROME_BROWSER_AUTOFILL_CREDIT_CARD_FIELD_H_ 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <vector> 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/basictypes.h" 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/autofill/autofill_type.h" 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/autofill/form_field.h" 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 15dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenclass AutofillField; 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass CreditCardField : public FormField { 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // FormField implementation: 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual bool GetFieldInfo(FieldTypeMap* field_type_map) const; 21731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick virtual FormFieldType GetFormFieldType() const; 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch static CreditCardField* Parse( 24dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen std::vector<AutofillField*>::const_iterator* iter, 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch bool is_ecml); 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private: 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch CreditCardField(); 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 30dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen AutofillField* cardholder_; // Optional. 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Occasionally pages have separate fields for the cardholder's first and 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // last names; for such pages cardholder_ holds the first name field and 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // we store the last name field here. 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // (We could store an embedded NameField object here, but we don't do so 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // because the text patterns for matching a cardholder name are different 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // than for ordinary names, and because cardholder names never have titles, 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // middle names or suffixes.) 39dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen AutofillField* cardholder_last_; 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 41dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen AutofillField* type_; // Optional. TODO(jhawkins): Parse the select control. 42dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen AutofillField* number_; // Required. 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 44201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch // The 3-digit card verification number; we don't currently fill this. 45dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen AutofillField* verification_; 46201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Both required. TODO(jhawkins): Parse the select control. 48dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen AutofillField* expiration_month_; 49dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen AutofillField* expiration_year_; 50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch DISALLOW_COPY_AND_ASSIGN(CreditCardField); 52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif // CHROME_BROWSER_AUTOFILL_CREDIT_CARD_FIELD_H_ 55