tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

idlharness.any.js (2567B)


      1 // META: global=window,worker,shadowrealm-in-window
      2 // META: script=/resources/WebIDLParser.js
      3 // META: script=/resources/idlharness.js
      4 // META: timeout=long
      5 
      6 idl_test(
      7  ['streams'],
      8  ['dom'], // for AbortSignal
      9  async idl_array => {
     10    // Empty try/catches ensure that if something isn't implemented (e.g., readable byte streams, or writable streams)
     11    // the harness still sets things up correctly. Note that the corresponding interface tests will still fail.
     12 
     13    try {
     14      new ReadableStream({
     15        start(c) {
     16          self.readableStreamDefaultController = c;
     17        }
     18      });
     19    } catch {}
     20 
     21    try {
     22      new ReadableStream({
     23        start(c) {
     24          self.readableByteStreamController = c;
     25        },
     26        type: 'bytes'
     27      });
     28    } catch {}
     29 
     30    try {
     31      let resolvePullCalledPromise;
     32      const pullCalledPromise = new Promise(resolve => {
     33        resolvePullCalledPromise = resolve;
     34      });
     35      const stream = new ReadableStream({
     36        pull(c) {
     37          self.readableStreamByobRequest = c.byobRequest;
     38          resolvePullCalledPromise();
     39        },
     40        type: 'bytes'
     41      });
     42      const reader = stream.getReader({ mode: 'byob' });
     43      reader.read(new Uint8Array(1));
     44      await pullCalledPromise;
     45    } catch {}
     46 
     47    try {
     48      new WritableStream({
     49        start(c) {
     50          self.writableStreamDefaultController = c;
     51        }
     52      });
     53    } catch {}
     54 
     55    try {
     56      new TransformStream({
     57        start(c) {
     58          self.transformStreamDefaultController = c;
     59        }
     60      });
     61    } catch {}
     62 
     63    idl_array.add_objects({
     64      ReadableStream: ["new ReadableStream()"],
     65      ReadableStreamDefaultReader: ["(new ReadableStream()).getReader()"],
     66      ReadableStreamBYOBReader: ["(new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' })"],
     67      ReadableStreamDefaultController: ["self.readableStreamDefaultController"],
     68      ReadableByteStreamController: ["self.readableByteStreamController"],
     69      ReadableStreamBYOBRequest: ["self.readableStreamByobRequest"],
     70      WritableStream: ["new WritableStream()"],
     71      WritableStreamDefaultWriter: ["(new WritableStream()).getWriter()"],
     72      WritableStreamDefaultController: ["self.writableStreamDefaultController"],
     73      TransformStream: ["new TransformStream()"],
     74      TransformStreamDefaultController: ["self.transformStreamDefaultController"],
     75      ByteLengthQueuingStrategy: ["new ByteLengthQueuingStrategy({ highWaterMark: 5 })"],
     76      CountQueuingStrategy: ["new CountQueuingStrategy({ highWaterMark: 5 })"]
     77    });
     78  }
     79 );