tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 });