OLD | NEW |
---|---|
(Empty) | |
1 var testerResolver; | |
2 var port; | |
3 | |
4 self.addEventListener('message', e => { | |
5 if (e.data.port) { | |
6 port = e.data.port; | |
7 port.postMessage('payment_app_ready'); | |
8 } else { | |
9 // If the message event is initiated from tester, ignores this event. | |
falken
2017/01/24 02:00:51
What is "tester", and why is it sending a message
| |
10 return; | |
11 } | |
12 e.waitUntil(new Promise((resolve) => { | |
13 testerResolver = resolve; | |
14 }) | |
15 .then(() => { | |
16 port.postMessage('payment_app_quit'); | |
17 })); | |
18 }); | |
19 | |
20 function getMessageFromPaymentAppWindow() { | |
21 return new Promise((resolve, reject) => { | |
22 var listener = self.addEventListener('message', e => { | |
23 resolve(e.data); | |
24 self.removeEventListener(listener); | |
falken
2017/01/24 02:00:51
nit: Having multiple message handlers seems more c
| |
25 }); | |
26 }); | |
27 } | |
28 | |
29 self.addEventListener('paymentrequest', e => { | |
30 var paymentAppWindow; | |
31 | |
32 e.waitUntil(clients.openWindow('payment-app-window.html') | |
33 .then(windowClient => { | |
34 paymentAppWindow = windowClient; | |
35 return getMessageFromPaymentAppWindow(); | |
36 }) | |
37 .then(message => { | |
38 if (message == 'payment_app_window_ready') | |
falken
2017/01/24 02:00:51
What other message could arrive here? Could this b
| |
39 paymentAppWindow.postMessage('payment_app_request'); | |
40 return getMessageFromPaymentAppWindow(); | |
41 }) | |
42 .then(message => { | |
43 if (message == 'payment_app_response') { | |
falken
2017/01/24 02:00:51
Same.
| |
44 // Disconnect tester. | |
45 testerResolver(); | |
46 } | |
47 })); | |
48 }); | |
OLD | NEW |