| Index: third_party/WebKit/Source/modules/fetch/ReadableStreamDataConsumerHandle.h
|
| diff --git a/third_party/WebKit/Source/modules/fetch/ReadableStreamDataConsumerHandle.h b/third_party/WebKit/Source/modules/fetch/ReadableStreamDataConsumerHandle.h
|
| index 9c634f73d990d6da1e947994a59f1d2c7e7f6080..1da11b4bfa2573adee1a22cd1cf6e65eb2e2864e 100644
|
| --- a/third_party/WebKit/Source/modules/fetch/ReadableStreamDataConsumerHandle.h
|
| +++ b/third_party/WebKit/Source/modules/fetch/ReadableStreamDataConsumerHandle.h
|
| @@ -20,23 +20,24 @@ class ScriptState;
|
| // implemented with V8 Extras.
|
| // The stream will be immediately locked by the handle and will never be
|
| // released.
|
| +//
|
| +// The ReadableStreamReader handle held in a ReadableStreamDataConsumerHandle
|
| +// is weak. A user must guarantee that the ReadableStreamReader object is kept
|
| +// alive appropriately.
|
| // TODO(yhirano): CURRENTLY THIS HANDLE SUPPORTS READING ONLY FROM THE THREAD ON
|
| // WHICH IT IS CREATED. FIX THIS.
|
| -// TODO(yhirano): This implementation may cause leaks because the handle and
|
| -// the reader own a strong reference to the associated ReadableStreamReader.
|
| -// Fix it.
|
| class MODULES_EXPORT ReadableStreamDataConsumerHandle final : public FetchDataConsumerHandle {
|
| WTF_MAKE_NONCOPYABLE(ReadableStreamDataConsumerHandle);
|
| public:
|
| - static PassOwnPtr<ReadableStreamDataConsumerHandle> create(ScriptState* scriptState, v8::Local<v8::Value> stream)
|
| + static PassOwnPtr<ReadableStreamDataConsumerHandle> create(ScriptState* scriptState, v8::Local<v8::Object> streamReader)
|
| {
|
| - return adoptPtr(new ReadableStreamDataConsumerHandle(scriptState, stream));
|
| + return adoptPtr(new ReadableStreamDataConsumerHandle(scriptState, streamReader));
|
| }
|
| ~ReadableStreamDataConsumerHandle() override;
|
|
|
| private:
|
| class ReadingContext;
|
| - ReadableStreamDataConsumerHandle(ScriptState*, v8::Local<v8::Value> stream);
|
| + ReadableStreamDataConsumerHandle(ScriptState*, v8::Local<v8::Object> streamReader);
|
| Reader* obtainReaderInternal(Client*) override;
|
| const char* debugName() const override { return "ReadableStreamDataConsumerHandle"; }
|
|
|
|
|