tor-browser

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

xslt_worker.js (1560B)


      1 var testType = "synthetic";
      2 
      3 var xslt =
      4  '<?xml version="1.0"?> ' +
      5  '<xsl:stylesheet version="1.0"' +
      6  '   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">' +
      7  '  <xsl:template match="node()|@*">' +
      8  "    <xsl:copy>" +
      9  '      <xsl:apply-templates select="node()|@*"/>' +
     10  "    </xsl:copy>" +
     11  "  </xsl:template>" +
     12  '  <xsl:template match="Error"/>' +
     13  "</xsl:stylesheet>";
     14 
     15 onfetch = function (event) {
     16  if (event.request.url.includes("test.xsl")) {
     17    if (testType == "synthetic") {
     18      if (event.request.mode != "cors") {
     19        event.respondWith(Response.error());
     20        return;
     21      }
     22 
     23      event.respondWith(
     24        Promise.resolve(
     25          new Response(xslt, {
     26            headers: { "Content-Type": "application/xslt+xml" },
     27          })
     28        )
     29      );
     30    } else if (testType == "cors") {
     31      if (event.request.mode != "cors") {
     32        event.respondWith(Response.error());
     33        return;
     34      }
     35 
     36      var url =
     37        "http://example.com/tests/dom/serviceworkers/test/xslt/xslt.sjs?" +
     38        escape(xslt);
     39      event.respondWith(fetch(url, { mode: "cors" }));
     40    } else if (testType == "opaque") {
     41      if (event.request.mode != "cors") {
     42        event.respondWith(Response.error());
     43        return;
     44      }
     45 
     46      var url =
     47        "http://example.com/tests/dom/serviceworkers/test/xslt/xslt.sjs?" +
     48        escape(xslt);
     49      event.respondWith(fetch(url, { mode: "no-cors" }));
     50    } else {
     51      event.respondWith(Response.error());
     52    }
     53  }
     54 };
     55 
     56 onmessage = function (event) {
     57  testType = event.data;
     58 };