summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/media-source/idlharness.window.js
blob: 9300f67fe04f21454a96bb14f6f0b8a059d8e00d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// META: script=/resources/WebIDLParser.js
// META: script=/resources/idlharness.js
// META: timeout=long

// https://w3c.github.io/media-source/

'use strict';

idl_test(
  ['media-source'],
  ['dom', 'html', 'url'],
  async idl_array => {
    idl_array.add_objects({
      MediaSource: ['mediaSource'],
      SourceBuffer: ['sourceBuffer'],
      SourceBufferList: ['mediaSource.sourceBuffers'],
    });

    const video = document.createElement('video');
    self.mediaSource = new MediaSource();
    video.src = URL.createObjectURL(mediaSource);

    self.sourceBuffer = await new Promise((resolve, reject) => {
      mediaSource.addEventListener('sourceopen', () => {
        var defaultType = 'video/webm;codecs="vp8,vorbis"';
        if (MediaSource.isTypeSupported(defaultType)) {
          resolve(mediaSource.addSourceBuffer(defaultType));
        } else {
          resolve(mediaSource.addSourceBuffer('video/mp4'));
        }
      });
      step_timeout(() => reject(new Error('sourceopen event not fired')), 3000);
    });
  }
);