tor-browser

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

worker_postMessages.js (1554B)


      1 function test_workers() {
      2  onmessage = function (e) {
      3    postMessage(e.data, e.ports);
      4  };
      5 
      6  onmessageerror = function (e) {
      7    postMessage("error");
      8  };
      9 }
     10 
     11 function test_sharedWorkers(port) {
     12  port.onmessage = function (e) {
     13    if (e.data == "terminate") {
     14      close();
     15    } else {
     16      port.postMessage(e.data, e.ports);
     17    }
     18  };
     19 
     20  port.onmessageerror = function (e) {
     21    port.postMessage("error");
     22  };
     23 }
     24 
     25 function test_broadcastChannel(obj) {
     26  var bc = new BroadcastChannel("postMessagesTest_inWorkers");
     27  bc.onmessage = function (e) {
     28    obj.postMessage(e.data);
     29  };
     30 
     31  bc.onmessageerror = function () {
     32    obj.postMessage("error");
     33  };
     34 }
     35 
     36 function test_messagePort(port) {
     37  port.onmessage = function (e) {
     38    postMessage(e.data, e.ports);
     39  };
     40 
     41  port.onmessageerror = function (e) {
     42    postMessage("error");
     43  };
     44 }
     45 
     46 onconnect = function (e) {
     47  e.ports[0].onmessage = ee => {
     48    if (ee.data == "sharedworkers") {
     49      test_sharedWorkers(e.ports[0]);
     50      e.ports[0].postMessage("ok");
     51    } else if (ee.data == "broadcastChannel") {
     52      test_broadcastChannel(e.ports[0]);
     53      e.ports[0].postMessage("ok");
     54    } else if (ee.data == "terminate") {
     55      close();
     56    }
     57  };
     58 };
     59 
     60 onmessage = function (e) {
     61  if (e.data == "workers") {
     62    test_workers();
     63    postMessage("ok");
     64  } else if (e.data == "broadcastChannel") {
     65    test_broadcastChannel(self);
     66    postMessage("ok");
     67  } else if (e.data == "messagePort") {
     68    test_messagePort(e.ports[0]);
     69    postMessage("ok");
     70  } else {
     71    postMessage("ko");
     72  }
     73 };