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

Quelle  test_force_refresh.html   Sprache: HTML

 
 products/Sources/formale Sprachen/C/Firefox/dom/serviceworkers/test/test_force_refresh.html


<!--
  Any copyright is dedicated to the Public Domain.
  http://creativecommons.org/publicdomain/zero/1.0/
-->

<!DOCTYPE HTML>
<html>
<head>
  <title>Bug 982726 - Test service worker post message </title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test"></pre>
<script class="testbody" type="text/javascript">
  /**
   *
   */
  let iframe;
  let registration;

  function start() {
    return new Promise(resolve => {
      const content = document.getElementById("content");
      ok(content, "Parent exists.");

      iframe = document.createElement("iframe");
      iframe.setAttribute("src""sw_clients/refresher_compressed.html");

      /*
       * The initial iframe must be the _uncached_ version, which means its
       * load must happen before the Service Worker's `activate` event.
       * Rather than `waitUntil`-ing the Service Worker's `install` event
       * until the load finishes (more concurrency, but involves coordinating
       * `postMessage`s), just ensure the load finishes before registering
       * the Service Worker (which is simpler).
       */
      iframe.onload = resolve;

      content.appendChild(iframe);
    }).then(async () => {
      /*
       * There's no need _here_ to explicitly wait for this Service Worker to be
       * "activated"; this test will progress when the "READY"/"READY_CACHED"
       * messages are received from the iframe, and the iframe will only send
       * those messages once the Service Worker is "activated" (by chaining on
       * its `navigator.serviceWorker.ready` promise).
       */
      registration = await navigator.serviceWorker.register(
        "force_refresh_worker.js", { scope: "./sw_clients/" });
    });
  }

  function unregister() {
    return registration.unregister().then(function(result) {
      ok(result, "Unregister should return true.");
    }, function(e) {
      dump("Unregistering the SW failed with " + e + "\n");
    });
  }

  function testForceRefresh(swr) {
    return new Promise(function(res, rej) {
      var count = 0;
      var cachedCount = 0;
      window.onmessage = function(e) {
        if (e.data === "READY") {
          count += 1;
          if (count == 2) {
            is(cachedCount, 1, "should have received cached message before " +
                               "second non-cached message");
            res();
          }
          iframe.contentWindow.postMessage("REFRESH""*");
        } else if (e.data === "READY_CACHED") {
          cachedCount += 1;
          is(count, 1, "should have received non-cached message before " +
                       "cached message");
          iframe.contentWindow.postMessage("FORCE_REFRESH""*");
        }
      }
    }).then(() => document.getElementById("content").removeChild(iframe));
  }

  function runTest() {
    start()
      .then(testForceRefresh)
      .then(unregister)
      .catch(function(e) {
        ok(false, "Some test failed with error " + e);
      }).then(SimpleTest.finish);
  }

  SimpleTest.waitForExplicitFinish();
  SpecialPowers.pushPrefEnv({"set": [
    ["dom.serviceWorkers.exemptFromPerDomainMax", true],
    ["dom.serviceWorkers.enabled", true],
    ["dom.serviceWorkers.testing.enabled", true],
  ]}, runTest);
</script>
</pre>
</body>
</html>

Messung V0.5
C=100 H=100 G=100

¤ Dauer der Verarbeitung: 0.21 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.