Chromium Code Reviews| 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 |