tor-browser

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

response-stream-disturbed-2.any.js (1618B)


      1 // META: global=window,worker
      2 // META: title=Consuming Response body after getting a ReadableStream
      3 // META: script=./response-stream-disturbed-util.js
      4 
      5 async function createResponseWithLockedReadableStream(bodySource, callback) {
      6  const response = await responseFromBodySource(bodySource);
      7    response.body.getReader();
      8    return callback(response);
      9 }
     10 
     11 for (const bodySource of ["fetch", "stream", "string"]) {
     12    promise_test(function(test) {
     13        return createResponseWithLockedReadableStream(bodySource, function(response) {
     14            return promise_rejects_js(test, TypeError, response.blob());
     15        });
     16    }, `Getting blob after getting a locked Response body (body source: ${bodySource})`);
     17 
     18    promise_test(function(test) {
     19        return createResponseWithLockedReadableStream(bodySource, function(response) {
     20            return promise_rejects_js(test, TypeError, response.text());
     21        });
     22    }, `Getting text after getting a locked Response body (body source: ${bodySource})`);
     23 
     24    promise_test(function(test) {
     25        return createResponseWithLockedReadableStream(bodySource, function(response) {
     26            return promise_rejects_js(test, TypeError, response.json());
     27        });
     28    }, `Getting json after getting a locked Response body (body source: ${bodySource})`);
     29 
     30    promise_test(function(test) {
     31        return createResponseWithLockedReadableStream(bodySource, function(response) {
     32            return promise_rejects_js(test, TypeError, response.arrayBuffer());
     33        });
     34    }, `Getting arrayBuffer after getting a locked Response body (body source: ${bodySource})`);
     35 }