untrusted-event.js (1247B)
1 let sender = null; 2 3 self.addEventListener('message', e => { 4 sender = e.source; 5 6 if (e.data == 'paymentrequest') { 7 self.dispatchEvent(new PaymentRequestEvent('paymentrequest', { 8 methodData: [{ 9 supportedMethods: 'https://example.com/pay' 10 }], 11 total: { 12 currency: 'USD', 13 value: '100' 14 }, 15 modifiers: [{ 16 supportedMethods: 'https://example.com/pay' 17 }] 18 })); 19 } else if (e.data == 'canmakepayment') { 20 self.dispatchEvent(new CanMakePaymentEvent('canmakepayment', { 21 methodData: [{ 22 supportedMethods: 'https://example.com/pay' 23 }], 24 modifiers: [{ 25 supportedMethods: 'https://example.com/pay' 26 }] 27 })); 28 } 29 }); 30 31 self.addEventListener('paymentrequest', async e => { 32 const result = []; 33 34 try { 35 e.respondWith({}); 36 } catch (exception) { 37 result.push(exception.name); 38 } 39 40 try { 41 await e.openWindow('payment-app/payment.html'); 42 } catch (exception) { 43 result.push(exception.name); 44 } 45 46 sender.postMessage(result); 47 }); 48 49 self.addEventListener('canmakepayment', async e => { 50 const result = []; 51 52 try { 53 e.respondWith({}); 54 } catch (exception) { 55 result.push(exception.name); 56 } 57 58 sender.postMessage(result); 59 });