|
|
DescriptionAuto-advance to next field after typing in valid credit card with maximum digits
BUG=666885
Committed: https://crrev.com/6225da6964b54104b69959910cd1d7b1edb4778c
Cr-Commit-Position: refs/heads/master@{#439173}
Patch Set 1 #
Total comments: 38
Patch Set 2 : address comments #
Total comments: 2
Patch Set 3 : return false if length greater than maximum valid length #
Messages
Total messages: 35 (22 generated)
Description was changed from ========== Auto-advanced to next field after typing in a valid credit card number with maximum digits Auto-advanced to next field after typing in a valid credit card number with maximum digits BUG= ========== to ========== Auto-advance to next field after typing in valid credit card with maximum digits BUG=666885 ==========
Patchset #1 (id:1) has been deleted
Patchset #1 (id:20001) has been deleted
The CQ bit was checked by gogerald@chromium.org to run a CQ dry run
gogerald@chromium.org changed reviewers: + rouslan@chromium.org
Hi rouslan@, PTAL,
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: android_clang_dbg_recipe on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_clan...)
Great stuff! :-D https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... File chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java (right): https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:228: boolean lengthIsMaximum = false; No need for this boolean. It's more eloquent to return directly. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:231: if (cardType.isEmpty()) return lengthIsMaximum; if (cardType.isEmpty()) return false; https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:234: // credit card number in Autofill::IsValidCreditCardNumber. 1) "autofill" is lower case, because it's the namespace. 2) Add a comment in the implementation of autofill::IsValidCreditCardNumber that CardEditor.isCardNumberLengthMaxium() needs to be kept in sync. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:235: String cardNumber = value.toString().replace(" ", ""); // Remove space. Line 664 also replaces "-" with "". Put that in a helper static function and use in both places to avoid repetition and discrepancies. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:238: if (cardNumber.length() >= 15) lengthIsMaximum = true; return cardNumber.length() == 15; https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:241: if (cardNumber.length() >= 14) lengthIsMaximum = true; return cardNumber.length() == 14; https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:243: case DISCOVER: For each intentional fall through, add a comment "// Intentional fall through." https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:248: if (cardNumber.length() >= 16) lengthIsMaximum = true; return cardNumber.length() == 16; https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:251: if (cardNumber.length() >= 19) lengthIsMaximum = true; return cardNumber.length() == 19; https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:255: } return false; https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:258: } You may also want to remove the cases for DISCOVER-VISA and use the default for that. default: return cardNumber.length() == 16; https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... File chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorFieldModel.java (right): https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorFieldModel.java:43: * this field. Please align "this" with "True". https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorFieldModel.java:517: if (mValidator == null) return false; One liner: return mValidator == null ? false : mValidator.isLengthMaximum(mValue); https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... File chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java (right): https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java:37: private OnEditorActionListener mEditorActionlistener; Please make the lower-case "l" into a capital "L" in the variable name. This matches its type better. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java:48: OnEditorActionListener actionlistener, @Nullable InputFilter filter, Capital "L" in "listener" would also be good here. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java:122: // Simulate eidtor action to select next selectable field. s/eidtor/editor https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java:123: mEditorActionlistener.onEditorAction(mInput, EditorInfo.IME_ACTION_NEXT, I don't know which way is better, but EditorView.java uses a different way to move to the next field: https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chr... Can you pick one method, put it in a utility function, and then use it from both places? https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java:125: } When a user reaches 16 digits, but made a typo (so their card number is invalid), can you show an error message? That would make it clear to the user why the usual auto-advance is not happening.
Patchset #2 (id:50001) has been deleted
The CQ bit was checked by gogerald@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
gogerald@chromium.org changed reviewers: + mathp@chromium.org
Hi rouslan@, please take another look. Hi mathp@, please take a look of the change in components/autofill/core/browser/validation.cc. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... File chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java (right): https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:228: boolean lengthIsMaximum = false; On 2016/12/15 20:38:35, rouslan wrote: > No need for this boolean. It's more eloquent to return directly. Done. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:231: if (cardType.isEmpty()) return lengthIsMaximum; On 2016/12/15 20:38:35, rouslan wrote: > if (cardType.isEmpty()) return false; Done. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:234: // credit card number in Autofill::IsValidCreditCardNumber. On 2016/12/15 20:38:35, rouslan wrote: > 1) "autofill" is lower case, because it's the namespace. > > 2) Add a comment in the implementation of autofill::IsValidCreditCardNumber that > CardEditor.isCardNumberLengthMaxium() needs to be kept in sync. Done. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:235: String cardNumber = value.toString().replace(" ", ""); // Remove space. On 2016/12/15 20:38:35, rouslan wrote: > Line 664 also replaces "-" with "". Put that in a helper static function and use > in both places to avoid repetition and discrepancies. Done. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:238: if (cardNumber.length() >= 15) lengthIsMaximum = true; On 2016/12/15 20:38:35, rouslan wrote: > return cardNumber.length() == 15; Done. prefer '>=' instead of '=' since this interface does not check validity. Do not assume the check will be made progressively https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:241: if (cardNumber.length() >= 14) lengthIsMaximum = true; On 2016/12/15 20:38:35, rouslan wrote: > return cardNumber.length() == 14; Done. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:243: case DISCOVER: On 2016/12/15 20:38:35, rouslan wrote: > For each intentional fall through, add a comment "// Intentional fall through." Done. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:248: if (cardNumber.length() >= 16) lengthIsMaximum = true; On 2016/12/15 20:38:35, rouslan wrote: > return cardNumber.length() == 16; Done. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:251: if (cardNumber.length() >= 19) lengthIsMaximum = true; On 2016/12/15 20:38:35, rouslan wrote: > return cardNumber.length() == 19; Done. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:255: } On 2016/12/15 20:38:35, rouslan wrote: > return false; Done. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:258: } On 2016/12/15 20:38:35, rouslan wrote: > You may also want to remove the cases for DISCOVER-VISA and use the default for > that. > > default: > return cardNumber.length() == 16; Done. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... File chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorFieldModel.java (right): https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorFieldModel.java:43: * this field. On 2016/12/15 20:38:36, rouslan wrote: > Please align "this" with "True". Done. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorFieldModel.java:517: if (mValidator == null) return false; On 2016/12/15 20:38:36, rouslan wrote: > One liner: > > return mValidator == null ? false : mValidator.isLengthMaximum(mValue); Done. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... File chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java (right): https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java:37: private OnEditorActionListener mEditorActionlistener; On 2016/12/15 20:38:36, rouslan wrote: > Please make the lower-case "l" into a capital "L" in the variable name. This > matches its type better. Done. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java:48: OnEditorActionListener actionlistener, @Nullable InputFilter filter, On 2016/12/15 20:38:36, rouslan wrote: > Capital "L" in "listener" would also be good here. Done. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java:122: // Simulate eidtor action to select next selectable field. On 2016/12/15 20:38:36, rouslan wrote: > s/eidtor/editor Done. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java:123: mEditorActionlistener.onEditorAction(mInput, EditorInfo.IME_ACTION_NEXT, On 2016/12/15 20:38:36, rouslan wrote: > I don't know which way is better, but EditorView.java uses a different way to > move to the next field: > > https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chr... > > Can you pick one method, put it in a utility function, and then use it from both > places? Both places use the same method to advance. mEditorActionlistener is the listener passed in by the EditorView. Here we just simulate an action like user clicks next button. https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java:125: } On 2016/12/15 20:38:36, rouslan wrote: > When a user reaches 16 digits, but made a typo (so their card number is > invalid), can you show an error message? That would make it clear to the user > why the usual auto-advance is not happening. Done.
https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... File chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java (right): https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java:123: mEditorActionlistener.onEditorAction(mInput, EditorInfo.IME_ACTION_NEXT, On 2016/12/15 21:46:41, gogerald1 wrote: > On 2016/12/15 20:38:36, rouslan wrote: > > I don't know which way is better, but EditorView.java uses a different way to > > move to the next field: > > > > > https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chr... > > > > Can you pick one method, put it in a utility function, and then use it from > both > > places? > > Both places use the same method to advance. mEditorActionlistener is the > listener passed in by the EditorView. Here we just simulate an action like user > clicks next button. This is a strange round-about way to call the same code. EditorView operates like this: 1) EditorView catches "next" key event. 2) EditorView moves focus. EditorTextField in this patch operates like this: 1) EditorTextField catches "text change" event. 2) EditorTextField fires "next" key event. 3) EditorView catches "next" key event. 4) EditorView moves focus. It seems that steps (2) and (3) in EditorTextField operation can be removed. I was not sure whether you're aware of this. What do you think? If your code is the simplest way to accomplish your goal, keep it. Use your own judgement :-) https://codereview.chromium.org/2585453002/diff/70001/chrome/android/java/src... File chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java (right): https://codereview.chromium.org/2585453002/diff/70001/chrome/android/java/src... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:245: return cardNumber.length() >= 16; == instead of >= please. If the user types in 20 digits, then the answer to the question "is the card number length at maximum?" is "no", because the card number length is *over* maximum. From user behavior stand-point, typing in the 20th digit should not move user focus away from the card number field, because the number is still invalid. The user should press Backspace until they reach exactly 16 digits. That's when the focus should move.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by gogerald@chromium.org to run a CQ dry run
PTAL, https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... File chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java (right): https://codereview.chromium.org/2585453002/diff/2/chrome/android/java/src/org... chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java:123: mEditorActionlistener.onEditorAction(mInput, EditorInfo.IME_ACTION_NEXT, On 2016/12/15 22:53:23, rouslan wrote: > On 2016/12/15 21:46:41, gogerald1 wrote: > > On 2016/12/15 20:38:36, rouslan wrote: > > > I don't know which way is better, but EditorView.java uses a different way > to > > > move to the next field: > > > > > > > > > https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chr... > > > > > > Can you pick one method, put it in a utility function, and then use it from > > both > > > places? > > > > Both places use the same method to advance. mEditorActionlistener is the > > listener passed in by the EditorView. Here we just simulate an action like > user > > clicks next button. > > This is a strange round-about way to call the same code. > > EditorView operates like this: > > 1) EditorView catches "next" key event. > 2) EditorView moves focus. > > EditorTextField in this patch operates like this: > > 1) EditorTextField catches "text change" event. > 2) EditorTextField fires "next" key event. > 3) EditorView catches "next" key event. > 4) EditorView moves focus. > > It seems that steps (2) and (3) in EditorTextField operation can be removed. I > was not sure whether you're aware of this. What do you think? If your code is > the simplest way to accomplish your goal, keep it. Use your own judgement :-) I was aware of what you mentioned. My idea is EditorView hosts all field views, it knows how and what's the next view to focus even though it implements by searching the next view of the EditorTextField, EditorTextField only knows itself. Secondly, 'EditorInfo.IME_ACTION_DONE' has to be handled in EditorView, then we may either split 'EditorInfo.IME_ACTION_NEXT' out of it or handle the 'EditorInfo.IME_ACTION_NEXT' in two different places (In both cases, we handle editor action in two places). So I think it's simple and nature to do it this way. The only different for two paths is the original path is triggered by user, the second path is triggered by text change. Make sense? https://codereview.chromium.org/2585453002/diff/70001/chrome/android/java/src... File chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java (right): https://codereview.chromium.org/2585453002/diff/70001/chrome/android/java/src... chrome/android/java/src/org/chromium/chrome/browser/payments/CardEditor.java:245: return cardNumber.length() >= 16; On 2016/12/15 22:53:23, rouslan wrote: > == instead of >= please. If the user types in 20 digits, then the answer to the > question "is the card number length at maximum?" is "no", because the card > number length is *over* maximum. > > From user behavior stand-point, typing in the 20th digit should not move user > focus away from the card number field, because the number is still invalid. The > user should press Backspace until they reach exactly 16 digits. That's when the > focus should move. Done. Was aware of above situation, but looks I had different considerations :-). Preferred this interface only care about whether the length is long enough or not, but not the validity. For example, if the caller asks whether '20' digits is maximum, we say yes because it is too long (long enough), we can not add additional digits to make it valid. The caller should rely on isValid to check validity and auto-advance with this interface returns true as well. We do not auto-advance with a single only call of this interface even using '==' instead of '>='. But I guess we can consider this interface is asking whether the length is exact maximum. The direct side effect of this definition is that the displayed error will be cleared after user typed in over maximum digits since we 'if (!mEditorFieldModel.isLengthMaximum()) return;'. Might be fine since we give up formatting at that time and the error will be shown after user clicks done.
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
LGTM Love the code, but it would be nice to continue showing error above 16 digits for the common cards. So, for example, if I type 17 digits, would be nice to continue showing an error. Use your own judgment how to accomplish this best.
On 2016/12/16 14:22:15, rouslan wrote: > LGTM > > Love the code, but it would be nice to continue showing error above 16 digits > for the common cards. So, for example, if I type 17 digits, would be nice to > continue showing an error. Use your own judgment how to accomplish this best. Is it possible to test this?
On 2016/12/16 14:32:47, Mathieu Perreault wrote: > On 2016/12/16 14:22:15, rouslan wrote: > > LGTM > > > > Love the code, but it would be nice to continue showing error above 16 digits > > for the common cards. So, for example, if I type 17 digits, would be nice to > > continue showing an error. Use your own judgment how to accomplish this best. > > Is it possible to test this? We could test it since programmatically setText can trigger afterTextChanged event, but I am not pretty sure this is worth since this feature is in a very small code scope with clear logic. But I promise I will do it in the next separate CL if it worth :).
On 2016/12/16 15:37:19, gogerald1 wrote: > On 2016/12/16 14:32:47, Mathieu Perreault wrote: > > On 2016/12/16 14:22:15, rouslan wrote: > > > LGTM > > > > > > Love the code, but it would be nice to continue showing error above 16 > digits > > > for the common cards. So, for example, if I type 17 digits, would be nice to > > > continue showing an error. Use your own judgment how to accomplish this > best. > > > > Is it possible to test this? > > We could test it since programmatically setText can trigger afterTextChanged > event, but I am not pretty sure this is worth since this feature is in a very > small code scope with clear logic. But I promise I will do it in the next > separate CL if it worth :). Since this involves focus jumping around, I think we should have tests that check that this works like expected (instead of us using phones and trying to enter plenty of different card number types). Up to you if you want to do now or in a follow up. lgtm for the autofill validation part
On 2016/12/16 19:11:42, Mathieu Perreault wrote: > On 2016/12/16 15:37:19, gogerald1 wrote: > > On 2016/12/16 14:32:47, Mathieu Perreault wrote: > > > On 2016/12/16 14:22:15, rouslan wrote: > > > > LGTM > > > > > > > > Love the code, but it would be nice to continue showing error above 16 > > digits > > > > for the common cards. So, for example, if I type 17 digits, would be nice > to > > > > continue showing an error. Use your own judgment how to accomplish this > > best. > > > > > > Is it possible to test this? > > > > We could test it since programmatically setText can trigger afterTextChanged > > event, but I am not pretty sure this is worth since this feature is in a very > > small code scope with clear logic. But I promise I will do it in the next > > separate CL if it worth :). > > Since this involves focus jumping around, I think we should have tests that > check that this works like expected (instead of us using phones and trying to > enter plenty of different card number types). Up to you if you want to do now or > in a follow up. lgtm for the autofill validation part The integration tests are under the way. For keep showing error when user typing in more than maximum digits, somehow we need to know whether number of digits is strictly greater or less than maximum valid digits since the user can delete digits (which we do not show error). Do not immediately see a simple solution if we want use '=='. But I think this is a very minor issue, since the user already see the error info, android card number formatter gives up in this case and the user will see the error after clicking done. Record it in the excel.
The CQ bit was checked by gogerald@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 90001, "attempt_start_ts": 1481917253559770, "parent_rev": "96d71c4014f64f191e467535c93e4d58afa317f1", "commit_rev": "9b3286e384f88274269262268681753ba8290bca"}
Message was sent while issue was closed.
Description was changed from ========== Auto-advance to next field after typing in valid credit card with maximum digits BUG=666885 ========== to ========== Auto-advance to next field after typing in valid credit card with maximum digits BUG=666885 Review-Url: https://codereview.chromium.org/2585453002 ==========
Message was sent while issue was closed.
Committed patchset #3 (id:90001)
Message was sent while issue was closed.
Description was changed from ========== Auto-advance to next field after typing in valid credit card with maximum digits BUG=666885 Review-Url: https://codereview.chromium.org/2585453002 ========== to ========== Auto-advance to next field after typing in valid credit card with maximum digits BUG=666885 Committed: https://crrev.com/6225da6964b54104b69959910cd1d7b1edb4778c Cr-Commit-Position: refs/heads/master@{#439173} ==========
Message was sent while issue was closed.
Patchset 3 (id:??) landed as https://crrev.com/6225da6964b54104b69959910cd1d7b1edb4778c Cr-Commit-Position: refs/heads/master@{#439173} |