Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1239)

Unified Diff: third_party/WebKit/Source/core/streams/WritableStream.js

Issue 2561443004: Implementation of ReadableStream pipeTo and pipeThrough (Closed)
Patch Set: Rebase and move includes to .gn Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/core/streams/ReadableStreamExperimentalPipeTo.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/core/streams/WritableStream.js
diff --git a/third_party/WebKit/Source/core/streams/WritableStream.js b/third_party/WebKit/Source/core/streams/WritableStream.js
index e987cedd7f85b4496a9d3cff686013165fcf546d..38f7adc1fa5c52471f8e4ae6017e6fcd8e87bd9a 100644
--- a/third_party/WebKit/Source/core/streams/WritableStream.js
+++ b/third_party/WebKit/Source/core/streams/WritableStream.js
@@ -364,6 +364,26 @@
}
}
+ // Functions to expose internals for ReadableStream.pipeTo. These are not
+ // part of the standard.
+ function isWritableStreamErrored(stream) {
+ TEMP_ASSERT(
+ IsWritableStream(stream), '! IsWritableStream(stream) is true.');
+ return stream[_state] === ERRORED;
+ }
+
+ function isWritableStreamClosingOrClosed(stream) {
+ TEMP_ASSERT(
+ IsWritableStream(stream), '! IsWritableStream(stream) is true.');
+ return stream[_state] === CLOSING || stream[_state] === CLOSED;
+ }
+
+ function getWritableStreamStoredError(stream) {
+ TEMP_ASSERT(
+ IsWritableStream(stream), '! IsWritableStream(stream) is true.');
+ return stream[_storedError];
+ }
+
class WritableStreamDefaultWriter {
constructor(stream) {
if (!IsWritableStream(stream)) {
@@ -504,6 +524,20 @@
return stream[_pendingCloseRequest];
}
+ function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {
+ const stream = writer[_ownerWritableStream];
+ TEMP_ASSERT(stream !== undefined, 'stream is not undefined.');
+ const state = stream[_state];
+ if (state === CLOSING || state === CLOSED) {
+ return Promise_resolve(undefined);
+ }
+ if (state === ERRORED) {
+ return Promise_reject(stream[_storedError]);
+ }
+ TEMP_ASSERT(state === WRITABLE, 'state is "writable".');
+ return WritableStreamDefaultWriterClose(writer);
+ }
+
function WritableStreamDefaultWriterGetDesiredSize(writer) {
const stream = writer[_ownerWritableStream];
const state = stream[_state];
@@ -563,6 +597,22 @@
return promise;
}
+ // Functions to expose internals for ReadableStream.pipeTo. These do not
+ // appear in the standard.
+ function getWritableStreamDefaultWriterClosedPromise(writer) {
+ TEMP_ASSERT(
+ IsWritableStreamDefaultWriter(writer),
+ 'writer is a WritableStreamDefaultWriter.');
+ return writer[_closedPromise];
+ }
+
+ function getWritableStreamDefaultWriterReadyPromise(writer) {
+ TEMP_ASSERT(
+ IsWritableStreamDefaultWriter(writer),
+ 'writer is a WritableStreamDefaultWriter.');
+ return writer[_readyPromise];
+ }
+
class WritableStreamDefaultController {
constructor(stream, underlyingSink, size, highWaterMark) {
if (!IsWritableStream(stream)) {
@@ -934,4 +984,25 @@
});
// TODO(ricea): Exports to Blink
+
+ // Exports for ReadableStream
+ binding.AcquireWritableStreamDefaultWriter =
+ AcquireWritableStreamDefaultWriter;
+ binding.IsWritableStream = IsWritableStream;
+ binding.isWritableStreamClosingOrClosed = isWritableStreamClosingOrClosed;
+ binding.isWritableStreamErrored = isWritableStreamErrored;
+ binding.IsWritableStreamLocked = IsWritableStreamLocked;
+ binding.WritableStreamAbort = WritableStreamAbort;
+ binding.WritableStreamDefaultWriterCloseWithErrorPropagation =
+ WritableStreamDefaultWriterCloseWithErrorPropagation;
+ binding.getWritableStreamDefaultWriterClosedPromise =
+ getWritableStreamDefaultWriterClosedPromise;
+ binding.WritableStreamDefaultWriterGetDesiredSize =
+ WritableStreamDefaultWriterGetDesiredSize;
+ binding.getWritableStreamDefaultWriterReadyPromise =
+ getWritableStreamDefaultWriterReadyPromise;
+ binding.WritableStreamDefaultWriterRelease =
+ WritableStreamDefaultWriterRelease;
+ binding.WritableStreamDefaultWriterWrite = WritableStreamDefaultWriterWrite;
+ binding.getWritableStreamStoredError = getWritableStreamStoredError;
});
« no previous file with comments | « third_party/WebKit/Source/core/streams/ReadableStreamExperimentalPipeTo.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698