Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/dom/base/test/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 14 kB image not shown  

Quelle  referrerHelper.js   Sprache: JAVA

 
/**
 * Listen for notifications from the child.
 * These are sent in case of error, or when the loads we await have completed.
 */

window.addEventListener("message"function (event) {
  if (event.data == "childLoadComplete") {
    // all loads happen, continue the test.
    advance();
  } else if (event.data == "childOverload") {
    // too many loads happened in a test frame, abort.
    ok(false"Too many load handlers called in test.");
    SimpleTest.finish();
  } else if (event.data.indexOf("fail-") == 0) {
    // something else failed in the test frame, abort.
    ok(false"Child failed the test with error " + event.data.substr(5));
    SimpleTest.finish();
  }
});

/**
 * helper to perform an XHR.
 */

function doXHR(url, onSuccess, onFail) {
  var xhr = new XMLHttpRequest();
  xhr.onload = function () {
    if (xhr.status == 200) {
      onSuccess(xhr);
    } else {
      onFail(xhr);
    }
  };
  xhr.open("GET", url, true);
  xhr.send(null);
}

/**
 * This triggers state-resetting on the counter server.
 */

function resetCounter() {
  doXHR(
    "/tests/dom/base/test/bug704320_counter.sjs?reset",
    advance,
    function (xhr) {
      ok(false"Need to be able to reset the request counter");
      SimpleTest.finish();
    }
  );
}

/**
 * Grabs the results via XHR and passes to checker.
 */

function checkIndividualResults(testname, expected) {
  doXHR(
    "/tests/dom/base/test/bug704320_counter.sjs?results",
    function (xhr) {
      var results = JSON.parse(xhr.responseText);
      info(xhr.responseText);

      ok(
        "img" in results,
        testname + " test: some image loads required in results object."
      );
      is(
        results.img.count,
        2,
        testname + " Test: Expected 2 loads for image requests."
      );

      expected.forEach(function (ref) {
        ok(
          results.img.referrers.includes(ref),
          testname +
            " Test: Expected " +
            ref +
            " referrer policy in test, results were " +
            JSON.stringify(results.img.referrers) +
            "."
        );
      });
      advance();
    },
    function (xhr) {
      ok(false"Can't get results from the counter server.");
      SimpleTest.finish();
    }
  );
}

/**
 * Grabs the results via XHR and checks them
 */

function checkExpectedGlobalResults(testName) {
  var url = "bug704320.sjs?action=get-test-results";
  doXHR(
    url,
    function (xhr) {
      var response = JSON.parse(xhr.response);

      for (type in response) {
        for (scheme in response[type]) {
          for (policy in response[type][scheme]) {
            var expectedResult =
              EXPECTED_RESULTS[type] === undefined
                ? EXPECTED_RESULTS.default[scheme][policy]
                : EXPECTED_RESULTS[type][scheme][policy];
            is(
              response[type][scheme][policy],
              expectedResult,
              type + " " + scheme + " " + policy
            );
          }
        }
      }
      advance(testName);
    },
    function (xhr) {
      ok(false"Can't get results from the counter server.");
      SimpleTest.finish();
    }
  );
}

var EXPECTED_RESULTS = {
  // From docshell/base/nsDocShell.cpp:
  //   "If the document containing the hyperlink being audited was not retrieved
  //    over an encrypted connection and its address does not have the same
  //    origin as "ping URL", send a referrer."
  "link-ping": {
    // Same-origin
    "http-to-http": {
      "no-referrer""",
      "unsafe-url""",
      origin: "",
      "origin-when-cross-origin""",
      "no-referrer-when-downgrade""",
      "same-origin""",
      "strict-origin""",
      "strict-origin-when-cross-origin""",
    },
    "http-to-https": {
      "no-referrer""",
      "unsafe-url":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-1st-level-iframe&scheme-from=http&scheme-to=https&policy=unsafe-url",
      origin: "http://example.com/",
      "origin-when-cross-origin""http://example.com/",
      "no-referrer-when-downgrade":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-1st-level-iframe&scheme-from=http&scheme-to=https&policy=no-referrer-when-downgrade",
      "same-origin""",
      "strict-origin""http://example.com/",
      "strict-origin-when-cross-origin""http://example.com/",
    },
    // Encrypted and not same-origin
    "https-to-http": {
      "no-referrer""",
      "unsafe-url""",
      origin: "",
      "origin-when-cross-origin""",
      "no-referrer-when-downgrade""",
      "same-origin""",
      "strict-origin""",
      "strict-origin-when-cross-origin""",
    },
    // Encrypted
    "https-to-https": {
      "no-referrer""",
      "unsafe-url""",
      origin: "",
      "origin-when-cross-origin""",
      "no-referrer-when-downgrade""",
      "same-origin""",
      "strict-origin""",
      "strict-origin-when-cross-origin""",
    },
  },
  // form is tested in a 2nd level iframe.
  form: {
    "http-to-http": {
      "no-referrer""",
      "unsafe-url":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=http&scheme-to=http&policy=unsafe-url&type=form",
      origin: "http://example.com/",
      "origin-when-cross-origin":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=http&scheme-to=http&policy=origin-when-cross-origin&type=form",
      "no-referrer-when-downgrade":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=http&scheme-to=http&policy=no-referrer-when-downgrade&type=form",
      "same-origin":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=http&scheme-to=http&policy=same-origin&type=form",
      "strict-origin""http://example.com/",
      "strict-origin-when-cross-origin":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=http&scheme-to=http&policy=strict-origin-when-cross-origin&type=form",
    },
    "http-to-https": {
      "no-referrer""",
      "unsafe-url":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=http&scheme-to=https&policy=unsafe-url&type=form",
      origin: "http://example.com/",
      "origin-when-cross-origin""http://example.com/",
      "no-referrer-when-downgrade":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=http&scheme-to=https&policy=no-referrer-when-downgrade&type=form",
      "same-origin""",
      "strict-origin""http://example.com/",
      "strict-origin-when-cross-origin""http://example.com/",
    },
    "https-to-http": {
      "no-referrer""",
      "unsafe-url":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=https&scheme-to=http&policy=unsafe-url&type=form",
      origin: "https://example.com/",
      "origin-when-cross-origin""https://example.com/",
      "no-referrer-when-downgrade""",
      "same-origin""",
      "strict-origin""",
      "strict-origin-when-cross-origin""",
    },
    "https-to-https": {
      "no-referrer""",
      "unsafe-url":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=https&scheme-to=https&policy=unsafe-url&type=form",
      origin: "https://example.com/",
      "origin-when-cross-origin":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=https&scheme-to=https&policy=origin-when-cross-origin&type=form",
      "no-referrer-when-downgrade":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=https&scheme-to=https&policy=no-referrer-when-downgrade&type=form",
      "same-origin":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=https&scheme-to=https&policy=same-origin&type=form",
      "strict-origin""https://example.com/",
      "strict-origin-when-cross-origin":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=https&scheme-to=https&policy=strict-origin-when-cross-origin&type=form",
    },
  },
  // window.location is tested in a 2nd level iframe.
  "window.location": {
    "http-to-http": {
      "no-referrer""",
      "unsafe-url":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=http&scheme-to=http&policy=unsafe-url&type=window.location",
      origin: "http://example.com/",
      "origin-when-cross-origin":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=http&scheme-to=http&policy=origin-when-cross-origin&type=window.location",
      "no-referrer-when-downgrade":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=http&scheme-to=http&policy=no-referrer-when-downgrade&type=window.location",
      "same-origin":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=http&scheme-to=http&policy=same-origin&type=window.location",
      "strict-origin""http://example.com/",
      "strict-origin-when-cross-origin":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=http&scheme-to=http&policy=strict-origin-when-cross-origin&type=window.location",
    },
    "http-to-https": {
      "no-referrer""",
      "unsafe-url":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=http&scheme-to=https&policy=unsafe-url&type=window.location",
      origin: "http://example.com/",
      "origin-when-cross-origin""http://example.com/",
      "no-referrer-when-downgrade":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=http&scheme-to=https&policy=no-referrer-when-downgrade&type=window.location",
      "same-origin""",
      "strict-origin""http://example.com/",
      "strict-origin-when-cross-origin""http://example.com/",
    },
    "https-to-http": {
      "no-referrer""",
      "unsafe-url":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=https&scheme-to=http&policy=unsafe-url&type=window.location",
      origin: "https://example.com/",
      "origin-when-cross-origin""https://example.com/",
      "no-referrer-when-downgrade""",
      "same-origin""",
      "strict-origin""",
      "strict-origin-when-cross-origin""",
    },
    "https-to-https": {
      "no-referrer""",
      "unsafe-url":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=https&scheme-to=https&policy=unsafe-url&type=window.location",
      origin: "https://example.com/",
      "origin-when-cross-origin":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=https&scheme-to=https&policy=origin-when-cross-origin&type=window.location",
      "no-referrer-when-downgrade":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=https&scheme-to=https&policy=no-referrer-when-downgrade&type=window.location",
      "same-origin":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=https&scheme-to=https&policy=same-origin&type=window.location",
      "strict-origin""https://example.com/",
      "strict-origin-when-cross-origin":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-2nd-level-iframe&scheme-from=https&scheme-to=https&policy=strict-origin-when-cross-origin&type=window.location",
    },
  },
  default: {
    "http-to-http": {
      "no-referrer""",
      "unsafe-url":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-1st-level-iframe&scheme-from=http&scheme-to=http&policy=unsafe-url",
      origin: "http://example.com/",
      "origin-when-cross-origin":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-1st-level-iframe&scheme-from=http&scheme-to=http&policy=origin-when-cross-origin",
      "no-referrer-when-downgrade":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-1st-level-iframe&scheme-from=http&scheme-to=http&policy=no-referrer-when-downgrade",
      "same-origin":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-1st-level-iframe&scheme-from=http&scheme-to=http&policy=same-origin",
      "strict-origin""http://example.com/",
      "strict-origin-when-cross-origin":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-1st-level-iframe&scheme-from=http&scheme-to=http&policy=strict-origin-when-cross-origin",
    },
    "http-to-https": {
      "no-referrer""",
      "unsafe-url":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-1st-level-iframe&scheme-from=http&scheme-to=https&policy=unsafe-url",
      origin: "http://example.com/",
      "origin-when-cross-origin""http://example.com/",
      "no-referrer-when-downgrade":
        "http://example.com/tests/dom/base/test/bug704320.sjs?action=create-1st-level-iframe&scheme-from=http&scheme-to=https&policy=no-referrer-when-downgrade",
      "same-origin""",
      "strict-origin""http://example.com/",
      "strict-origin-when-cross-origin""http://example.com/",
    },
    "https-to-http": {
      "no-referrer""",
      "unsafe-url":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-1st-level-iframe&scheme-from=https&scheme-to=http&policy=unsafe-url",
      origin: "https://example.com/",
      "origin-when-cross-origin""https://example.com/",
      "no-referrer-when-downgrade""",
      "same-origin""",
      "strict-origin""",
      "strict-origin-when-cross-origin""",
    },
    "https-to-https": {
      "no-referrer""",
      "unsafe-url":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-1st-level-iframe&scheme-from=https&scheme-to=https&policy=unsafe-url",
      origin: "https://example.com/",
      "origin-when-cross-origin":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-1st-level-iframe&scheme-from=https&scheme-to=https&policy=origin-when-cross-origin",
      "no-referrer-when-downgrade":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-1st-level-iframe&scheme-from=https&scheme-to=https&policy=no-referrer-when-downgrade",
      "same-origin":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-1st-level-iframe&scheme-from=https&scheme-to=https&policy=same-origin",
      "strict-origin""https://example.com/",
      "strict-origin-when-cross-origin":
        "https://example.com/tests/dom/base/test/bug704320.sjs?action=create-1st-level-iframe&scheme-from=https&scheme-to=https&policy=strict-origin-when-cross-origin",
    },
  },
};

Messung V0.5
C=84 H=94 G=88

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.