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

Side by Side Diff: chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc

Issue 23756007: [rac] Show amex specific cvc hint (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Bring back the deprecated IconForField method, as it is still used on Mac Created 7 years, 3 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 "chrome/browser/ui/autofill/autofill_dialog_controller_impl.h" 5 #include "chrome/browser/ui/autofill/autofill_dialog_controller_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 10
(...skipping 1489 matching lines...) Expand 10 before | Expand all | Expand 10 after
1500 gfx::Image AutofillDialogControllerImpl::SuggestionIconForSection( 1500 gfx::Image AutofillDialogControllerImpl::SuggestionIconForSection(
1501 DialogSection section) { 1501 DialogSection section) {
1502 scoped_ptr<DataModelWrapper> model = CreateWrapper(section); 1502 scoped_ptr<DataModelWrapper> model = CreateWrapper(section);
1503 if (!model.get()) 1503 if (!model.get())
1504 return gfx::Image(); 1504 return gfx::Image();
1505 1505
1506 return model->GetIcon(); 1506 return model->GetIcon();
1507 } 1507 }
1508 1508
1509 gfx::Image AutofillDialogControllerImpl::ExtraSuggestionIconForSection( 1509 gfx::Image AutofillDialogControllerImpl::ExtraSuggestionIconForSection(
1510 DialogSection section) const { 1510 DialogSection section) {
1511 if (section == SECTION_CC || section == SECTION_CC_BILLING) 1511 if (section != SECTION_CC && section != SECTION_CC_BILLING)
1512 return IconForField(CREDIT_CARD_VERIFICATION_CODE, string16()); 1512 return gfx::Image();
1513 1513 scoped_ptr<DataModelWrapper> model = CreateWrapper(section);
1514 return gfx::Image(); 1514 if (!model.get())
1515 return gfx::Image();
1516 FieldValueMap section_values;
1517 section_values[CREDIT_CARD_NUMBER] =
1518 model->GetInfo(AutofillType(CREDIT_CARD_NUMBER));
Evan Stade 2013/09/16 23:36:59 this won't work for wallet (SECTION_CC_BILLING); w
please use gerrit instead 2013/09/17 00:38:17 Using CREDIT_CARD_TYPE instead.
1519 section_values[CREDIT_CARD_VERIFICATION_CODE] = string16();
1520 FieldIconMap section_icons = IconsForFields(section_values);
1521 return section_icons[CREDIT_CARD_VERIFICATION_CODE];
Evan Stade 2013/09/16 23:36:59 this function needs vertical whitespace
please use gerrit instead 2013/09/17 00:38:17 Done.
1515 } 1522 }
1516 1523
1524 // TODO(groby): Remove this deprecated method after Mac starts using
1525 // IconsForFields. http://crbug.com/292876
1517 gfx::Image AutofillDialogControllerImpl::IconForField( 1526 gfx::Image AutofillDialogControllerImpl::IconForField(
1518 ServerFieldType type, const string16& user_input) const { 1527 ServerFieldType type, const string16& user_input) const {
1519 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); 1528 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
1520 if (type == CREDIT_CARD_VERIFICATION_CODE) 1529 if (type == CREDIT_CARD_VERIFICATION_CODE)
1521 return rb.GetImageNamed(IDR_CREDIT_CARD_CVC_HINT); 1530 return rb.GetImageNamed(IDR_CREDIT_CARD_CVC_HINT);
1522 1531
1523 if (type == CREDIT_CARD_NUMBER) { 1532 if (type == CREDIT_CARD_NUMBER) {
1524 const int input_card_idr = CreditCard::IconResourceId( 1533 const int input_card_idr = CreditCard::IconResourceId(
1525 CreditCard::GetCreditCardType(user_input)); 1534 CreditCard::GetCreditCardType(user_input));
1526 if (input_card_idr != IDR_AUTOFILL_CC_GENERIC) 1535 if (input_card_idr != IDR_AUTOFILL_CC_GENERIC)
1527 return rb.GetImageNamed(input_card_idr); 1536 return rb.GetImageNamed(input_card_idr);
1528 1537
1529 // When the credit card type is unknown, no image should be shown. However, 1538 // When the credit card type is unknown, no image should be shown. However,
1530 // to simplify the view code on Mac, save space for the credit card image by 1539 // to simplify the view code on Mac, save space for the credit card image by
1531 // returning a transparent image of the appropriate size. 1540 // returning a transparent image of the appropriate size.
1532 gfx::ImageSkia image = *rb.GetImageSkiaNamed(input_card_idr); 1541 gfx::ImageSkia image = *rb.GetImageSkiaNamed(input_card_idr);
1533 return 1542 return
1534 gfx::Image(gfx::ImageSkiaOperations::CreateTransparentImage(image, 0)); 1543 gfx::Image(gfx::ImageSkiaOperations::CreateTransparentImage(image, 0));
1535 } 1544 }
1536 1545
1537 return gfx::Image(); 1546 return gfx::Image();
1538 } 1547 }
1539 1548
1549 FieldIconMap AutofillDialogControllerImpl::IconsForFields(
1550 const FieldValueMap& user_inputs) const {
1551 FieldIconMap result;
1552 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
1553 FieldValueMap::const_iterator credit_card_iter =
1554 user_inputs.find(CREDIT_CARD_NUMBER);
1555 std::string credit_card_type = autofill::kGenericCard;
1556 if (credit_card_iter != user_inputs.end()) {
1557 const string16& credit_card_number = credit_card_iter->second;
1558 credit_card_type = CreditCard::GetCreditCardType(credit_card_number);
1559 const int input_card_idr = CreditCard::IconResourceId(credit_card_type);
1560 result[CREDIT_CARD_NUMBER] = rb.GetImageNamed(input_card_idr);
1561 if (input_card_idr == IDR_AUTOFILL_CC_GENERIC) {
1562 // When the credit card type is unknown, no image should be shown.
1563 // However, to simplify the view code on Mac, save space for the credit
1564 // card image by returning a transparent image of the appropriate size.
1565 result[CREDIT_CARD_NUMBER] =
1566 gfx::Image(gfx::ImageSkiaOperations::CreateTransparentImage(
1567 result[CREDIT_CARD_NUMBER].AsImageSkia(), 0));
1568 }
1569 }
1570
1571 FieldValueMap::const_iterator cvc_iter =
1572 user_inputs.find(CREDIT_CARD_VERIFICATION_CODE);
1573 if (cvc_iter == user_inputs.end())
1574 return result;
1575 if (credit_card_type == autofill::kAmericanExpressCard) {
1576 result[CREDIT_CARD_VERIFICATION_CODE] =
1577 rb.GetImageNamed(IDR_CREDIT_CARD_CVC_HINT_AMEX);
1578 return result;
1579 }
1580 result[CREDIT_CARD_VERIFICATION_CODE] =
1581 rb.GetImageNamed(IDR_CREDIT_CARD_CVC_HINT);
1582 return result;
1583 }
1584
1585 bool AutofillDialogControllerImpl::FieldControlsIcons(
1586 ServerFieldType type) const {
1587 return type == CREDIT_CARD_NUMBER;
1588 }
1589
1540 // TODO(estade): Replace all the error messages here with more helpful and 1590 // TODO(estade): Replace all the error messages here with more helpful and
1541 // translateable ones. TODO(groby): Also add tests. 1591 // translateable ones. TODO(groby): Also add tests.
1542 string16 AutofillDialogControllerImpl::InputValidityMessage( 1592 string16 AutofillDialogControllerImpl::InputValidityMessage(
1543 DialogSection section, 1593 DialogSection section,
1544 ServerFieldType type, 1594 ServerFieldType type,
1545 const string16& value) { 1595 const string16& value) {
1546 // If the field is edited, clear any Wallet errors. 1596 // If the field is edited, clear any Wallet errors.
1547 if (IsPayingWithWallet()) { 1597 if (IsPayingWithWallet()) {
1548 WalletValidationErrors::iterator it = wallet_errors_.find(section); 1598 WalletValidationErrors::iterator it = wallet_errors_.find(section);
1549 if (it != wallet_errors_.end()) { 1599 if (it != wallet_errors_.end()) {
(...skipping 1810 matching lines...) Expand 10 before | Expand all | Expand 10 after
3360 } 3410 }
3361 3411
3362 void AutofillDialogControllerImpl::OnSubmitButtonDelayEnd() { 3412 void AutofillDialogControllerImpl::OnSubmitButtonDelayEnd() {
3363 if (!view_) 3413 if (!view_)
3364 return; 3414 return;
3365 ScopedViewUpdates updates(view_.get()); 3415 ScopedViewUpdates updates(view_.get());
3366 view_->UpdateButtonStrip(); 3416 view_->UpdateButtonStrip();
3367 } 3417 }
3368 3418
3369 } // namespace autofill 3419 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698