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

Quelle  test_navigator_buildID.html   Sprache: HTML

 
 products/Sources/formale Sprachen/C/Firefox/dom/tests/mochitest/bugs/test_navigator_buildID.html


<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=583181
-->

<head>
  <title>Test for Bug 583181</title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <script src="/tests/SimpleTest/ChromeTask.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body onload="onLoad()">
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=583181">Mozilla Bug 583181</a>
<p id="display"></p>
<div id="content" style="display: none">

</div>
<pre id="test">
<script class="testbody" type="text/javascript">
"use strict";

SimpleTest.waitForExplicitFinish();

const LEGACY_BUILD_ID = 20181001000000;

//
// Access navigator.buildID from unprivileged web content.
//
var isOK = false;
try {
  var contentBuildID = navigator.buildID;
  isOK = true;
} catch (ex) {
}
ok(isOK, "navigator.buildID should never throw");
is(typeof(contentBuildID), "string""navigator.buildID should be a string");
is(+contentBuildID, LEGACY_BUILD_ID,
   "navigator.buildID should be spoofed in content");

async function onLoad() {
  //
  // Access navigator.buildID from chrome.
  //
  let chromeBuildID = await ChromeTask.spawn(null, () => {
    const browser = Services.wm.getMostRecentBrowserWindow();
    return browser.navigator.buildID;
  });

  ok(+chromeBuildID > LEGACY_BUILD_ID,
     `navigator.buildID should be exposed in chrome - got "${chromeBuildID}"`);

  //
  // Access navigator.buildID from mozilla.org.
  //
  let mozillaBuildID = await getMozillaBuildID();

  ok(+mozillaBuildID > LEGACY_BUILD_ID,
     `navigator.buildID should be exposed on mozilla.org ` +
     `- got "${mozillaBuildID}"`);
  is(chromeBuildID, mozillaBuildID,
     "navigator.buildID should be the same in chrome and on mozilla.org");

  //
  // Access navigator.buildID from mozilla.org when resisting fingerprinting.
  //
  await SpecialPowers.pushPrefEnv(
    {"set": [["privacy.resistFingerprinting", true]]});

  let resistBuildID = await getMozillaBuildID();

  is(+resistBuildID, LEGACY_BUILD_ID,
     "navigator.buildID should be spoofed on mozilla.org when " +
     "resisting fingerprinting");

  SimpleTest.finish();
}

async function getMozillaBuildID() {
  let iframe = document.getElementById("mozillaIFrame");

  await new Promise(resolve => {
    iframe.addEventListener("load", resolve, { once: true });
    SpecialPowers.spawn(iframe, [], () => this.content.location.reload());
  });

  return SpecialPowers.spawn(
    iframe, [], () => this.content.wrappedJSObject.navigator.buildID);
}
</script>
</pre>
<iframe id="mozillaIFrame" src="https://www.mozilla.org/" />
</body>
</html>

Messung V0.5
C=83 H=80 G=81

¤ Dauer der Verarbeitung: 0.4 Sekunden  ¤

*© 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.