Commit 1de47fd5 authored by Adam Rice's avatar Adam Rice Committed by Commit Bot

Rearrange WritableStream method definitions to match declarations

https://chromium-review.googlesource.com/c/chromium/src/+/1481144
modified the declaration order of some of the WritableStream C++
implementation methods. Update the order of the definitions in the .cc
files to match the declaration order.

This CL only moves methods around and doesn't change their
contents in any way.

Bug: 902633
Change-Id: Ie4ef96014e8825dc57ecf03c2693ed9cc66347a7
Reviewed-on: https://chromium-review.googlesource.com/c/1481273
Commit-Queue: Adam Rice <ricea@chromium.org>
Reviewed-by: default avatarYutaka Hirano <yhirano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#636344}
parent 9fa3f8ac
...@@ -43,16 +43,6 @@ void WritableStreamDefaultController::error(ScriptState* script_state, ...@@ -43,16 +43,6 @@ void WritableStreamDefaultController::error(ScriptState* script_state,
Error(script_state, this, e.V8Value()); Error(script_state, this, e.V8Value());
} }
void WritableStreamDefaultController::Trace(Visitor* visitor) {
visitor->Trace(abort_algorithm_);
visitor->Trace(close_algorithm_);
visitor->Trace(controlled_writable_stream_);
visitor->Trace(queue_);
visitor->Trace(strategy_size_algorithm_);
visitor->Trace(write_algorithm_);
ScriptWrappable::Trace(visitor);
}
// Writable Stream Default Controller Internal Methods // Writable Stream Default Controller Internal Methods
v8::Local<v8::Promise> WritableStreamDefaultController::AbortSteps( v8::Local<v8::Promise> WritableStreamDefaultController::AbortSteps(
...@@ -278,22 +268,6 @@ void WritableStreamDefaultController::SetUpFromUnderlyingSink( ...@@ -278,22 +268,6 @@ void WritableStreamDefaultController::SetUpFromUnderlyingSink(
exception_state); exception_state);
} }
void WritableStreamDefaultController::ClearAlgorithms(
WritableStreamDefaultController* controller) {
// https://streams.spec.whatwg.org/#writable-stream-default-controller-clear-algorithms
// 1. Set controller.[[writeAlgorithm]] to undefined.
controller->write_algorithm_ = nullptr;
// 2. Set controller.[[closeAlgorithm]] to undefined.
controller->close_algorithm_ = nullptr;
// 3. Set controller.[[abortAlgorithm]] to undefined.
controller->abort_algorithm_ = nullptr;
// 4. Set controller.[[strategySizeAlgorithm]] to undefined.
controller->strategy_size_algorithm_ = nullptr;
}
void WritableStreamDefaultController::Close( void WritableStreamDefaultController::Close(
ScriptState* script_state, ScriptState* script_state,
WritableStreamDefaultController* controller) { WritableStreamDefaultController* controller) {
...@@ -400,6 +374,32 @@ void WritableStreamDefaultController::Write( ...@@ -400,6 +374,32 @@ void WritableStreamDefaultController::Write(
AdvanceQueueIfNeeded(script_state, controller); AdvanceQueueIfNeeded(script_state, controller);
} }
void WritableStreamDefaultController::Trace(Visitor* visitor) {
visitor->Trace(abort_algorithm_);
visitor->Trace(close_algorithm_);
visitor->Trace(controlled_writable_stream_);
visitor->Trace(queue_);
visitor->Trace(strategy_size_algorithm_);
visitor->Trace(write_algorithm_);
ScriptWrappable::Trace(visitor);
}
void WritableStreamDefaultController::ClearAlgorithms(
WritableStreamDefaultController* controller) {
// https://streams.spec.whatwg.org/#writable-stream-default-controller-clear-algorithms
// 1. Set controller.[[writeAlgorithm]] to undefined.
controller->write_algorithm_ = nullptr;
// 2. Set controller.[[closeAlgorithm]] to undefined.
controller->close_algorithm_ = nullptr;
// 3. Set controller.[[abortAlgorithm]] to undefined.
controller->abort_algorithm_ = nullptr;
// 4. Set controller.[[strategySizeAlgorithm]] to undefined.
controller->strategy_size_algorithm_ = nullptr;
}
void WritableStreamDefaultController::AdvanceQueueIfNeeded( void WritableStreamDefaultController::AdvanceQueueIfNeeded(
ScriptState* script_state, ScriptState* script_state,
WritableStreamDefaultController* controller) { WritableStreamDefaultController* controller) {
......
...@@ -297,6 +297,27 @@ ScriptPromise WritableStreamDefaultWriter::write(ScriptState* script_state, ...@@ -297,6 +297,27 @@ ScriptPromise WritableStreamDefaultWriter::write(ScriptState* script_state,
Write(script_state, this, chunk.V8Value())); Write(script_state, this, chunk.V8Value()));
} }
void WritableStreamDefaultWriter::EnsureReadyPromiseRejected(
ScriptState* script_state,
WritableStreamDefaultWriter* writer,
v8::Local<v8::Value> error) {
auto* isolate = script_state->GetIsolate();
// https://streams.spec.whatwg.org/#writable-stream-default-writer-ensure-ready-promise-rejected
// 1. If writer.[[readyPromise]].[[PromiseState]] is "pending", reject
// writer.[[readyPromise]] with error.
if (writer->ready_promise_->State(isolate) == v8::Promise::kPending) {
writer->ready_promise_->Reject(script_state, error);
} else {
// 2. Otherwise, set writer.[[readyPromise]] to a promise rejected with
// error.
writer->ready_promise_ =
StreamPromiseResolver::CreateRejected(script_state, error);
}
// 3. Set writer.[[readyPromise]].[[PromiseIsHandled]] to true.
writer->ready_promise_->MarkAsHandled(isolate);
}
void WritableStreamDefaultWriter::SetReadyPromise( void WritableStreamDefaultWriter::SetReadyPromise(
StreamPromiseResolver* ready_promise) { StreamPromiseResolver* ready_promise) {
ready_promise_ = ready_promise; ready_promise_ = ready_promise;
...@@ -431,27 +452,6 @@ void WritableStreamDefaultWriter::EnsureClosedPromiseRejected( ...@@ -431,27 +452,6 @@ void WritableStreamDefaultWriter::EnsureClosedPromiseRejected(
writer->closed_promise_->MarkAsHandled(isolate); writer->closed_promise_->MarkAsHandled(isolate);
} }
void WritableStreamDefaultWriter::EnsureReadyPromiseRejected(
ScriptState* script_state,
WritableStreamDefaultWriter* writer,
v8::Local<v8::Value> error) {
auto* isolate = script_state->GetIsolate();
// https://streams.spec.whatwg.org/#writable-stream-default-writer-ensure-ready-promise-rejected
// 1. If writer.[[readyPromise]].[[PromiseState]] is "pending", reject
// writer.[[readyPromise]] with error.
if (writer->ready_promise_->State(isolate) == v8::Promise::kPending) {
writer->ready_promise_->Reject(script_state, error);
} else {
// 2. Otherwise, set writer.[[readyPromise]] to a promise rejected with
// error.
writer->ready_promise_ =
StreamPromiseResolver::CreateRejected(script_state, error);
}
// 3. Set writer.[[readyPromise]].[[PromiseIsHandled]] to true.
writer->ready_promise_->MarkAsHandled(isolate);
}
v8::Local<v8::Value> WritableStreamDefaultWriter::GetDesiredSize( v8::Local<v8::Value> WritableStreamDefaultWriter::GetDesiredSize(
v8::Isolate* isolate, v8::Isolate* isolate,
const WritableStreamDefaultWriter* writer) { const WritableStreamDefaultWriter* writer) {
......
...@@ -210,20 +210,6 @@ ScriptValue WritableStreamNative::getWriter(ScriptState* script_state, ...@@ -210,20 +210,6 @@ ScriptValue WritableStreamNative::getWriter(ScriptState* script_state,
// General Writable Stream Abstract Operations // General Writable Stream Abstract Operations
WritableStreamDefaultWriter* WritableStreamNative::AcquireDefaultWriter(
ScriptState* script_state,
WritableStreamNative* stream,
ExceptionState& exception_state) {
// https://streams.spec.whatwg.org/#acquire-writable-stream-default-writer
// 1. Return ? Construct(WritableStreamDefaultWriter, « stream »).
auto* writer = MakeGarbageCollected<WritableStreamDefaultWriter>(
script_state, stream, exception_state);
if (exception_state.HadException()) {
return nullptr;
}
return writer;
}
WritableStreamNative* WritableStreamNative::Create( WritableStreamNative* WritableStreamNative::Create(
ScriptState* script_state, ScriptState* script_state,
StreamStartAlgorithm* start_algorithm, StreamStartAlgorithm* start_algorithm,
...@@ -260,37 +246,6 @@ WritableStreamNative* WritableStreamNative::Create( ...@@ -260,37 +246,6 @@ WritableStreamNative* WritableStreamNative::Create(
return stream; return stream;
} }
v8::Local<v8::Value> WritableStreamNative::GetStoredError(
v8::Isolate* isolate) const {
return stored_error_.NewLocal(isolate);
}
void WritableStreamNative::SetCloseRequest(
StreamPromiseResolver* close_request) {
close_request_ = close_request;
}
void WritableStreamNative::SetController(
WritableStreamDefaultController* controller) {
writable_stream_controller_ = controller;
}
void WritableStreamNative::SetWriter(WritableStreamDefaultWriter* writer) {
writer_ = writer;
}
void WritableStreamNative::Trace(Visitor* visitor) {
visitor->Trace(close_request_);
visitor->Trace(in_flight_write_request_);
visitor->Trace(in_flight_close_request_);
visitor->Trace(pending_abort_request_);
visitor->Trace(stored_error_);
visitor->Trace(writable_stream_controller_);
visitor->Trace(writer_);
visitor->Trace(write_requests_);
WritableStream::Trace(visitor);
}
v8::Local<v8::Promise> WritableStreamNative::Abort( v8::Local<v8::Promise> WritableStreamNative::Abort(
ScriptState* script_state, ScriptState* script_state,
WritableStreamNative* stream, WritableStreamNative* stream,
...@@ -364,6 +319,15 @@ v8::Local<v8::Promise> WritableStreamNative::AddWriteRequest( ...@@ -364,6 +319,15 @@ v8::Local<v8::Promise> WritableStreamNative::AddWriteRequest(
return promise->V8Promise(script_state->GetIsolate()); return promise->V8Promise(script_state->GetIsolate());
} }
bool WritableStreamNative::CloseQueuedOrInFlight(
const WritableStreamNative* stream) {
// https://streams.spec.whatwg.org/#writable-stream-close-queued-or-in-flight
// 1. If stream.[[closeRequest]] is undefined and
// stream.[[inFlightCloseRequest]] is undefined, return false.
// 2. Return true.
return stream->close_request_ || stream->in_flight_close_request_;
}
void WritableStreamNative::DealWithRejection(ScriptState* script_state, void WritableStreamNative::DealWithRejection(ScriptState* script_state,
WritableStreamNative* stream, WritableStreamNative* stream,
v8::Local<v8::Value> error) { v8::Local<v8::Value> error) {
...@@ -676,24 +640,6 @@ void WritableStreamNative::FinishInFlightCloseWithError( ...@@ -676,24 +640,6 @@ void WritableStreamNative::FinishInFlightCloseWithError(
DealWithRejection(script_state, stream, error); DealWithRejection(script_state, stream, error);
} }
bool WritableStreamNative::CloseQueuedOrInFlight(
const WritableStreamNative* stream) {
// https://streams.spec.whatwg.org/#writable-stream-close-queued-or-in-flight
// 1. If stream.[[closeRequest]] is undefined and
// stream.[[inFlightCloseRequest]] is undefined, return false.
// 2. Return true.
return stream->close_request_ || stream->in_flight_close_request_;
}
bool WritableStreamNative::HasOperationMarkedInFlight(
const WritableStreamNative* stream) {
// https://streams.spec.whatwg.org/#writable-stream-has-operation-marked-in-flight
// 1. If stream.[[inFlightWriteRequest]] is undefined and
// controller.[[inFlightCloseRequest]] is undefined, return false.
// 2. Return true.
return stream->in_flight_write_request_ || stream->in_flight_close_request_;
}
void WritableStreamNative::MarkCloseRequestInFlight( void WritableStreamNative::MarkCloseRequestInFlight(
WritableStreamNative* stream) { WritableStreamNative* stream) {
// https://streams.spec.whatwg.org/#writable-stream-mark-close-request-in-flight // https://streams.spec.whatwg.org/#writable-stream-mark-close-request-in-flight
...@@ -730,6 +676,95 @@ void WritableStreamNative::MarkFirstWriteRequestInFlight( ...@@ -730,6 +676,95 @@ void WritableStreamNative::MarkFirstWriteRequestInFlight(
stream->in_flight_write_request_ = write_request; stream->in_flight_write_request_ = write_request;
} }
void WritableStreamNative::UpdateBackpressure(ScriptState* script_state,
WritableStreamNative* stream,
bool backpressure) {
// https://streams.spec.whatwg.org/#writable-stream-update-backpressure
// 1. Assert: stream.[[state]] is "writable".
DCHECK_EQ(stream->state_, kWritable);
// 2. Assert: ! WritableStreamCloseQueuedOrInFlight(stream) is false.
DCHECK(!CloseQueuedOrInFlight(stream));
// 3. Let writer be stream.[[writer]].
WritableStreamDefaultWriter* writer = stream->writer_;
// 4. If writer is not undefined and backpressure is not
// stream.[[backpressure]],
if (writer && backpressure != stream->has_backpressure_) {
// a. If backpressure is true, set writer.[[readyPromise]] to a new
// promise.
if (backpressure) {
writer->SetReadyPromise(
MakeGarbageCollected<StreamPromiseResolver>(script_state));
} else {
// b. Otherwise,
// i. Assert: backpressure is false.
DCHECK(!backpressure);
// ii. Resolve writer.[[readyPromise]] with undefined.
writer->ReadyPromise()->ResolveWithUndefined(script_state);
}
}
// 5. Set stream.[[backpressure]] to backpressure.
stream->has_backpressure_ = backpressure;
}
v8::Local<v8::Value> WritableStreamNative::GetStoredError(
v8::Isolate* isolate) const {
return stored_error_.NewLocal(isolate);
}
void WritableStreamNative::SetCloseRequest(
StreamPromiseResolver* close_request) {
close_request_ = close_request;
}
void WritableStreamNative::SetController(
WritableStreamDefaultController* controller) {
writable_stream_controller_ = controller;
}
void WritableStreamNative::SetWriter(WritableStreamDefaultWriter* writer) {
writer_ = writer;
}
void WritableStreamNative::Trace(Visitor* visitor) {
visitor->Trace(close_request_);
visitor->Trace(in_flight_write_request_);
visitor->Trace(in_flight_close_request_);
visitor->Trace(pending_abort_request_);
visitor->Trace(stored_error_);
visitor->Trace(writable_stream_controller_);
visitor->Trace(writer_);
visitor->Trace(write_requests_);
WritableStream::Trace(visitor);
}
WritableStreamDefaultWriter* WritableStreamNative::AcquireDefaultWriter(
ScriptState* script_state,
WritableStreamNative* stream,
ExceptionState& exception_state) {
// https://streams.spec.whatwg.org/#acquire-writable-stream-default-writer
// 1. Return ? Construct(WritableStreamDefaultWriter, « stream »).
auto* writer = MakeGarbageCollected<WritableStreamDefaultWriter>(
script_state, stream, exception_state);
if (exception_state.HadException()) {
return nullptr;
}
return writer;
}
bool WritableStreamNative::HasOperationMarkedInFlight(
const WritableStreamNative* stream) {
// https://streams.spec.whatwg.org/#writable-stream-has-operation-marked-in-flight
// 1. If stream.[[inFlightWriteRequest]] is undefined and
// controller.[[inFlightCloseRequest]] is undefined, return false.
// 2. Return true.
return stream->in_flight_write_request_ || stream->in_flight_close_request_;
}
void WritableStreamNative::RejectCloseAndClosedPromiseIfNeeded( void WritableStreamNative::RejectCloseAndClosedPromiseIfNeeded(
ScriptState* script_state, ScriptState* script_state,
WritableStreamNative* stream) { WritableStreamNative* stream) {
...@@ -766,40 +801,6 @@ void WritableStreamNative::RejectCloseAndClosedPromiseIfNeeded( ...@@ -766,40 +801,6 @@ void WritableStreamNative::RejectCloseAndClosedPromiseIfNeeded(
} }
} }
void WritableStreamNative::UpdateBackpressure(ScriptState* script_state,
WritableStreamNative* stream,
bool backpressure) {
// https://streams.spec.whatwg.org/#writable-stream-update-backpressure
// 1. Assert: stream.[[state]] is "writable".
DCHECK_EQ(stream->state_, kWritable);
// 2. Assert: ! WritableStreamCloseQueuedOrInFlight(stream) is false.
DCHECK(!CloseQueuedOrInFlight(stream));
// 3. Let writer be stream.[[writer]].
WritableStreamDefaultWriter* writer = stream->writer_;
// 4. If writer is not undefined and backpressure is not
// stream.[[backpressure]],
if (writer && backpressure != stream->has_backpressure_) {
// a. If backpressure is true, set writer.[[readyPromise]] to a new
// promise.
if (backpressure) {
writer->SetReadyPromise(
MakeGarbageCollected<StreamPromiseResolver>(script_state));
} else {
// b. Otherwise,
// i. Assert: backpressure is false.
DCHECK(!backpressure);
// ii. Resolve writer.[[readyPromise]] with undefined.
writer->ReadyPromise()->ResolveWithUndefined(script_state);
}
}
// 5. Set stream.[[backpressure]] to backpressure.
stream->has_backpressure_ = backpressure;
}
// TODO(ricea): Functions for transferable streams. // TODO(ricea): Functions for transferable streams.
......
...@@ -143,7 +143,6 @@ class CORE_EXPORT WritableStreamNative : public WritableStream { ...@@ -143,7 +143,6 @@ class CORE_EXPORT WritableStreamNative : public WritableStream {
// https://streams.spec.whatwg.org/#writable-stream-mark-first-write-request-in-flight // https://streams.spec.whatwg.org/#writable-stream-mark-first-write-request-in-flight
static void MarkFirstWriteRequestInFlight(WritableStreamNative*); static void MarkFirstWriteRequestInFlight(WritableStreamNative*);
// https://streams.spec.whatwg.org/#writable-stream-update-backpressure // https://streams.spec.whatwg.org/#writable-stream-update-backpressure
static void UpdateBackpressure(ScriptState*, static void UpdateBackpressure(ScriptState*,
WritableStreamNative*, WritableStreamNative*,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment