Revision 7c96c90ed8f1b469c37f06c37f248c42535060b8 authored by Hiroki Nakagawa on 26 March 2018, 09:29:42 UTC, committed by Chromium WPT Sync on 26 March 2018, 09:29:42 UTC
This CL allows dynamic import() on DedicatedWorkerGlobalScope and adds WPT
tests. Note that ES Modules on DedicatedWorker is an experimental feature behind
the runtime flag.

Design doc:
https://docs.google.com/document/d/1IMGWAK7Wq37mLehwkbysNRBBnhQBo3z2MbYyMkViEnY/edit#heading=h.637avx8i5qtn

Bug: 680046
Change-Id: I1f8fed5c319aab634f96bcfabeb3c95f5dc7d9a7
Reviewed-on: https://chromium-review.googlesource.com/970127
Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Kouhei Ueno <kouhei@chromium.org>
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Reviewed-by: Makoto Shimazu <shimazu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545748}
1 parent 4ff4c66
Raw File
RTCDataChannel-id.html
<!doctype html>
<meta charset=utf-8>
<title>RTCDataChannel id attribute</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script>
'use strict';

// This and the test below verify that after a description is set that
// negotiates the DTLS role used by SCTP, data channels with unset IDs
// have IDs set according to the rules in rtcweb-data-channel.
promise_test(test => {
  const pc = new RTCPeerConnection;
  const channel = pc.createDataChannel('');
  return pc.createOffer()
  .then(offer => pc.setLocalDescription(offer))
  .then(() => {
    // Turn our own offer SDP into valid answer SDP by setting the DTLS role to
    // "active".
    const answer = {
      type: "answer",
      sdp: pc.localDescription.sdp.replace("actpass", "active")
    };
    return pc.setRemoteDescription(answer);
  })
  .then(() => {
    // Since the remote description had an "active" DTLS role, we're the server
    // and should use odd data channel IDs, according to rtcweb-data-channel.
    assert_equals(channel.id % 2, 1, 'id');
    const another_channel = pc.createDataChannel('another');
    assert_equals(another_channel.id % 2, 1, 'id');
    assert_not_equals(channel.id, another_channel.id);
  })
}, "DTLS client uses odd data channel IDs");

promise_test(test => {
  const pc = new RTCPeerConnection;
  const channel = pc.createDataChannel('');
  return pc.createOffer()
  .then(offer => pc.setLocalDescription(offer))
  .then(() => {
    // Turn our own offer SDP into valid answer SDP by setting the DTLS role to
    // "passive".
    const answer = {
      type: "answer",
      sdp: pc.localDescription.sdp.replace("actpass", "passive")
    };
    return pc.setRemoteDescription(answer);
  })
  .then(() => {
    // Since the remote description had a "passive" DTLS role, we're the client
    // and should use even data channel IDs, according to rtcweb-data-channel.
    assert_equals(channel.id % 2, 0, 'id');
    const another_channel = pc.createDataChannel('another');
    assert_equals(another_channel.id % 2, 0, 'id');
    assert_not_equals(channel.id, another_channel.id);
  })
}, "DTLS server uses even data channel IDs");

</script>
back to top