diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-10-26 13:57:00 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-11-02 11:31:01 +0000 |
commit | 1943b3c2a1dcee36c233724fc4ee7613d71b9cf6 (patch) | |
tree | 8c1b5f12357025c197da5427ae02cfdc2f3570d6 /chromium/third_party/blink/renderer/core/streams | |
parent | 21ba0c5d4bf8fba15dddd97cd693bad2358b77fd (diff) | |
download | qtwebengine-chromium-1943b3c2a1dcee36c233724fc4ee7613d71b9cf6.tar.gz |
BASELINE: Update Chromium to 94.0.4606.111
Change-Id: I924781584def20fc800bedf6ff41fdb96c438193
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/core/streams')
15 files changed, 90 insertions, 107 deletions
diff --git a/chromium/third_party/blink/renderer/core/streams/miscellaneous_operations.h b/chromium/third_party/blink/renderer/core/streams/miscellaneous_operations.h index 692b138f2ee..4dfd5b240f2 100644 --- a/chromium/third_party/blink/renderer/core/streams/miscellaneous_operations.h +++ b/chromium/third_party/blink/renderer/core/streams/miscellaneous_operations.h @@ -168,6 +168,8 @@ class StrategyUnpacker final { // arbitrary user code. The object cannot be used if // exception_state.HadException() is true. StrategyUnpacker(ScriptState*, ScriptValue strategy, ExceptionState&); + StrategyUnpacker(const StrategyUnpacker&) = delete; + StrategyUnpacker& operator=(const StrategyUnpacker&) = delete; ~StrategyUnpacker() = default; // Performs MakeSizeAlgorithmFromSizeFunction on |size_|. Because this method @@ -186,8 +188,6 @@ class StrategyUnpacker final { private: v8::Local<v8::Value> size_; v8::Local<v8::Value> high_water_mark_; - - DISALLOW_COPY_AND_ASSIGN(StrategyUnpacker); }; } // namespace blink diff --git a/chromium/third_party/blink/renderer/core/streams/readable_byte_stream_controller.cc b/chromium/third_party/blink/renderer/core/streams/readable_byte_stream_controller.cc index f8798d71f5b..25abbf5c7e8 100644 --- a/chromium/third_party/blink/renderer/core/streams/readable_byte_stream_controller.cc +++ b/chromium/third_party/blink/renderer/core/streams/readable_byte_stream_controller.cc @@ -6,7 +6,7 @@ #include "base/numerics/checked_math.h" #include "base/numerics/clamped_math.h" -#include "third_party/blink/renderer/bindings/core/v8/v8_array_buffer_view.h" +#include "third_party/blink/renderer/bindings/core/v8/to_v8_for_core.h" #include "third_party/blink/renderer/bindings/core/v8/v8_underlying_source.h" #include "third_party/blink/renderer/bindings/core/v8/v8_underlying_source_cancel_callback.h" #include "third_party/blink/renderer/bindings/core/v8/v8_underlying_source_pull_callback.h" diff --git a/chromium/third_party/blink/renderer/core/streams/readable_stream.cc b/chromium/third_party/blink/renderer/core/streams/readable_stream.cc index 127ac6e59cf..922fab98f91 100644 --- a/chromium/third_party/blink/renderer/core/streams/readable_stream.cc +++ b/chromium/third_party/blink/renderer/core/streams/readable_stream.cc @@ -4,9 +4,8 @@ #include "third_party/blink/renderer/core/streams/readable_stream.h" -#include "base/stl_util.h" +#include "base/cxx17_backports.h" #include "third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h" -#include "third_party/blink/renderer/bindings/core/v8/readable_stream_default_reader_or_readable_stream_byob_reader.h" #include "third_party/blink/renderer/bindings/core/v8/script_function.h" #include "third_party/blink/renderer/bindings/core/v8/v8_abort_signal.h" #include "third_party/blink/renderer/bindings/core/v8/v8_iterator_result_value.h" @@ -96,6 +95,8 @@ class ReadableStream::PipeToEngine final public: PipeToEngine(ScriptState* script_state, PipeOptions* pipe_options) : script_state_(script_state), pipe_options_(pipe_options) {} + PipeToEngine(const PipeToEngine&) = delete; + PipeToEngine& operator=(const PipeToEngine&) = delete; // This is the main entrypoint for ReadableStreamPipeTo(). ScriptPromise Start(ReadableStream* readable, WritableStream* destination) { @@ -702,13 +703,13 @@ class ReadableStream::PipeToEngine final TraceWrapperV8Reference<v8::Value> shutdown_error_; bool is_shutting_down_ = false; bool is_reading_ = false; - - DISALLOW_COPY_AND_ASSIGN(PipeToEngine); }; class ReadableStream::TeeEngine final : public GarbageCollected<TeeEngine> { public: TeeEngine() = default; + TeeEngine(const TeeEngine&) = delete; + TeeEngine& operator=(const TeeEngine&) = delete; // Create the streams and start copying data. void Start(ScriptState*, ReadableStream*, ExceptionState&); @@ -746,8 +747,6 @@ class ReadableStream::TeeEngine final : public GarbageCollected<TeeEngine> { TraceWrapperV8Reference<v8::Value> reason_[2]; Member<ReadableStream> branch_[2]; Member<ReadableStreamDefaultController> controller_[2]; - - DISALLOW_COPY_AND_ASSIGN(TeeEngine); }; class ReadableStream::TeeEngine::PullAlgorithm final : public StreamAlgorithm { @@ -1115,32 +1114,44 @@ ReadableStream* ReadableStream::CreateWithCountQueueingStrategy( AllowPerChunkTransferring allow_per_chunk_transferring, std::unique_ptr<ReadableStreamTransferringOptimizer> optimizer) { auto* isolate = script_state->GetIsolate(); - - auto strategy = CreateTrivialQueuingStrategy(isolate, high_water_mark); - ExceptionState exception_state(isolate, ExceptionState::kConstructionContext, "ReadableStream"); v8::MicrotasksScope microtasks_scope( isolate, v8::MicrotasksScope::kDoNotRunMicrotasks); - v8::Local<v8::Value> underlying_source_v8 = - ToV8(underlying_source, script_state); - auto* stream = MakeGarbageCollected<ReadableStream>(); - stream->InitInternal(script_state, ScriptValue(isolate, underlying_source_v8), - strategy, true, exception_state); - + stream->InitWithCountQueueingStrategy( + script_state, underlying_source, high_water_mark, + allow_per_chunk_transferring, std::move(optimizer), exception_state); if (exception_state.HadException()) { exception_state.ClearException(); DLOG(WARNING) << "Ignoring an exception in CreateWithCountQueuingStrategy()."; } - - stream->allow_per_chunk_transferring_ = allow_per_chunk_transferring; - stream->transferring_optimizer_ = std::move(optimizer); return stream; } +void ReadableStream::InitWithCountQueueingStrategy( + ScriptState* script_state, + UnderlyingSourceBase* underlying_source, + size_t high_water_mark, + AllowPerChunkTransferring allow_per_chunk_transferring, + std::unique_ptr<ReadableStreamTransferringOptimizer> optimizer, + ExceptionState& exception_state) { + auto* isolate = script_state->GetIsolate(); + + auto strategy = CreateTrivialQueuingStrategy(isolate, high_water_mark); + + v8::Local<v8::Value> underlying_source_v8 = + ToV8(underlying_source, script_state); + + InitInternal(script_state, ScriptValue(isolate, underlying_source_v8), + strategy, true, exception_state); + + allow_per_chunk_transferring_ = allow_per_chunk_transferring; + transferring_optimizer_ = std::move(optimizer); +} + ReadableStream* ReadableStream::Create(ScriptState* script_state, StreamStartAlgorithm* start_algorithm, StreamAlgorithm* pull_algorithm, @@ -1216,7 +1227,6 @@ ScriptPromise ReadableStream::cancel(ScriptState* script_state, return ScriptPromise(script_state, result); } -#if defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) V8ReadableStreamReader* ReadableStream::getReader( ScriptState* script_state, ExceptionState& exception_state) { @@ -1229,20 +1239,7 @@ V8ReadableStreamReader* ReadableStream::getReader( return nullptr; return MakeGarbageCollected<V8ReadableStreamReader>(reader); } -#else // defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) -void ReadableStream::getReader( - ScriptState* script_state, - ReadableStreamDefaultReaderOrReadableStreamBYOBReader& return_value, - ExceptionState& exception_state) { - // https://streams.spec.whatwg.org/#rs-get-reader - // 1. If options["mode"] does not exist, return ? - // AcquireReadableStreamDefaultReader(this). - return_value.SetReadableStreamDefaultReader( - AcquireDefaultReader(script_state, this, true, exception_state)); -} -#endif // defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) -#if defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) V8ReadableStreamReader* ReadableStream::getReader( ScriptState* script_state, const ReadableStreamGetReaderOptions* options, @@ -1263,40 +1260,14 @@ V8ReadableStreamReader* ReadableStream::getReader( return getReader(script_state, exception_state); } -#else // defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) -void ReadableStream::getReader( - ScriptState* script_state, - ReadableStreamGetReaderOptions* options, - ReadableStreamDefaultReaderOrReadableStreamBYOBReader& return_value, - ExceptionState& exception_state) { - // https://streams.spec.whatwg.org/#rs-get-reader - if (options->hasMode()) { - DCHECK_EQ(options->mode(), "byob"); - - UseCounter::Count(ExecutionContext::From(script_state), - WebFeature::kReadableStreamBYOBReader); - - return_value.SetReadableStreamBYOBReader( - AcquireBYOBReader(script_state, this, exception_state)); - } else { - getReader(script_state, return_value, exception_state); - } -} -#endif // defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) ReadableStreamDefaultReader* ReadableStream::GetDefaultReaderForTesting( ScriptState* script_state, ExceptionState& exception_state) { -#if defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) auto* result = getReader(script_state, exception_state); if (!result) return nullptr; return result->GetAsReadableStreamDefaultReader(); -#else // defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) - ReadableStreamDefaultReaderOrReadableStreamBYOBReader return_value; - getReader(script_state, return_value, exception_state); - return return_value.GetAsReadableStreamDefaultReader(); -#endif // defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) } ReadableStream* ReadableStream::pipeThrough(ScriptState* script_state, diff --git a/chromium/third_party/blink/renderer/core/streams/readable_stream.h b/chromium/third_party/blink/renderer/core/streams/readable_stream.h index 687a618f03d..136f600fa6c 100644 --- a/chromium/third_party/blink/renderer/core/streams/readable_stream.h +++ b/chromium/third_party/blink/renderer/core/streams/readable_stream.h @@ -8,7 +8,6 @@ #include <stdint.h> #include <memory> -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/renderer/bindings/core/v8/script_value.h" #include "third_party/blink/renderer/bindings/core/v8/v8_typedefs.h" #include "third_party/blink/renderer/core/streams/readable_stream_byob_reader.h" @@ -28,7 +27,6 @@ class MessagePort; class ReadableByteStreamController; class ReadableStreamController; class ReadableStreamDefaultController; -class ReadableStreamDefaultReaderOrReadableStreamBYOBReader; class ReadableStreamGetReaderOptions; class ReadableStreamTransferringOptimizer; class ReadableWritablePair; @@ -117,6 +115,16 @@ class CORE_EXPORT ReadableStream : public ScriptWrappable { ~ReadableStream() override; + // See CreateWithCountQueueingStrategy() comment above for how to use + // `allow_per_chunk_transferring`. + void InitWithCountQueueingStrategy( + ScriptState*, + UnderlyingSourceBase*, + size_t high_water_mark, + AllowPerChunkTransferring allow_per_chunk_transferring, + std::unique_ptr<ReadableStreamTransferringOptimizer>, + ExceptionState&); + // https://streams.spec.whatwg.org/#rs-constructor bool locked() const; @@ -125,29 +133,14 @@ class CORE_EXPORT ReadableStream : public ScriptWrappable { // https://streams.spec.whatwg.org/#rs-cancel ScriptPromise cancel(ScriptState*, ScriptValue reason, ExceptionState&); -#if defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) V8ReadableStreamReader* getReader(ScriptState* script_state, ExceptionState& exception_state); -#else // defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) - void getReader( - ScriptState*, - ReadableStreamDefaultReaderOrReadableStreamBYOBReader& return_value, - ExceptionState&); -#endif // defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) // https://streams.spec.whatwg.org/#rs-get-reader -#if defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) V8ReadableStreamReader* getReader( ScriptState* script_state, const ReadableStreamGetReaderOptions* options, ExceptionState& exception_state); -#else // defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) - void getReader( - ScriptState*, - ReadableStreamGetReaderOptions* options, - ReadableStreamDefaultReaderOrReadableStreamBYOBReader& return_value, - ExceptionState&); -#endif // defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) ReadableStreamDefaultReader* GetDefaultReaderForTesting(ScriptState*, ExceptionState&); diff --git a/chromium/third_party/blink/renderer/core/streams/readable_stream_generic_reader.cc b/chromium/third_party/blink/renderer/core/streams/readable_stream_generic_reader.cc index 7168d98f410..131320c2292 100644 --- a/chromium/third_party/blink/renderer/core/streams/readable_stream_generic_reader.cc +++ b/chromium/third_party/blink/renderer/core/streams/readable_stream_generic_reader.cc @@ -70,6 +70,7 @@ void ReadableStreamGenericReader::GenericRelease( // 3. If reader.[[ownerReadableStream]].[[state]] is "readable", reject // reader.[[closedPromise]] with a TypeError exception. if (reader->owner_readable_stream_->state_ == ReadableStream::kReadable) { + reader->closed_promise_->MarkAsSilent(isolate); reader->closed_promise_->Reject( script_state, v8::Exception::TypeError(V8String( @@ -79,7 +80,7 @@ void ReadableStreamGenericReader::GenericRelease( } else { // 4. Otherwise, set reader.[[closedPromise]] to a promise rejected with a // TypeError exception. - reader->closed_promise_ = StreamPromiseResolver::CreateRejected( + reader->closed_promise_ = StreamPromiseResolver::CreateRejectedAndSilent( script_state, v8::Exception::TypeError(V8String( isolate, "This readable stream reader has been released and " @@ -152,7 +153,7 @@ void ReadableStreamGenericReader::GenericInitialize( // b. Set reader.[[closedPromise]] to a promise rejected with stream. // [[storedError]]. - reader->closed_promise_ = StreamPromiseResolver::CreateRejected( + reader->closed_promise_ = StreamPromiseResolver::CreateRejectedAndSilent( script_state, stream->GetStoredError(isolate)); // c. Set reader.[[closedPromise]].[[PromiseIsHandled]] to true. diff --git a/chromium/third_party/blink/renderer/core/streams/readable_stream_test.cc b/chromium/third_party/blink/renderer/core/streams/readable_stream_test.cc index e03a6143541..04478de51e6 100644 --- a/chromium/third_party/blink/renderer/core/streams/readable_stream_test.cc +++ b/chromium/third_party/blink/renderer/core/streams/readable_stream_test.cc @@ -6,7 +6,6 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/abseil-cpp/absl/types/optional.h" -#include "third_party/blink/renderer/bindings/core/v8/readable_stream_default_reader_or_readable_stream_byob_reader.h" #include "third_party/blink/renderer/bindings/core/v8/script_function.h" #include "third_party/blink/renderer/bindings/core/v8/script_value.h" #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h" @@ -251,18 +250,11 @@ TEST_F(ReadableStreamTest, GetBYOBReader) { auto* options = ReadableStreamGetReaderOptions::Create(); options->setMode("byob"); -#if defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) ReadableStreamBYOBReader* reader = nullptr; if (const auto* result = stream->getReader(script_state, options, ASSERT_NO_EXCEPTION)) { reader = result->GetAsReadableStreamBYOBReader(); } -#else // defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) - ReadableStreamDefaultReaderOrReadableStreamBYOBReader return_value; - stream->getReader(script_state, options, return_value, ASSERT_NO_EXCEPTION); - ReadableStreamBYOBReader* reader = - return_value.GetAsReadableStreamBYOBReader(); -#endif // defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION) ASSERT_TRUE(reader); EXPECT_TRUE(stream->locked()); diff --git a/chromium/third_party/blink/renderer/core/streams/stream_promise_resolver.cc b/chromium/third_party/blink/renderer/core/streams/stream_promise_resolver.cc index a6784644f21..c7c2120f145 100644 --- a/chromium/third_party/blink/renderer/core/streams/stream_promise_resolver.cc +++ b/chromium/third_party/blink/renderer/core/streams/stream_promise_resolver.cc @@ -32,6 +32,15 @@ StreamPromiseResolver* StreamPromiseResolver::CreateRejected( return promise; } +StreamPromiseResolver* StreamPromiseResolver::CreateRejectedAndSilent( + ScriptState* script_state, + v8::Local<v8::Value> reason) { + auto* promise = MakeGarbageCollected<StreamPromiseResolver>(script_state); + promise->MarkAsSilent(script_state->GetIsolate()); + promise->Reject(script_state, reason); + return promise; +} + StreamPromiseResolver::StreamPromiseResolver(ScriptState* script_state) { v8::Local<v8::Promise::Resolver> resolver; if (v8::Promise::Resolver::New(script_state->GetContext()) @@ -103,6 +112,14 @@ void StreamPromiseResolver::MarkAsHandled(v8::Isolate* isolate) { promise->MarkAsHandled(); } +void StreamPromiseResolver::MarkAsSilent(v8::Isolate* isolate) { + v8::Local<v8::Promise> promise = V8Promise(isolate); + if (promise.IsEmpty()) { + return; + } + promise->MarkAsSilent(); +} + v8::Promise::PromiseState StreamPromiseResolver::State( v8::Isolate* isolate) const { v8::Local<v8::Promise> promise = V8Promise(isolate); diff --git a/chromium/third_party/blink/renderer/core/streams/stream_promise_resolver.h b/chromium/third_party/blink/renderer/core/streams/stream_promise_resolver.h index 13723308f85..f6fb50a70f4 100644 --- a/chromium/third_party/blink/renderer/core/streams/stream_promise_resolver.h +++ b/chromium/third_party/blink/renderer/core/streams/stream_promise_resolver.h @@ -46,6 +46,12 @@ class CORE_EXPORT StreamPromiseResolver final static StreamPromiseResolver* CreateRejected(ScriptState*, v8::Local<v8::Value> reason); + // Similar to CreateRejected but marks the promise as silent before rejecting. + // https://crbug.com/1132506 + static StreamPromiseResolver* CreateRejectedAndSilent( + ScriptState*, + v8::Local<v8::Value> reason); + // Creates an initialised promise. explicit StreamPromiseResolver(ScriptState*); @@ -70,6 +76,10 @@ class CORE_EXPORT StreamPromiseResolver final // an unhandled rejection. void MarkAsHandled(v8::Isolate*); + // Marks the promise as silent so that it doesn't pause the debugger when it + // rejects. + void MarkAsSilent(v8::Isolate*); + // Returns the state of the promise, one of pending, fulfilled or rejected. v8::Promise::PromiseState State(v8::Isolate*) const; diff --git a/chromium/third_party/blink/renderer/core/streams/transferable_streams.cc b/chromium/third_party/blink/renderer/core/streams/transferable_streams.cc index 643e1028c2a..7455c7b49bd 100644 --- a/chromium/third_party/blink/renderer/core/streams/transferable_streams.cc +++ b/chromium/third_party/blink/renderer/core/streams/transferable_streams.cc @@ -7,8 +7,7 @@ #include "third_party/blink/renderer/core/streams/transferable_streams.h" -#include "base/stl_util.h" -#include "third_party/blink/renderer/bindings/core/v8/readable_stream_default_reader_or_readable_stream_byob_reader.h" +#include "base/cxx17_backports.h" #include "third_party/blink/renderer/bindings/core/v8/script_function.h" #include "third_party/blink/renderer/bindings/core/v8/to_v8_for_core.h" #include "third_party/blink/renderer/bindings/core/v8/v8_dom_exception.h" diff --git a/chromium/third_party/blink/renderer/core/streams/transferable_streams_test.cc b/chromium/third_party/blink/renderer/core/streams/transferable_streams_test.cc index a8b6a8b7f50..4c6656f3f8d 100644 --- a/chromium/third_party/blink/renderer/core/streams/transferable_streams_test.cc +++ b/chromium/third_party/blink/renderer/core/streams/transferable_streams_test.cc @@ -6,7 +6,6 @@ #include "base/types/strong_alias.h" #include "testing/gtest/include/gtest/gtest.h" -#include "third_party/blink/renderer/bindings/core/v8/readable_stream_default_reader_or_readable_stream_byob_reader.h" #include "third_party/blink/renderer/bindings/core/v8/script_function.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" diff --git a/chromium/third_party/blink/renderer/core/streams/transform_stream_transformer.h b/chromium/third_party/blink/renderer/core/streams/transform_stream_transformer.h index 530b2c9ee07..f5aa8a4f5c4 100644 --- a/chromium/third_party/blink/renderer/core/streams/transform_stream_transformer.h +++ b/chromium/third_party/blink/renderer/core/streams/transform_stream_transformer.h @@ -5,7 +5,6 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_STREAMS_TRANSFORM_STREAM_TRANSFORMER_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_STREAMS_TRANSFORM_STREAM_TRANSFORMER_H_ -#include "base/macros.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" #include "third_party/blink/renderer/platform/heap/heap.h" @@ -27,6 +26,9 @@ class CORE_EXPORT TransformStreamTransformer : public GarbageCollected<TransformStreamTransformer> { public: TransformStreamTransformer() = default; + TransformStreamTransformer(const TransformStreamTransformer&) = delete; + TransformStreamTransformer& operator=(const TransformStreamTransformer&) = + delete; virtual ~TransformStreamTransformer() = default; virtual ScriptPromise Transform(v8::Local<v8::Value> chunk, @@ -39,9 +41,6 @@ class CORE_EXPORT TransformStreamTransformer virtual ScriptState* GetScriptState() = 0; virtual void Trace(Visitor*) const {} - - private: - DISALLOW_COPY_AND_ASSIGN(TransformStreamTransformer); }; } // namespace blink diff --git a/chromium/third_party/blink/renderer/core/streams/writable_stream.cc b/chromium/third_party/blink/renderer/core/streams/writable_stream.cc index e47f01b3514..e635e5094bb 100644 --- a/chromium/third_party/blink/renderer/core/streams/writable_stream.cc +++ b/chromium/third_party/blink/renderer/core/streams/writable_stream.cc @@ -45,6 +45,8 @@ class WritableStream::PendingAbortRequest final : promise_(promise), reason_(isolate, reason), was_already_erroring_(was_already_erroring) {} + PendingAbortRequest(const PendingAbortRequest&) = delete; + PendingAbortRequest& operator=(const PendingAbortRequest&) = delete; StreamPromiseResolver* GetPromise() { return promise_; } v8::Local<v8::Value> Reason(v8::Isolate* isolate) { @@ -62,8 +64,6 @@ class WritableStream::PendingAbortRequest final Member<StreamPromiseResolver> promise_; TraceWrapperV8Reference<v8::Value> reason_; const bool was_already_erroring_; - - DISALLOW_COPY_AND_ASSIGN(PendingAbortRequest); }; WritableStream* WritableStream::Create(ScriptState* script_state, diff --git a/chromium/third_party/blink/renderer/core/streams/writable_stream.h b/chromium/third_party/blink/renderer/core/streams/writable_stream.h index 0022a256b85..e10cdd66c97 100644 --- a/chromium/third_party/blink/renderer/core/streams/writable_stream.h +++ b/chromium/third_party/blink/renderer/core/streams/writable_stream.h @@ -7,7 +7,6 @@ #include <memory> -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" #include "third_party/blink/renderer/bindings/core/v8/script_value.h" #include "third_party/blink/renderer/core/core_export.h" diff --git a/chromium/third_party/blink/renderer/core/streams/writable_stream_default_controller.idl b/chromium/third_party/blink/renderer/core/streams/writable_stream_default_controller.idl index c7bc87aca5d..c1a73e1a996 100644 --- a/chromium/third_party/blink/renderer/core/streams/writable_stream_default_controller.idl +++ b/chromium/third_party/blink/renderer/core/streams/writable_stream_default_controller.idl @@ -2,9 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// This is only used when the new C++ implementation is enabled. - // https://streams.spec.whatwg.org/#ws-default-controller-class-definition +[ + Exposed=(Window,Worker,Worklet) +] interface WritableStreamDefaultController { [CallWith=ScriptState] void error(optional any e); }; diff --git a/chromium/third_party/blink/renderer/core/streams/writable_stream_default_writer.cc b/chromium/third_party/blink/renderer/core/streams/writable_stream_default_writer.cc index 10bf54a2bc6..8888b9036a1 100644 --- a/chromium/third_party/blink/renderer/core/streams/writable_stream_default_writer.cc +++ b/chromium/third_party/blink/renderer/core/streams/writable_stream_default_writer.cc @@ -92,7 +92,7 @@ WritableStreamDefaultWriter::WritableStreamDefaultWriter( case WritableStream::kErroring: { // a. Set this.[[readyPromise]] to a promise rejected with // stream.[[storedError]]. - ready_promise_ = StreamPromiseResolver::CreateRejected( + ready_promise_ = StreamPromiseResolver::CreateRejectedAndSilent( script_state, stream->GetStoredError(isolate)); // b. Set this.[[readyPromise]].[[PromiseIsHandled]] to true. @@ -127,16 +127,16 @@ WritableStreamDefaultWriter::WritableStreamDefaultWriter( // c. Set this.[[readyPromise]] to a promise rejected with // storedError. - ready_promise_ = - StreamPromiseResolver::CreateRejected(script_state, stored_error); + ready_promise_ = StreamPromiseResolver::CreateRejectedAndSilent( + script_state, stored_error); // d. Set this.[[readyPromise]].[[PromiseIsHandled]] to true. ready_promise_->MarkAsHandled(isolate); // e. Set this.[[closedPromise]] to a promise rejected with // storedError. - closed_promise_ = - StreamPromiseResolver::CreateRejected(script_state, stored_error); + closed_promise_ = StreamPromiseResolver::CreateRejectedAndSilent( + script_state, stored_error); // f. Set this.[[closedPromise]].[[PromiseIsHandled]] to true. closed_promise_->MarkAsHandled(isolate); @@ -284,12 +284,13 @@ void WritableStreamDefaultWriter::EnsureReadyPromiseRejected( // 1. If writer.[[readyPromise]].[[PromiseState]] is "pending", reject // writer.[[readyPromise]] with error. if (!writer->ready_promise_->IsSettled()) { + writer->ready_promise_->MarkAsSilent(isolate); 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); + StreamPromiseResolver::CreateRejectedAndSilent(script_state, error); } // 3. Set writer.[[readyPromise]].[[PromiseIsHandled]] to true. @@ -517,12 +518,13 @@ void WritableStreamDefaultWriter::EnsureClosedPromiseRejected( // 1. If writer.[[closedPromise]].[[PromiseState]] is "pending", reject // writer.[[closedPromise]] with error. if (!writer->closed_promise_->IsSettled()) { + writer->closed_promise_->MarkAsSilent(isolate); writer->closed_promise_->Reject(script_state, error); } else { // 2. Otherwise, set writer.[[closedPromise]] to a promise rejected with // error. writer->closed_promise_ = - StreamPromiseResolver::CreateRejected(script_state, error); + StreamPromiseResolver::CreateRejectedAndSilent(script_state, error); } // 3. Set writer.[[closedPromise]].[[PromiseIsHandled]] to true. |