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

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

Issue 2718013004: PaymentApp: Implement respondWith() in PaymentRequestEvent. (content side) (Closed)
Patch Set: rebase 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
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) { 5 function sendResultToTest(data) {
6 clients.matchAll({includeUncontrolled: true}).then(clients => { 6 clients.matchAll({includeUncontrolled: true}).then(clients => {
7 clients.forEach(client => { 7 clients.forEach(client => {
8 if (client.url.indexOf('payment_app_invocation.html') != -1) { 8 if (client.url.indexOf('payment_app_invocation.html') != -1) {
9 client.postMessage(data); 9 client.postMessage(data);
10 } 10 }
11 }); 11 });
12 }); 12 });
13 } 13 }
14 14
15 function getMessageFromPaymentAppWindow() { 15 function getMessageFromPaymentAppWindow() {
16 return new Promise((resolve, reject) => { 16 return new Promise((resolve, reject) => {
17 var listener = self.addEventListener('message', e => { 17 var listener = self.addEventListener('message', e => {
18 resolve(e.data); 18 resolve(e.data);
19 self.removeEventListener(listener); 19 self.removeEventListener(listener);
20 }); 20 });
21 }); 21 });
22 } 22 }
23 23
24 self.addEventListener('paymentrequest', e => { 24 self.addEventListener('paymentrequest', e => {
25 var payment_app_window; 25 var payment_app_window;
26 26
27 // SW ------------------ openWindow() -----------------> payment_app_window 27 // SW -------------------- openWindow() ------------------> payment_app_window
28 // SW <---- postMessage('payment_app_window_ready') ---- payment_app_window 28 // SW <----- postMessage('payment_app_window_ready') ------ payment_app_window
29 // SW ------- postMessage('payment_app_request') ------> payment_app_window 29 // SW -------- postMessage('payment_app_request') --------> payment_app_window
30 // SW <------ postMessage('payment_app_response') ------ payment_app_window 30 // SW <-- postMessage({methodName: 'test', details: {}}) -- payment_app_window
31 e.waitUntil(clients.openWindow('payment_app_window.html') 31 e.respondWith(new Promise(resolve => {
32 .then(window_client => { 32 clients.openWindow('payment_app_window.html')
33 payment_app_window = window_client; 33 .then(window_client => {
34 return getMessageFromPaymentAppWindow(); 34 payment_app_window = window_client;
35 }) 35 return getMessageFromPaymentAppWindow();
36 .then(message => { 36 })
37 sendResultToTest(message); 37 .then(message => {
38 payment_app_window.postMessage('payment_app_request'); 38 payment_app_window.postMessage('payment_app_request');
39 return getMessageFromPaymentAppWindow(); 39 return getMessageFromPaymentAppWindow();
40 }) 40 })
41 .then(message => { sendResultToTest(message); })); 41 .then(message => {
42 resolve(message);
43 });
44 }));
42 }); 45 });
OLDNEW
« no previous file with comments | « content/renderer/service_worker/service_worker_context_client.cc ('k') | content/test/data/payments/payment_app_window.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698