• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html>
2<meta charset="utf-8">
3<script src="/resources/testharness.js"></script>
4<script src="helpers.js"></script>
5<script>
6'use strict';
7
8setup({
9  explicit_done: true
10});
11
12function startTests() {
13  promise_test(() => {
14    const orig = createOriginalReadableStream();
15    const promise = checkTestResults(navigator.serviceWorker);
16    navigator.serviceWorker.controller.postMessage(orig, [orig]);
17    assert_true(orig.locked, 'the original stream should be locked');
18    return promise;
19  }, 'serviceWorker.controller.postMessage should be able to transfer a ' +
20               'ReadableStream');
21
22  promise_test(() => {
23    const promise = testMessageEventOrErrorMessage(navigator.serviceWorker);
24    navigator.serviceWorker.controller.postMessage('SEND');
25    return promise;
26  }, 'postMessage in a service worker should be able to transfer ReadableStream');
27
28  done();
29}
30
31// Delay running the tests until we get a message from the page telling us to.
32// This is to work around an issue where testharness.js doesn't detect
33// completion of the tests if they fail too early.
34onmessage = msg => {
35  if (msg.data === 'explicit trigger')
36    startTests();
37};
38
39</script>
40