dom/broadcastchannel/tests/test_broadcastchannel_sharedWorker.html
author Makoto Kato <m_kato@ga2.so-net.ne.jp>
Mon, 14 Jul 2025 05:41:12 +0000 (10 hours ago)
changeset 796406 1e02bb4c2af2efa34f8335befa373d2b39383b02
parent 469641 ba6f655fd68963530c866d0d4a48c3db3d307777
permissions -rw-r--r--
Bug 1973726 - Set DOM file path for webkitRelativePath. r=sefeng,geckoview-reviewers,webidl,smaug,ohall Actually, there is no way to set webkitRelativePath from JavaScript. Since GeckoView's folder picker handles virtual file data, we need to set relative path from JavaScript directly. A content URI of System storage document provider only allow file data access from file/folder picker, so there is no way to test it on geckoivew-junit. Also, after landing bug 1591640, GVE always crash when using folder picker. So this includes a fix for it. Differential Revision: https://phabricator.services.mozilla.com/D255615
<!--
  Any copyright is dedicated to the Public Domain.
  http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<!--
Tests of DOM BroadcastChannel in SharedWorkers
-->
<head>
  <title>Test for BroadcastChannel in SharedWorkers</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">
<script class="testbody" language="javascript">

function runTests() {
  var worker = new SharedWorker("broadcastchannel_sharedWorker.js");

  var bc = new BroadcastChannel("foobar");

  worker.port.onmessage = function(event) {
    if (event.data == "READY") {
      ok(true, "SharedWorker is ready!");
      bc.postMessage("hello world from the window");
    } else {
      ok(false, "Something wrong happened");
    }
  };

  bc.onmessage = function(event) {
    is("hello world from the worker", event.data, "The message matches!");
    bc.close();
    SimpleTest.finish();
  };

  worker.port.postMessage("go");
}

SimpleTest.waitForExplicitFinish();
runTests();

</script>
</pre>
</body>
</html>