autofill_type.cc revision cedac228d2dd51db4b79ea1e72c7f249408ee061
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 3// found in the LICENSE file. 4 5#include "components/autofill/core/browser/autofill_type.h" 6 7#include "base/logging.h" 8 9namespace autofill { 10 11AutofillType::AutofillType(ServerFieldType field_type) 12 : html_type_(HTML_TYPE_UNKNOWN), 13 html_mode_(HTML_MODE_NONE) { 14 if ((field_type < NO_SERVER_DATA || field_type >= MAX_VALID_FIELD_TYPE) || 15 (field_type >= 15 && field_type <= 19) || 16 (field_type >= 25 && field_type <= 29) || 17 (field_type >= 44 && field_type <= 50)) { 18 server_type_ = UNKNOWN_TYPE; 19 } else { 20 server_type_ = field_type; 21 } 22} 23 24AutofillType::AutofillType(HtmlFieldType field_type, HtmlFieldMode mode) 25 : server_type_(UNKNOWN_TYPE), 26 html_type_(field_type), 27 html_mode_(mode) {} 28 29 30AutofillType::AutofillType(const AutofillType& autofill_type) { 31 *this = autofill_type; 32} 33 34AutofillType& AutofillType::operator=(const AutofillType& autofill_type) { 35 if (this != &autofill_type) { 36 this->server_type_ = autofill_type.server_type_; 37 this->html_type_ = autofill_type.html_type_; 38 this->html_mode_ = autofill_type.html_mode_; 39 } 40 41 return *this; 42} 43 44FieldTypeGroup AutofillType::group() const { 45 switch (server_type_) { 46 case NAME_FIRST: 47 case NAME_MIDDLE: 48 case NAME_LAST: 49 case NAME_MIDDLE_INITIAL: 50 case NAME_FULL: 51 case NAME_SUFFIX: 52 return NAME; 53 54 case NAME_BILLING_FIRST: 55 case NAME_BILLING_MIDDLE: 56 case NAME_BILLING_LAST: 57 case NAME_BILLING_MIDDLE_INITIAL: 58 case NAME_BILLING_FULL: 59 case NAME_BILLING_SUFFIX: 60 return NAME_BILLING; 61 62 case EMAIL_ADDRESS: 63 return EMAIL; 64 65 case PHONE_HOME_NUMBER: 66 case PHONE_HOME_CITY_CODE: 67 case PHONE_HOME_COUNTRY_CODE: 68 case PHONE_HOME_CITY_AND_NUMBER: 69 case PHONE_HOME_WHOLE_NUMBER: 70 return PHONE_HOME; 71 72 case PHONE_BILLING_NUMBER: 73 case PHONE_BILLING_CITY_CODE: 74 case PHONE_BILLING_COUNTRY_CODE: 75 case PHONE_BILLING_CITY_AND_NUMBER: 76 case PHONE_BILLING_WHOLE_NUMBER: 77 return PHONE_BILLING; 78 79 case ADDRESS_HOME_LINE1: 80 case ADDRESS_HOME_LINE2: 81 case ADDRESS_HOME_APT_NUM: 82 case ADDRESS_HOME_CITY: 83 case ADDRESS_HOME_STATE: 84 case ADDRESS_HOME_ZIP: 85 case ADDRESS_HOME_COUNTRY: 86 case ADDRESS_HOME_STREET_ADDRESS: 87 case ADDRESS_HOME_SORTING_CODE: 88 case ADDRESS_HOME_DEPENDENT_LOCALITY: 89 return ADDRESS_HOME; 90 91 case ADDRESS_BILLING_LINE1: 92 case ADDRESS_BILLING_LINE2: 93 case ADDRESS_BILLING_APT_NUM: 94 case ADDRESS_BILLING_CITY: 95 case ADDRESS_BILLING_STATE: 96 case ADDRESS_BILLING_ZIP: 97 case ADDRESS_BILLING_COUNTRY: 98 case ADDRESS_BILLING_STREET_ADDRESS: 99 case ADDRESS_BILLING_SORTING_CODE: 100 case ADDRESS_BILLING_DEPENDENT_LOCALITY: 101 return ADDRESS_BILLING; 102 103 case CREDIT_CARD_NAME: 104 case CREDIT_CARD_NUMBER: 105 case CREDIT_CARD_EXP_MONTH: 106 case CREDIT_CARD_EXP_2_DIGIT_YEAR: 107 case CREDIT_CARD_EXP_4_DIGIT_YEAR: 108 case CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR: 109 case CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR: 110 case CREDIT_CARD_TYPE: 111 case CREDIT_CARD_VERIFICATION_CODE: 112 return CREDIT_CARD; 113 114 case COMPANY_NAME: 115 return COMPANY; 116 117 case PASSWORD: 118 case ACCOUNT_CREATION_PASSWORD: 119 return PASSWORD_FIELD; 120 121 case NO_SERVER_DATA: 122 case EMPTY_TYPE: 123 case PHONE_FAX_NUMBER: 124 case PHONE_FAX_CITY_CODE: 125 case PHONE_FAX_COUNTRY_CODE: 126 case PHONE_FAX_CITY_AND_NUMBER: 127 case PHONE_FAX_WHOLE_NUMBER: 128 case FIELD_WITH_DEFAULT_VALUE: 129 case MERCHANT_EMAIL_SIGNUP: 130 case MERCHANT_PROMO_CODE: 131 return NO_GROUP; 132 133 case MAX_VALID_FIELD_TYPE: 134 NOTREACHED(); 135 return NO_GROUP; 136 137 case UNKNOWN_TYPE: 138 break; 139 } 140 141 switch (html_type_) { 142 case HTML_TYPE_NAME: 143 case HTML_TYPE_GIVEN_NAME: 144 case HTML_TYPE_ADDITIONAL_NAME: 145 case HTML_TYPE_ADDITIONAL_NAME_INITIAL: 146 case HTML_TYPE_FAMILY_NAME: 147 return html_mode_ == HTML_MODE_BILLING ? NAME_BILLING : NAME; 148 149 case HTML_TYPE_ORGANIZATION: 150 return COMPANY; 151 152 case HTML_TYPE_STREET_ADDRESS: 153 case HTML_TYPE_ADDRESS_LINE1: 154 case HTML_TYPE_ADDRESS_LINE2: 155 case HTML_TYPE_LOCALITY: 156 case HTML_TYPE_REGION: 157 case HTML_TYPE_COUNTRY_CODE: 158 case HTML_TYPE_COUNTRY_NAME: 159 case HTML_TYPE_POSTAL_CODE: 160 case HTML_TYPE_FULL_ADDRESS: 161 return html_mode_ == HTML_MODE_BILLING ? ADDRESS_BILLING : ADDRESS_HOME; 162 163 case HTML_TYPE_CREDIT_CARD_NAME: 164 case HTML_TYPE_CREDIT_CARD_NUMBER: 165 case HTML_TYPE_CREDIT_CARD_EXP: 166 case HTML_TYPE_CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR: 167 case HTML_TYPE_CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR: 168 case HTML_TYPE_CREDIT_CARD_EXP_MONTH: 169 case HTML_TYPE_CREDIT_CARD_EXP_YEAR: 170 case HTML_TYPE_CREDIT_CARD_EXP_2_DIGIT_YEAR: 171 case HTML_TYPE_CREDIT_CARD_EXP_4_DIGIT_YEAR: 172 case HTML_TYPE_CREDIT_CARD_VERIFICATION_CODE: 173 case HTML_TYPE_CREDIT_CARD_TYPE: 174 return CREDIT_CARD; 175 176 case HTML_TYPE_TEL: 177 case HTML_TYPE_TEL_COUNTRY_CODE: 178 case HTML_TYPE_TEL_NATIONAL: 179 case HTML_TYPE_TEL_AREA_CODE: 180 case HTML_TYPE_TEL_LOCAL: 181 case HTML_TYPE_TEL_LOCAL_PREFIX: 182 case HTML_TYPE_TEL_LOCAL_SUFFIX: 183 return html_mode_ == HTML_MODE_BILLING ? PHONE_BILLING : PHONE_HOME; 184 185 case HTML_TYPE_EMAIL: 186 return EMAIL; 187 188 case HTML_TYPE_UNKNOWN: 189 break; 190 } 191 192 return NO_GROUP; 193} 194 195bool AutofillType::IsUnknown() const { 196 return server_type_ == UNKNOWN_TYPE && html_type_ == HTML_TYPE_UNKNOWN; 197} 198 199ServerFieldType AutofillType::GetStorableType() const { 200 // Map billing types to the equivalent non-billing types. 201 switch (server_type_) { 202 case ADDRESS_BILLING_LINE1: 203 return ADDRESS_HOME_LINE1; 204 205 case ADDRESS_BILLING_LINE2: 206 return ADDRESS_HOME_LINE2; 207 208 case ADDRESS_BILLING_APT_NUM: 209 return ADDRESS_HOME_APT_NUM; 210 211 case ADDRESS_BILLING_CITY: 212 return ADDRESS_HOME_CITY; 213 214 case ADDRESS_BILLING_STATE: 215 return ADDRESS_HOME_STATE; 216 217 case ADDRESS_BILLING_ZIP: 218 return ADDRESS_HOME_ZIP; 219 220 case ADDRESS_BILLING_COUNTRY: 221 return ADDRESS_HOME_COUNTRY; 222 223 case PHONE_BILLING_WHOLE_NUMBER: 224 return PHONE_HOME_WHOLE_NUMBER; 225 226 case PHONE_BILLING_NUMBER: 227 return PHONE_HOME_NUMBER; 228 229 case PHONE_BILLING_CITY_CODE: 230 return PHONE_HOME_CITY_CODE; 231 232 case PHONE_BILLING_COUNTRY_CODE: 233 return PHONE_HOME_COUNTRY_CODE; 234 235 case PHONE_BILLING_CITY_AND_NUMBER: 236 return PHONE_HOME_CITY_AND_NUMBER; 237 238 case NAME_BILLING_FIRST: 239 return NAME_FIRST; 240 241 case NAME_BILLING_MIDDLE: 242 return NAME_MIDDLE; 243 244 case NAME_BILLING_LAST: 245 return NAME_LAST; 246 247 case NAME_BILLING_MIDDLE_INITIAL: 248 return NAME_MIDDLE_INITIAL; 249 250 case NAME_BILLING_FULL: 251 return NAME_FULL; 252 253 case NAME_BILLING_SUFFIX: 254 return NAME_SUFFIX; 255 256 case ADDRESS_BILLING_STREET_ADDRESS: 257 return ADDRESS_HOME_STREET_ADDRESS; 258 259 case ADDRESS_BILLING_SORTING_CODE: 260 return ADDRESS_HOME_SORTING_CODE; 261 262 case ADDRESS_BILLING_DEPENDENT_LOCALITY: 263 return ADDRESS_HOME_DEPENDENT_LOCALITY; 264 265 case UNKNOWN_TYPE: 266 break; // Try to parse HTML types instead. 267 268 default: 269 return server_type_; 270 } 271 272 switch (html_type_) { 273 case HTML_TYPE_UNKNOWN: 274 return UNKNOWN_TYPE; 275 276 case HTML_TYPE_NAME: 277 return NAME_FULL; 278 279 case HTML_TYPE_GIVEN_NAME: 280 return NAME_FIRST; 281 282 case HTML_TYPE_ADDITIONAL_NAME: 283 return NAME_MIDDLE; 284 285 case HTML_TYPE_FAMILY_NAME: 286 return NAME_LAST; 287 288 case HTML_TYPE_ORGANIZATION: 289 return COMPANY_NAME; 290 291 case HTML_TYPE_STREET_ADDRESS: 292 return ADDRESS_HOME_STREET_ADDRESS; 293 294 case HTML_TYPE_ADDRESS_LINE1: 295 return ADDRESS_HOME_LINE1; 296 297 case HTML_TYPE_ADDRESS_LINE2: 298 return ADDRESS_HOME_LINE2; 299 300 case HTML_TYPE_LOCALITY: 301 return ADDRESS_HOME_CITY; 302 303 case HTML_TYPE_REGION: 304 return ADDRESS_HOME_STATE; 305 306 case HTML_TYPE_COUNTRY_CODE: 307 case HTML_TYPE_COUNTRY_NAME: 308 return ADDRESS_HOME_COUNTRY; 309 310 case HTML_TYPE_POSTAL_CODE: 311 return ADDRESS_HOME_ZIP; 312 313 // Full address is composed of other types; it can't be stored. 314 case HTML_TYPE_FULL_ADDRESS: 315 return UNKNOWN_TYPE; 316 317 case HTML_TYPE_CREDIT_CARD_NAME: 318 return CREDIT_CARD_NAME; 319 320 case HTML_TYPE_CREDIT_CARD_NUMBER: 321 return CREDIT_CARD_NUMBER; 322 323 case HTML_TYPE_CREDIT_CARD_EXP: 324 return CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR; 325 326 case HTML_TYPE_CREDIT_CARD_EXP_MONTH: 327 return CREDIT_CARD_EXP_MONTH; 328 329 case HTML_TYPE_CREDIT_CARD_EXP_YEAR: 330 return CREDIT_CARD_EXP_4_DIGIT_YEAR; 331 332 case HTML_TYPE_CREDIT_CARD_VERIFICATION_CODE: 333 return CREDIT_CARD_VERIFICATION_CODE; 334 335 case HTML_TYPE_CREDIT_CARD_TYPE: 336 return CREDIT_CARD_TYPE; 337 338 case HTML_TYPE_TEL: 339 return PHONE_HOME_WHOLE_NUMBER; 340 341 case HTML_TYPE_TEL_COUNTRY_CODE: 342 return PHONE_HOME_COUNTRY_CODE; 343 344 case HTML_TYPE_TEL_NATIONAL: 345 return PHONE_HOME_CITY_AND_NUMBER; 346 347 case HTML_TYPE_TEL_AREA_CODE: 348 return PHONE_HOME_CITY_CODE; 349 350 case HTML_TYPE_TEL_LOCAL: 351 case HTML_TYPE_TEL_LOCAL_PREFIX: 352 case HTML_TYPE_TEL_LOCAL_SUFFIX: 353 return PHONE_HOME_NUMBER; 354 355 case HTML_TYPE_EMAIL: 356 return EMAIL_ADDRESS; 357 358 case HTML_TYPE_ADDITIONAL_NAME_INITIAL: 359 return NAME_MIDDLE_INITIAL; 360 361 case HTML_TYPE_CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR: 362 return CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR; 363 364 case HTML_TYPE_CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR: 365 return CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR; 366 367 case HTML_TYPE_CREDIT_CARD_EXP_2_DIGIT_YEAR: 368 return CREDIT_CARD_EXP_2_DIGIT_YEAR; 369 370 case HTML_TYPE_CREDIT_CARD_EXP_4_DIGIT_YEAR: 371 return CREDIT_CARD_EXP_4_DIGIT_YEAR; 372 } 373 374 NOTREACHED(); 375 return UNKNOWN_TYPE; 376} 377 378// static 379ServerFieldType AutofillType::GetEquivalentBillingFieldType( 380 ServerFieldType field_type) { 381 switch (field_type) { 382 case ADDRESS_HOME_LINE1: 383 return ADDRESS_BILLING_LINE1; 384 385 case ADDRESS_HOME_LINE2: 386 return ADDRESS_BILLING_LINE2; 387 388 case ADDRESS_HOME_APT_NUM: 389 return ADDRESS_BILLING_APT_NUM; 390 391 case ADDRESS_HOME_CITY: 392 return ADDRESS_BILLING_CITY; 393 394 case ADDRESS_HOME_STATE: 395 return ADDRESS_BILLING_STATE; 396 397 case ADDRESS_HOME_ZIP: 398 return ADDRESS_BILLING_ZIP; 399 400 case ADDRESS_HOME_COUNTRY: 401 return ADDRESS_BILLING_COUNTRY; 402 403 case ADDRESS_HOME_STREET_ADDRESS: 404 return ADDRESS_BILLING_STREET_ADDRESS; 405 406 case ADDRESS_HOME_SORTING_CODE: 407 return ADDRESS_BILLING_SORTING_CODE; 408 409 case ADDRESS_HOME_DEPENDENT_LOCALITY: 410 return ADDRESS_BILLING_DEPENDENT_LOCALITY; 411 412 case PHONE_HOME_WHOLE_NUMBER: 413 return PHONE_BILLING_WHOLE_NUMBER; 414 415 case PHONE_HOME_NUMBER: 416 return PHONE_BILLING_NUMBER; 417 418 case PHONE_HOME_CITY_CODE: 419 return PHONE_BILLING_CITY_CODE; 420 421 case PHONE_HOME_COUNTRY_CODE: 422 return PHONE_BILLING_COUNTRY_CODE; 423 424 case PHONE_HOME_CITY_AND_NUMBER: 425 return PHONE_BILLING_CITY_AND_NUMBER; 426 427 case NAME_FIRST: 428 return NAME_BILLING_FIRST; 429 430 case NAME_MIDDLE: 431 return NAME_BILLING_MIDDLE; 432 433 case NAME_LAST: 434 return NAME_BILLING_LAST; 435 436 case NAME_MIDDLE_INITIAL: 437 return NAME_BILLING_MIDDLE_INITIAL; 438 439 case NAME_FULL: 440 return NAME_BILLING_FULL; 441 442 case NAME_SUFFIX: 443 return NAME_BILLING_SUFFIX; 444 445 default: 446 return field_type; 447 } 448} 449 450std::string AutofillType::ToString() const { 451 if (IsUnknown()) 452 return "UNKNOWN_TYPE"; 453 454 switch (server_type_) { 455 case NO_SERVER_DATA: 456 return "NO_SERVER_DATA"; 457 case UNKNOWN_TYPE: 458 break; // Should be handled in the HTML type handling code below. 459 case EMPTY_TYPE: 460 return "EMPTY_TYPE"; 461 case NAME_FIRST: 462 return "NAME_FIRST"; 463 case NAME_MIDDLE: 464 return "NAME_MIDDLE"; 465 case NAME_LAST: 466 return "NAME_LAST"; 467 case NAME_MIDDLE_INITIAL: 468 return "NAME_MIDDLE_INITIAL"; 469 case NAME_FULL: 470 return "NAME_FULL"; 471 case NAME_SUFFIX: 472 return "NAME_SUFFIX"; 473 case NAME_BILLING_FIRST: 474 return "NAME_BILLING_FIRST"; 475 case NAME_BILLING_MIDDLE: 476 return "NAME_BILLING_MIDDLE"; 477 case NAME_BILLING_LAST: 478 return "NAME_BILLING_LAST"; 479 case NAME_BILLING_MIDDLE_INITIAL: 480 return "NAME_BILLING_MIDDLE_INITIAL"; 481 case NAME_BILLING_FULL: 482 return "NAME_BILLING_FULL"; 483 case NAME_BILLING_SUFFIX: 484 return "NAME_BILLING_SUFFIX"; 485 case EMAIL_ADDRESS: 486 return "EMAIL_ADDRESS"; 487 case PHONE_HOME_NUMBER: 488 return "PHONE_HOME_NUMBER"; 489 case PHONE_HOME_CITY_CODE: 490 return "PHONE_HOME_CITY_CODE"; 491 case PHONE_HOME_COUNTRY_CODE: 492 return "PHONE_HOME_COUNTRY_CODE"; 493 case PHONE_HOME_CITY_AND_NUMBER: 494 return "PHONE_HOME_CITY_AND_NUMBER"; 495 case PHONE_HOME_WHOLE_NUMBER: 496 return "PHONE_HOME_WHOLE_NUMBER"; 497 case PHONE_FAX_NUMBER: 498 return "PHONE_FAX_NUMBER"; 499 case PHONE_FAX_CITY_CODE: 500 return "PHONE_FAX_CITY_CODE"; 501 case PHONE_FAX_COUNTRY_CODE: 502 return "PHONE_FAX_COUNTRY_CODE"; 503 case PHONE_FAX_CITY_AND_NUMBER: 504 return "PHONE_FAX_CITY_AND_NUMBER"; 505 case PHONE_FAX_WHOLE_NUMBER: 506 return "PHONE_FAX_WHOLE_NUMBER"; 507 case ADDRESS_HOME_LINE1: 508 return "ADDRESS_HOME_LINE1"; 509 case ADDRESS_HOME_LINE2: 510 return "ADDRESS_HOME_LINE2"; 511 case ADDRESS_HOME_APT_NUM: 512 return "ADDRESS_HOME_APT_NUM"; 513 case ADDRESS_HOME_CITY: 514 return "ADDRESS_HOME_CITY"; 515 case ADDRESS_HOME_STATE: 516 return "ADDRESS_HOME_STATE"; 517 case ADDRESS_HOME_ZIP: 518 return "ADDRESS_HOME_ZIP"; 519 case ADDRESS_HOME_COUNTRY: 520 return "ADDRESS_HOME_COUNTRY"; 521 case ADDRESS_BILLING_LINE1: 522 return "ADDRESS_BILLING_LINE1"; 523 case ADDRESS_BILLING_LINE2: 524 return "ADDRESS_BILLING_LINE2"; 525 case ADDRESS_BILLING_APT_NUM: 526 return "ADDRESS_BILLING_APT_NUM"; 527 case ADDRESS_BILLING_CITY: 528 return "ADDRESS_BILLING_CITY"; 529 case ADDRESS_BILLING_STATE: 530 return "ADDRESS_BILLING_STATE"; 531 case ADDRESS_BILLING_ZIP: 532 return "ADDRESS_BILLING_ZIP"; 533 case ADDRESS_BILLING_COUNTRY: 534 return "ADDRESS_BILLING_COUNTRY"; 535 case CREDIT_CARD_NAME: 536 return "CREDIT_CARD_NAME"; 537 case CREDIT_CARD_NUMBER: 538 return "CREDIT_CARD_NUMBER"; 539 case CREDIT_CARD_EXP_MONTH: 540 return "CREDIT_CARD_EXP_MONTH"; 541 case CREDIT_CARD_EXP_2_DIGIT_YEAR: 542 return "CREDIT_CARD_EXP_2_DIGIT_YEAR"; 543 case CREDIT_CARD_EXP_4_DIGIT_YEAR: 544 return "CREDIT_CARD_EXP_4_DIGIT_YEAR"; 545 case CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR: 546 return "CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR"; 547 case CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR: 548 return "CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR"; 549 case CREDIT_CARD_TYPE: 550 return "CREDIT_CARD_TYPE"; 551 case CREDIT_CARD_VERIFICATION_CODE: 552 return "CREDIT_CARD_VERIFICATION_CODE"; 553 case COMPANY_NAME: 554 return "COMPANY_NAME"; 555 case FIELD_WITH_DEFAULT_VALUE: 556 return "FIELD_WITH_DEFAULT_VALUE"; 557 case PHONE_BILLING_NUMBER: 558 return "PHONE_BILLING_NUMBER"; 559 case PHONE_BILLING_CITY_CODE: 560 return "PHONE_BILLING_CITY_CODE"; 561 case PHONE_BILLING_COUNTRY_CODE: 562 return "PHONE_BILLING_COUNTRY_CODE"; 563 case PHONE_BILLING_CITY_AND_NUMBER: 564 return "PHONE_BILLING_CITY_AND_NUMBER"; 565 case PHONE_BILLING_WHOLE_NUMBER: 566 return "PHONE_BILLING_WHOLE_NUMBER"; 567 case MERCHANT_EMAIL_SIGNUP: 568 return "MERCHANT_EMAIL_SIGNUP"; 569 case MERCHANT_PROMO_CODE: 570 return "MERCHANT_PROMO_CODE"; 571 case PASSWORD: 572 return "PASSWORD"; 573 case ACCOUNT_CREATION_PASSWORD: 574 return "ACCOUNT_CREATION_PASSWORD"; 575 case ADDRESS_HOME_STREET_ADDRESS: 576 return "ADDRESS_HOME_STREET_ADDRESS"; 577 case ADDRESS_BILLING_STREET_ADDRESS: 578 return "ADDRESS_BILLING_STREET_ADDRESS"; 579 case ADDRESS_HOME_SORTING_CODE: 580 return "ADDRESS_HOME_SORTING_CODE"; 581 case ADDRESS_BILLING_SORTING_CODE: 582 return "ADDRESS_BILLING_SORTING_CODE"; 583 case ADDRESS_HOME_DEPENDENT_LOCALITY: 584 return "ADDRESS_HOME_DEPENDENT_LOCALITY"; 585 case ADDRESS_BILLING_DEPENDENT_LOCALITY: 586 return "ADDRESS_BILLING_DEPENDENT_LOCALITY"; 587 588 case MAX_VALID_FIELD_TYPE: 589 return std::string(); 590 } 591 592 switch (html_type_) { 593 case HTML_TYPE_UNKNOWN: 594 NOTREACHED(); 595 break; 596 case HTML_TYPE_NAME: 597 return "HTML_TYPE_NAME"; 598 case HTML_TYPE_GIVEN_NAME: 599 return "HTML_TYPE_GIVEN_NAME"; 600 case HTML_TYPE_ADDITIONAL_NAME: 601 return "HTML_TYPE_ADDITIONAL_NAME"; 602 case HTML_TYPE_FAMILY_NAME: 603 return "HTML_TYPE_FAMILY_NAME"; 604 case HTML_TYPE_ORGANIZATION: 605 return "HTML_TYPE_ORGANIZATION"; 606 case HTML_TYPE_STREET_ADDRESS: 607 return "HTML_TYPE_STREET_ADDRESS"; 608 case HTML_TYPE_ADDRESS_LINE1: 609 return "HTML_TYPE_ADDRESS_LINE1"; 610 case HTML_TYPE_ADDRESS_LINE2: 611 return "HTML_TYPE_ADDRESS_LINE2"; 612 case HTML_TYPE_LOCALITY: 613 return "HTML_TYPE_LOCALITY"; 614 case HTML_TYPE_REGION: 615 return "HTML_TYPE_REGION"; 616 case HTML_TYPE_COUNTRY_CODE: 617 return "HTML_TYPE_COUNTRY_CODE"; 618 case HTML_TYPE_COUNTRY_NAME: 619 return "HTML_TYPE_COUNTRY_NAME"; 620 case HTML_TYPE_POSTAL_CODE: 621 return "HTML_TYPE_POSTAL_CODE"; 622 case HTML_TYPE_FULL_ADDRESS: 623 return "HTML_TYPE_FULL_ADDRESS"; 624 case HTML_TYPE_CREDIT_CARD_NAME: 625 return "HTML_TYPE_CREDIT_CARD_NAME"; 626 case HTML_TYPE_CREDIT_CARD_NUMBER: 627 return "HTML_TYPE_CREDIT_CARD_NUMBER"; 628 case HTML_TYPE_CREDIT_CARD_EXP: 629 return "HTML_TYPE_CREDIT_CARD_EXP"; 630 case HTML_TYPE_CREDIT_CARD_EXP_MONTH: 631 return "HTML_TYPE_CREDIT_CARD_EXP_MONTH"; 632 case HTML_TYPE_CREDIT_CARD_EXP_YEAR: 633 return "HTML_TYPE_CREDIT_CARD_EXP_YEAR"; 634 case HTML_TYPE_CREDIT_CARD_VERIFICATION_CODE: 635 return "HTML_TYPE_CREDIT_CARD_VERIFICATION_CODE"; 636 case HTML_TYPE_CREDIT_CARD_TYPE: 637 return "HTML_TYPE_CREDIT_CARD_TYPE"; 638 case HTML_TYPE_TEL: 639 return "HTML_TYPE_TEL"; 640 case HTML_TYPE_TEL_COUNTRY_CODE: 641 return "HTML_TYPE_TEL_COUNTRY_CODE"; 642 case HTML_TYPE_TEL_NATIONAL: 643 return "HTML_TYPE_TEL_NATIONAL"; 644 case HTML_TYPE_TEL_AREA_CODE: 645 return "HTML_TYPE_TEL_AREA_CODE"; 646 case HTML_TYPE_TEL_LOCAL: 647 return "HTML_TYPE_TEL_LOCAL"; 648 case HTML_TYPE_TEL_LOCAL_PREFIX: 649 return "HTML_TYPE_TEL_LOCAL_PREFIX"; 650 case HTML_TYPE_TEL_LOCAL_SUFFIX: 651 return "HTML_TYPE_TEL_LOCAL_SUFFIX"; 652 case HTML_TYPE_EMAIL: 653 return "HTML_TYPE_EMAIL"; 654 case HTML_TYPE_ADDITIONAL_NAME_INITIAL: 655 return "HTML_TYPE_ADDITIONAL_NAME_INITIAL"; 656 case HTML_TYPE_CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR: 657 return "HTML_TYPE_CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR"; 658 case HTML_TYPE_CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR: 659 return "HTML_TYPE_CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR"; 660 case HTML_TYPE_CREDIT_CARD_EXP_2_DIGIT_YEAR: 661 return "HTML_TYPE_CREDIT_CARD_EXP_2_DIGIT_YEAR"; 662 case HTML_TYPE_CREDIT_CARD_EXP_4_DIGIT_YEAR: 663 return "HTML_TYPE_CREDIT_CARD_EXP_4_DIGIT_YEAR"; 664 } 665 666 NOTREACHED(); 667 return std::string(); 668} 669 670} // namespace autofill 671