Commit 3e2590b6 authored by Kagami Sascha Rosylight's avatar Kagami Sascha Rosylight
Browse files

Bug 1834800 - Skip [CloseAnd]ReleaseObjects in ErrorPropagation r=smaug

ErrorNative already calls ReleaseObjects, no need to do it again.

Differential Revision: https://phabricator.services.mozilla.com/D178947
parent a7e60c4d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -343,7 +343,7 @@ void BodyStream::ErrorPropagation(JSContext* aCx, ReadableStream* aStream,
    mInputStream->CloseWithStatus(NS_BASE_STREAM_CLOSED);
  }

  ReleaseObjects();
  MOZ_ASSERT(IsClosed());
}

// https://fetch.spec.whatwg.org/#concept-bodyinit-extract
+1 −2
Original line number Diff line number Diff line
@@ -455,8 +455,7 @@ void InputToReadableStreamAlgorithms::ErrorPropagation(JSContext* aCx,
    NS_WARNING_ASSERTION(!rv.Failed(), "Failed to error InputToReadableStream");
  }

  MOZ_ASSERT(mInput);
  CloseAndReleaseObjects(aCx, aStream);
  MOZ_ASSERT(IsClosed());
}

}  // namespace mozilla::dom
+24 −0
Original line number Diff line number Diff line
<!DOCTYPE html>
<meta charset="utf-8">
<html class="test-wait">
<script src="/common/get-host-info.sub.js"></script>
<script src="resources/webtransport-test-helpers.sub.js"></script>
<script type="module">
  const WT_CODE = 127;
  const HTTP_CODE = webtransport_code_to_http_code(WT_CODE);
  const wt = new WebTransport(
    webtransport_url(`abort-stream-from-server.py?code=${HTTP_CODE}`));
  await wt.ready;

  const bidi = await wt.createBidirectionalStream();
  const writer = bidi.writable.getWriter();

  const reader = bidi.readable.getReader();
  reader.read();

  // Write something, to make the stream visible to the server side.
  await writer.write(new Uint8Array([64]));

  const e = await reader.closed.catch(e => e);
  document.documentElement.classList.remove("test-wait");
</script>