| Index: third_party/WebKit/Source/modules/fetch/BytesConsumer.cpp
|
| diff --git a/third_party/WebKit/Source/modules/fetch/BytesConsumer.cpp b/third_party/WebKit/Source/modules/fetch/BytesConsumer.cpp
|
| index 40e34802367c2687e7d690c0c848a839f96adc10..0394c0e717ca8322eed98d89715f5ace087ca985 100644
|
| --- a/third_party/WebKit/Source/modules/fetch/BytesConsumer.cpp
|
| +++ b/third_party/WebKit/Source/modules/fetch/BytesConsumer.cpp
|
| @@ -298,6 +298,54 @@ class Tee final : public GarbageCollectedFinalized<Tee>,
|
| Member<Destination> m_destination2;
|
| };
|
|
|
| +class ErroredBytesConsumer final : public BytesConsumer {
|
| + public:
|
| + explicit ErroredBytesConsumer(const Error& error) : m_error(error) {}
|
| +
|
| + Result beginRead(const char** buffer, size_t* available) override {
|
| + *buffer = nullptr;
|
| + *available = 0;
|
| + return Result::Error;
|
| + }
|
| + Result endRead(size_t readSize) override {
|
| + NOTREACHED();
|
| + return Result::Error;
|
| + }
|
| + void setClient(BytesConsumer::Client*) override {}
|
| + void clearClient() override {}
|
| +
|
| + void cancel() override {}
|
| + PublicState getPublicState() const override { return PublicState::Errored; }
|
| + Error getError() const override { return m_error; }
|
| + String debugName() const override { return "ErroredBytesConsumer"; }
|
| +
|
| + private:
|
| + const Error m_error;
|
| +};
|
| +
|
| +class ClosedBytesConsumer final : public BytesConsumer {
|
| + public:
|
| + Result beginRead(const char** buffer, size_t* available) override {
|
| + *buffer = nullptr;
|
| + *available = 0;
|
| + return Result::Done;
|
| + }
|
| + Result endRead(size_t readSize) override {
|
| + NOTREACHED();
|
| + return Result::Error;
|
| + }
|
| + void setClient(BytesConsumer::Client*) override {}
|
| + void clearClient() override {}
|
| +
|
| + void cancel() override {}
|
| + PublicState getPublicState() const override { return PublicState::Closed; }
|
| + Error getError() const override {
|
| + NOTREACHED();
|
| + return Error();
|
| + }
|
| + String debugName() const override { return "ClosedBytesConsumer"; }
|
| +};
|
| +
|
| } // namespace
|
|
|
| void BytesConsumer::tee(ExecutionContext* executionContext,
|
| @@ -319,4 +367,12 @@ void BytesConsumer::tee(ExecutionContext* executionContext,
|
| *dest2 = tee->destination2();
|
| }
|
|
|
| +BytesConsumer* BytesConsumer::createErrored(const BytesConsumer::Error& error) {
|
| + return new ErroredBytesConsumer(error);
|
| +}
|
| +
|
| +BytesConsumer* BytesConsumer::createClosed() {
|
| + return new ClosedBytesConsumer();
|
| +}
|
| +
|
| } // namespace blink
|
|
|