1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file. 4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_ADDRESS_I18N_H_ 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define COMPONENTS_AUTOFILL_CORE_BROWSER_ADDRESS_I18N_H_ 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/callback_forward.h" 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/strings/string16.h" 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/autofill/core/browser/field_types.h" 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_field.h" 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace i18n { 15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace addressinput { 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)struct AddressData; 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace autofill { 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class AutofillProfile; 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class AutofillType; 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace i18n { 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Creates an AddressData object for internationalized address display or 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// validation using |get_info| for field values. 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)scoped_ptr< ::i18n::addressinput::AddressData> CreateAddressData( 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const base::Callback<base::string16(const AutofillType&)>& get_info); 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Creates an |AddressData| from |profile|. 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)scoped_ptr< ::i18n::addressinput::AddressData> 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) CreateAddressDataFromAutofillProfile(const AutofillProfile& profile, 35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const std::string& app_locale); 36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Returns the corresponding Autofill server type for |field|. 38116680a4aac90f2aa7413d9095a592090648e557Ben MurdochServerFieldType TypeForField(::i18n::addressinput::AddressField field, 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch bool billing); 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Sets |field| to the corresponding address field for the Autofill 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// |server_type|. Returns |true| if |server_type| can be represented as an 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// address field. The |field| parameter can be NULL. 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool FieldForType(ServerFieldType server_type, 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ::i18n::addressinput::AddressField* field); 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace i18n 48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace autofill 49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif // COMPONENTS_AUTOFILL_CORE_BROWSER_ADDRESS_I18N_H_ 51