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

Side by Side Diff: content/test/data/payments/payment_app.js

Issue 2785093003: Fix flaky TEST PaymentAppBrowserTest.PaymentAppInvocation. (Closed)
Patch Set: Created 3 years, 8 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 function sendResultToTest(data) {
arthursonzogni 2017/03/30 15:15:50 I removed this function. I don't think it is calle
6 clients.matchAll({includeUncontrolled: true}).then(clients => {
7 clients.forEach(client => {
8 if (client.url.indexOf('payment_app_invocation.html') != -1) {
9 client.postMessage(data);
10 }
11 });
12 });
13 }
14
15 function getMessageFromPaymentAppWindow() {
16 return new Promise((resolve, reject) => {
17 var listener = self.addEventListener('message', e => {
18 resolve(e.data);
19 self.removeEventListener(listener);
20 });
21 });
22 }
23
24 self.addEventListener('paymentrequest', e => { 5 self.addEventListener('paymentrequest', e => {
25 var payment_app_window;
26
27 // SW -------------------- openWindow() ------------------> payment_app_window 6 // SW -------------------- openWindow() ------------------> payment_app_window
28 // SW <----- postMessage('payment_app_window_ready') ------ payment_app_window 7 // SW <----- postMessage('payment_app_window_ready') ------ payment_app_window
29 // SW -------- postMessage('payment_app_request') --------> payment_app_window 8 // SW -------- postMessage('payment_app_request') --------> payment_app_window
30 // SW <-- postMessage({methodName: 'test', details: {}}) -- payment_app_window 9 // SW <-- postMessage({methodName: 'test', details: {}}) -- payment_app_window
31 e.respondWith(new Promise(resolve => { 10 e.respondWith(new Promise(resolve => {
11 let payment_app_window = undefined;
12 let window_ready = false;
13
14 let maybeSendPaymentRequest = function() {
15 if (payment_app_window && window_ready)
16 payment_app_window.postMessage('payment_app_request');
17 };
18
19 self.addEventListener('message', e => {
20 if (e.data == "payment_app_window_ready") {
21 window_ready = true;
22 maybeSendPaymentRequest();
23 return;
24 }
25
26 if (e.data.methodName) {
27 resolve(e.data);
28 return;
29 }
30 });
31
32 // Open a window
32 clients.openWindow('payment_app_window.html') 33 clients.openWindow('payment_app_window.html')
33 .then(window_client => { 34 .then(window_client => {
34 payment_app_window = window_client; 35 payment_app_window = window_client;
35 return getMessageFromPaymentAppWindow(); 36 maybeSendPaymentRequest();
36 }) 37 })
37 .then(message => {
38 payment_app_window.postMessage('payment_app_request');
39 return getMessageFromPaymentAppWindow();
40 })
41 .then(message => {
42 resolve(message);
43 });
44 })); 38 }));
45 }); 39 });
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698