Open Bug 1501285 Opened 6 years ago Updated 2 years ago

Payment Request widget can take time to appear

Categories

(Firefox :: WebPayments UI, defect, P3)

All
Windows
defect

Tracking

()

People

(Reporter: tbabos, Unassigned)

References

(Blocks 1 open bug, )

Details

(Whiteboard: [webpayments-reserve])

User Story

Link to spec:
https://mozilla.invisionapp.com/share/S5FXRY0D8TZ#/326661449_11-1_Tab_Model_Specs

Potential implementation:
* centering the loading indicator as a child of <div id="disabled-overlay"> which is only shown when the `payment-dialog[complete-status="initial"]`
* The disabled-overlay should appear (via state.preventChanges) when completeStatus is "initial".
* The cancel button should be visible and active so add a rule for that to the `payment-dialog[complete-status="processing"] #pay` ruleset and the `payment-dialog[changes-prevented][complete-status="fail"] #pay,…` ruleset.
* The fade in of the content happens with a 120ms duration
* Also fade in and out the loading indicator with a 70ms duration.

Attachments

(3 files)

[Affected versions]:
Nightly 65.0a1

[Affected platforms]:
Windows 7/10 x64

[Prerequisites]:
- set the pref browser.search.region to US or CA
- have saved cards on your profile

[Steps to reproduce]:
1. Go to https://rsolomakhin.github.io/pr/single/ 
2. Click on "Buy" button
*for the crash: minimize and maximize the browser several times

[Expected Result]:
The Payment Request widget should be instantly opened as it was before.

[Actual Result]: 
The Payment Widget is only opened after 5-8 seconds (as it can be seen in the attached video) and occasionally the pickers from the summary page are messed up (https://imgur.com/RpDiBHd) 

The browser crashed several times upon reproducing this issue -  I kept resizing the window - while the widget was still displayed and partly functional (https://imgur.com/3mHslKN)

[Notes]:
Seems to be quite intermittent, I can reproduce it 7/10 times for the first time in a Nightly session. If the widget was correctly displayed for the first time it will be displayed correctly afterwards until the browser is restarted.

Crash Signature for Win 7 crash: https://crash-stats.mozilla.com/report/index/2687c8d9-bf1e-4dba-9888-93d540181023#tab-details

Crash Signature for Win 10 crash: https://crash-stats.mozilla.com/report/index/d97952e3-4131-4251-951a-58d160181023#tab-details
Flags: qe-verify+
Priority: -- → P2
Whiteboard: [webpayments] [triage] → [webpayments] [ux]
Assignee: nobody → epang
Status: NEW → ASSIGNED
Priority: P2 → P1
Summary: Payment Request widget has delayed response time and might cause the browser to crash → Payment Request widget can take time to appear
Blocks: payment-request-tab-modal
No longer blocks: 1435871
I added some steps to the other crash report you mentioned (Bug 1392621). It's very intermittent, 9/50 retries. 

Regarding this one that its still related to the issue, I could not reproduce it anymore at all. Maybe it was something extremely random or edge case. Anyways, if I ever encounter it once again, will file a separate bug for it and hopefully get some reliable steps.

Thanks Matt!
Flags: needinfo?(timea.babos)
Attached video Tab Modal Loading.mp4
for this edge cause we should show a loading mode. The modal should start of white with the loading indicator. 

See motion and spec here: https://mozilla.invisionapp.com/share/S5FXRY0D8TZ#/326661449_11-1_Tab_Model_Specs
Assignee: epang → nobody
Status: ASSIGNED → NEW
Whiteboard: [webpayments] [ux] → [webpayments]
Moving to triage so team can review and decide if this bug should be MVP or reserve.
Priority: P1 → --
Whiteboard: [webpayments] → [webpayments] [triage]
Thanks! Removing the crash signature for now since this is focusing on the delay. We'll need the DOM to tell us that a .show() happened before the promise resolved so I'll file a DOM bug for that.
Crash Signature: [@ mozilla::layers::ContainerLayerMLGPU::ComputeIntermediateSurfaceBounds ]
Depends on: 1501823
User Story: (updated)
Priority: -- → P3
Whiteboard: [webpayments] [triage] → [webpayments-reserve]
Eric, where are we supposed to get the animation details and/or assets for the loading indicator (blue moving dot)?
User Story: (updated)
Flags: needinfo?(epang)
dpino, to follow-up on your IRC message:

> The cancel button is enabled but it doesn't cancel a processing paymentRequest.

That may depend on bug 1510019 then. You can leave that for a new bug depending on bug 1510019.
Flags: needinfo?(dpino)
See Also: → 1510019
Uploading this for now. It covers some of the items from the issue description:

- The cancel button should be visible and active.
- Centering the loading indicator as a child of <div id="disabled-overlay"> which is only shown when the `payment-dialog[complete-status="initial"]`. NOTE: Since I couldn't find the loading indicator I used an asterisk for now.

Pending:

* The fade in of the content happens with a 120ms duration
* Also fade in and out the loading indicator with a 70ms duration.
* Replace asterisk for loading indicator.
Flags: needinfo?(dpino)
Attachment #9029244 - Flags: feedback?(epang)
Assignee: nobody → dpino
Status: NEW → ASSIGNED
Priority: P3 → P1
Attachment #9029244 - Flags: feedback?(epang) → feedback?(MattN+bmo)
Comment on attachment 9029244 [details] [diff] [review]
Bug-1501285-Payment-Request-widget-can-take-time-to-.patch

Review of attachment 9029244 [details] [diff] [review]:
-----------------------------------------------------------------

This is missing the work to handle the new completeStatus == "initial" so there is still quite a bit to do. I think we should just put this aside until Web Payments is a priority again. Thanks for your start on this.
Attachment #9029244 - Flags: feedback?(MattN+bmo)
Flags: needinfo?(epang)
Assignee: dpino → nobody
Status: ASSIGNED → NEW
Priority: P1 → P3
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: