Commit 41ff6162 authored by Adam Rice's avatar Adam Rice Committed by Commit Bot

Rename ReadableStreamDefaultReader to ReadableStreamReader

Rename the implementation of ReadableStreamDefaultReader to
ReadableStreamReader. Move the ReadableStreamReaderGeneric operations
into the class. This will help prepare for the future addition of
ReadableStreamBYOBReader.

This CL only moves and renames code. No functional changes.

BUG=902633

Change-Id: Icc42ee61886be21618ca417e1783f2a1056bc1ce
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1573558Reviewed-by: default avatarYutaka Hirano <yhirano@chromium.org>
Commit-Queue: Adam Rice <ricea@chromium.org>
Cr-Commit-Position: refs/heads/master@{#652489}
parent 330a6489
......@@ -18,12 +18,13 @@ blink_core_sources("streams") {
"readable_stream_default_controller.h",
"readable_stream_default_controller_interface.cc",
"readable_stream_default_controller_interface.h",
"readable_stream_default_reader.cc",
"readable_stream_default_reader.h",
"readable_stream_native.cc",
"readable_stream_native.h",
"readable_stream_operations.cc",
"readable_stream_operations.h",
"readable_stream_reader.cc",
"readable_stream_reader.h",
"readable_stream_wrapper.cc",
"readable_stream_wrapper.h",
"stream_algorithms.h",
......
......@@ -12,11 +12,12 @@ feature. The following files are part of the new implementation:
readable_stream_default_controller.idl
readable_stream_default_controller_interface.cc
readable_stream_default_controller_interface.h
readable_stream_default_reader.cc
readable_stream_default_reader.h
readable_stream_default_reader.idl
readable_stream_native.cc
readable_stream_native.h
readable_stream_reader.cc
readable_stream_reader.h
writable_stream_default_controller.cc
writable_stream_default_controller.h
writable_stream_default_controller.idl
......
......@@ -8,8 +8,8 @@
#include "third_party/blink/renderer/core/streams/miscellaneous_operations.h"
#include "third_party/blink/renderer/core/streams/promise_handler.h"
#include "third_party/blink/renderer/core/streams/queue_with_sizes.h"
#include "third_party/blink/renderer/core/streams/readable_stream_default_reader.h"
#include "third_party/blink/renderer/core/streams/readable_stream_native.h"
#include "third_party/blink/renderer/core/streams/readable_stream_reader.h"
#include "third_party/blink/renderer/core/streams/stream_algorithms.h"
#include "third_party/blink/renderer/core/streams/stream_promise_resolver.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
......
......@@ -74,7 +74,7 @@ class ReadableStreamDefaultController : public ScriptWrappable {
private:
friend class ReadableStreamNative;
friend class ReadableStreamDefaultReader;
friend class ReadableStreamReader;
// https://streams.spec.whatwg.org/#rs-default-controller-private-cancel
v8::Local<v8::Promise> CancelSteps(ScriptState*, v8::Local<v8::Value> reason);
......
......@@ -5,68 +5,14 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_STREAMS_READABLE_STREAM_DEFAULT_READER_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_STREAMS_READABLE_STREAM_DEFAULT_READER_H_
#include "third_party/blink/renderer/bindings/core/v8/script_value.h"
#include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
#include "v8/include/v8.h"
#include "third_party/blink/renderer/core/streams/readable_stream_reader.h"
namespace blink {
class ExceptionState;
class ScriptPromise;
class ScriptState;
class ReadableStream;
class ReadableStreamNative;
class StreamPromiseResolver;
class Visitor;
// ReadableStreamDefaultReader is implemented by the ReadableStreamReader class.
// See the header file for the reasoning.
class ReadableStreamDefaultReader : public ScriptWrappable {
DEFINE_WRAPPERTYPEINFO();
public:
static ReadableStreamDefaultReader* Create(ScriptState*,
ReadableStream* stream,
ExceptionState&);
// https://streams.spec.whatwg.org/#default-reader-constructor
ReadableStreamDefaultReader(ScriptState*,
ReadableStreamNative* stream,
ExceptionState&);
~ReadableStreamDefaultReader() override;
// https://streams.spec.whatwg.org/#default-reader-closed
ScriptPromise closed(ScriptState*) const;
// https://streams.spec.whatwg.org/#default-reader-cancel
ScriptPromise cancel(ScriptState*);
ScriptPromise cancel(ScriptState*, ScriptValue reason);
// https://streams.spec.whatwg.org/#default-reader-read
ScriptPromise read(ScriptState*);
// https://streams.spec.whatwg.org/#default-reader-release-lock
void releaseLock(ScriptState*, ExceptionState&);
//
// Readable stream reader abstract operations
//
// https://streams.spec.whatwg.org/#readable-stream-default-reader-read
static StreamPromiseResolver* Read(ScriptState* script_state,
ReadableStreamDefaultReader* reader);
StreamPromiseResolver* ClosedPromise() { return closed_promise_; }
void Trace(Visitor*) override;
private:
friend class ReadableStreamDefaultController;
friend class ReadableStreamNative;
Member<StreamPromiseResolver> closed_promise_;
bool for_author_code_ = true;
Member<ReadableStreamNative> owner_readable_stream_;
HeapDeque<Member<StreamPromiseResolver>> read_requests_;
};
using ReadableStreamDefaultReader = ReadableStreamReader;
} // namespace blink
......
......@@ -16,7 +16,7 @@ namespace blink {
class ExceptionState;
class ReadableStreamDefaultController;
class ReadableStreamDefaultReader;
class ReadableStreamReader;
class ScriptState;
class StrategySizeAlgorithm;
class StreamAlgorithm;
......@@ -188,7 +188,7 @@ class ReadableStreamNative : public ReadableStream {
private:
friend class ReadableStreamDefaultController;
friend class ReadableStreamDefaultReader;
friend class ReadableStreamReader;
struct PipeOptions;
class PipeToEngine;
......@@ -199,11 +199,10 @@ class ReadableStreamNative : public ReadableStream {
static void Initialize(ReadableStreamNative*);
// https://streams.spec.whatwg.org/#acquire-readable-stream-reader
static ReadableStreamDefaultReader* AcquireDefaultReader(
ScriptState*,
ReadableStreamNative*,
bool for_author_code,
ExceptionState&);
static ReadableStreamReader* AcquireDefaultReader(ScriptState*,
ReadableStreamNative*,
bool for_author_code,
ExceptionState&);
// https://streams.spec.whatwg.org/#readable-stream-pipe-to
static ScriptPromise PipeTo(ScriptState*,
......@@ -243,20 +242,6 @@ class ReadableStreamNative : public ReadableStream {
// https://streams.spec.whatwg.org/#readable-stream-get-num-read-requests
static int GetNumReadRequests(const ReadableStreamNative*);
// https://streams.spec.whatwg.org/#readable-stream-reader-generic-cancel
static v8::Local<v8::Promise> ReaderGenericCancel(
ScriptState*,
ReadableStreamDefaultReader*,
v8::Local<v8::Value> reason);
// https://streams.spec.whatwg.org/#readable-stream-reader-generic-initialize
static void ReaderGenericInitialize(ScriptState*,
ReadableStreamDefaultReader*,
ReadableStreamNative*);
// https://streams.spec.whatwg.org/#readable-stream-reader-generic-release
static void ReaderGenericRelease(ScriptState*, ReadableStreamDefaultReader*);
//
// TODO(ricea): Functions for transferable streams.
//
......@@ -271,16 +256,11 @@ class ReadableStreamNative : public ReadableStream {
const char* property_name,
ExceptionState&);
// Calls method |method_name| on |object|, passing no arguments, and ignoring
// errors. Used for Blink lock notifications.
static void CallNullaryMethod(ScriptState*,
v8::Local<v8::Object> object,
const char* method_name);
bool is_disturbed_ = false;
State state_ = kReadable;
Member<ReadableStreamDefaultController> readable_stream_controller_;
Member<ReadableStreamDefaultReader> reader_;
Member<ReadableStreamReader> reader_;
TraceWrapperV8Reference<v8::Value> stored_error_;
};
......
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_STREAMS_READABLE_STREAM_READER_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_STREAMS_READABLE_STREAM_READER_H_
#include "third_party/blink/renderer/bindings/core/v8/script_value.h"
#include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
#include "v8/include/v8.h"
namespace blink {
class ExceptionState;
class ScriptPromise;
class ScriptState;
class ReadableStream;
class ReadableStreamNative;
class StreamPromiseResolver;
class Visitor;
// The specification sometimes treats ReadableStreamDefaultReader and
// ReadableStreamBYOBReader generically. Currently ReadableStreamBYOBReader
// isn't implemented in Blink. In order to make the generic operations align
// with the standard, ReadableStreamDefaultReader is implemented by the
// ReadableStreamReader class.
// TODO(ricea): Refactor this when implementing ReadableStreamBYOBReader.
class ReadableStreamReader : public ScriptWrappable {
DEFINE_WRAPPERTYPEINFO();
public:
static ReadableStreamReader* Create(ScriptState*,
ReadableStream* stream,
ExceptionState&);
// https://streams.spec.whatwg.org/#default-reader-constructor
ReadableStreamReader(ScriptState*,
ReadableStreamNative* stream,
ExceptionState&);
~ReadableStreamReader() override;
// https://streams.spec.whatwg.org/#default-reader-closed
ScriptPromise closed(ScriptState*) const;
// https://streams.spec.whatwg.org/#default-reader-cancel
ScriptPromise cancel(ScriptState*);
ScriptPromise cancel(ScriptState*, ScriptValue reason);
// https://streams.spec.whatwg.org/#default-reader-read
ScriptPromise read(ScriptState*);
// https://streams.spec.whatwg.org/#default-reader-release-lock
void releaseLock(ScriptState*, ExceptionState&);
//
// Readable stream reader abstract operations
//
// https://streams.spec.whatwg.org/#readable-stream-default-reader-read
static StreamPromiseResolver* Read(ScriptState* script_state,
ReadableStreamReader* reader);
// https://streams.spec.whatwg.org/#readable-stream-reader-generic-release
static void GenericRelease(ScriptState*, ReadableStreamReader*);
StreamPromiseResolver* ClosedPromise() { return closed_promise_; }
void Trace(Visitor*) override;
private:
friend class ReadableStreamDefaultController;
friend class ReadableStreamNative;
// https://streams.spec.whatwg.org/#readable-stream-reader-generic-cancel
static v8::Local<v8::Promise> GenericCancel(ScriptState*,
ReadableStreamReader*,
v8::Local<v8::Value> reason);
// https://streams.spec.whatwg.org/#readable-stream-reader-generic-initialize
static void GenericInitialize(ScriptState*,
ReadableStreamReader*,
ReadableStreamNative*);
// Calls method |method_name| on |object|, passing no arguments, and ignoring
// errors. Used for Blink lock notifications.
static void CallNullaryMethod(ScriptState*,
v8::Local<v8::Object> object,
const char* method_name);
Member<StreamPromiseResolver> closed_promise_;
bool for_author_code_ = true;
Member<ReadableStreamNative> owner_readable_stream_;
HeapDeque<Member<StreamPromiseResolver>> read_requests_;
};
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_CORE_STREAMS_READABLE_STREAM_READER_H_
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