Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(946)

Side by Side Diff: components/autofill/core/browser/address.cc

Issue 322453003: autocomplete: support address-line3, address-level{1,2,3} (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix test expectations Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/core/browser/address.h" 5 #include "components/autofill/core/browser/address.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <algorithm> 8 #include <algorithm>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 42
43 base::string16 Address::GetRawInfo(ServerFieldType type) const { 43 base::string16 Address::GetRawInfo(ServerFieldType type) const {
44 DCHECK_EQ(ADDRESS_HOME, AutofillType(type).group()); 44 DCHECK_EQ(ADDRESS_HOME, AutofillType(type).group());
45 switch (type) { 45 switch (type) {
46 case ADDRESS_HOME_LINE1: 46 case ADDRESS_HOME_LINE1:
47 return street_address_.size() > 0 ? street_address_[0] : base::string16(); 47 return street_address_.size() > 0 ? street_address_[0] : base::string16();
48 48
49 case ADDRESS_HOME_LINE2: 49 case ADDRESS_HOME_LINE2:
50 return street_address_.size() > 1 ? street_address_[1] : base::string16(); 50 return street_address_.size() > 1 ? street_address_[1] : base::string16();
51 51
52 case ADDRESS_HOME_LINE3:
53 return street_address_.size() > 2 ? street_address_[2] : base::string16();
54
52 case ADDRESS_HOME_DEPENDENT_LOCALITY: 55 case ADDRESS_HOME_DEPENDENT_LOCALITY:
53 return dependent_locality_; 56 return dependent_locality_;
54 57
55 case ADDRESS_HOME_CITY: 58 case ADDRESS_HOME_CITY:
56 return city_; 59 return city_;
57 60
58 case ADDRESS_HOME_STATE: 61 case ADDRESS_HOME_STATE:
59 return state_; 62 return state_;
60 63
61 case ADDRESS_HOME_ZIP: 64 case ADDRESS_HOME_ZIP:
(...skipping 24 matching lines...) Expand all
86 TrimStreetAddress(); 89 TrimStreetAddress();
87 break; 90 break;
88 91
89 case ADDRESS_HOME_LINE2: 92 case ADDRESS_HOME_LINE2:
90 if (street_address_.size() < 2) 93 if (street_address_.size() < 2)
91 street_address_.resize(2); 94 street_address_.resize(2);
92 street_address_[1] = value; 95 street_address_[1] = value;
93 TrimStreetAddress(); 96 TrimStreetAddress();
94 break; 97 break;
95 98
99 case ADDRESS_HOME_LINE3:
100 if (street_address_.size() < 3)
101 street_address_.resize(3);
102 street_address_[2] = value;
103 TrimStreetAddress();
104 break;
105
96 case ADDRESS_HOME_DEPENDENT_LOCALITY: 106 case ADDRESS_HOME_DEPENDENT_LOCALITY:
97 dependent_locality_ = value; 107 dependent_locality_ = value;
98 break; 108 break;
99 109
100 case ADDRESS_HOME_CITY: 110 case ADDRESS_HOME_CITY:
101 city_ = value; 111 city_ = value;
102 break; 112 break;
103 113
104 case ADDRESS_HOME_STATE: 114 case ADDRESS_HOME_STATE:
105 state_ = value; 115 state_ = value;
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 204
195 // Check to see if the |text| canonicalized as a country name is a match. 205 // Check to see if the |text| canonicalized as a country name is a match.
196 std::string country_code = AutofillCountry::GetCountryCode(text, app_locale); 206 std::string country_code = AutofillCountry::GetCountryCode(text, app_locale);
197 if (!country_code.empty() && country_code_ == country_code) 207 if (!country_code.empty() && country_code_ == country_code)
198 matching_types->insert(ADDRESS_HOME_COUNTRY); 208 matching_types->insert(ADDRESS_HOME_COUNTRY);
199 } 209 }
200 210
201 void Address::GetSupportedTypes(ServerFieldTypeSet* supported_types) const { 211 void Address::GetSupportedTypes(ServerFieldTypeSet* supported_types) const {
202 supported_types->insert(ADDRESS_HOME_LINE1); 212 supported_types->insert(ADDRESS_HOME_LINE1);
203 supported_types->insert(ADDRESS_HOME_LINE2); 213 supported_types->insert(ADDRESS_HOME_LINE2);
214 supported_types->insert(ADDRESS_HOME_LINE3);
204 supported_types->insert(ADDRESS_HOME_STREET_ADDRESS); 215 supported_types->insert(ADDRESS_HOME_STREET_ADDRESS);
205 supported_types->insert(ADDRESS_HOME_DEPENDENT_LOCALITY); 216 supported_types->insert(ADDRESS_HOME_DEPENDENT_LOCALITY);
206 supported_types->insert(ADDRESS_HOME_CITY); 217 supported_types->insert(ADDRESS_HOME_CITY);
207 supported_types->insert(ADDRESS_HOME_STATE); 218 supported_types->insert(ADDRESS_HOME_STATE);
208 supported_types->insert(ADDRESS_HOME_ZIP); 219 supported_types->insert(ADDRESS_HOME_ZIP);
209 supported_types->insert(ADDRESS_HOME_SORTING_CODE); 220 supported_types->insert(ADDRESS_HOME_SORTING_CODE);
210 supported_types->insert(ADDRESS_HOME_COUNTRY); 221 supported_types->insert(ADDRESS_HOME_COUNTRY);
211 } 222 }
212 223
213 void Address::TrimStreetAddress() { 224 void Address::TrimStreetAddress() {
214 while (!street_address_.empty() && street_address_.back().empty()) { 225 while (!street_address_.empty() && street_address_.back().empty()) {
215 street_address_.pop_back(); 226 street_address_.pop_back();
216 } 227 }
217 } 228 }
218 229
219 } // namespace autofill 230 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/content/renderer/form_cache.cc ('k') | components/autofill/core/browser/address_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698