Home | History | Annotate | Download | only in workers
      1 // Track the number of clients for this worker - tests can use this to ensure
      2 // that shared workers are actually shared, not distinct.
      3 var num_clients = 0;
      4 
      5 if (!self.postMessage) {
      6   // This is a shared worker - mimic dedicated worker APIs
      7   onconnect = function(event) {
      8     num_clients++;
      9     event.ports[0].onmessage = function(e) {
     10       self.postMessage = function(msg) {
     11         event.ports[0].postMessage(msg);
     12       };
     13       self.onmessage(e);
     14     };
     15   };
     16 } else {
     17   num_clients++;
     18 }
     19 onmessage = function(evt) {
     20   if (evt.data == "ping")
     21     postMessage("pong");
     22   else if (evt.data == "auth")
     23     importScripts("/auth-basic");
     24   else if (evt.data == "close")
     25     close();
     26   else if (/eval.+/.test(evt.data)) {
     27     try {
     28       postMessage(eval(evt.data.substr(5)));
     29     } catch (ex) {
     30       postMessage(ex);
     31     }
     32   }
     33 }
     34