New issue
Advanced search Search tips

Issue 679399 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 3
Type: Bug



Sign in to add a comment

Add timeout to close the iOS Payment Request UI if the page does not call PaymentResponse.complete()

Project Member Reported by jdonnelly@chromium.org, Jan 9 2017

Issue description

Per https://www.w3.org/TR/payment-request/#complete-method:

"if something goes wrong and the page never calls complete then the user interface is blocked. For this reason, implementations may choose to impose a timeout for the page to call complete. If the timeout expires then the implementation will behave as if complete was called with no arguments."

The timeout should be 60 seconds to match the Blink implementation:
https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/payments/PaymentRequest.cpp
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jan 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c2b04f241c4d84d52c9c01c8044007c92cbb7ae4

commit c2b04f241c4d84d52c9c01c8044007c92cbb7ae4
Author: jdonnelly <jdonnelly@chromium.org>
Date: Wed Jan 18 21:14:30 2017

Add a timeout if the page doesn't call complete() in a timely fashion.

Also:
- Periodically execute a JS noop to work around an issue where the JS event queue is blocked when presenting the Payment Request UI.
- Remove handling for rejecting PaymentResponse, since the spec doesn't actually call for ever doing this. (See https://www.w3.org/TR/payment-request/#complete-method.)

BUG= 679399 ,677337

Review-Url: https://codereview.chromium.org/2632463003
Cr-Commit-Position: refs/heads/master@{#444480}

[modify] https://crrev.com/c2b04f241c4d84d52c9c01c8044007c92cbb7ae4/ios/chrome/browser/payments/js_payment_request_manager.h
[modify] https://crrev.com/c2b04f241c4d84d52c9c01c8044007c92cbb7ae4/ios/chrome/browser/payments/js_payment_request_manager.mm
[modify] https://crrev.com/c2b04f241c4d84d52c9c01c8044007c92cbb7ae4/ios/chrome/browser/payments/payment_request_manager.mm
[modify] https://crrev.com/c2b04f241c4d84d52c9c01c8044007c92cbb7ae4/ios/chrome/browser/payments/resources/payment_request_manager.js

Status: Fixed (was: Started)
Components: -UI>Browser>Autofill>Payments UI>Browser>Payments

Sign in to add a comment