Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(589)

Side by Side Diff: third_party/WebKit/Source/core/streams/ReadableStreamReader.cpp

Issue 1808533003: Revert of Reduce ActiveDOMObjects from core/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/streams/ReadableStreamReader.h" 5 #include "core/streams/ReadableStreamReader.h"
6 6
7 #include "bindings/core/v8/ExceptionState.h" 7 #include "bindings/core/v8/ExceptionState.h"
8 #include "bindings/core/v8/ScriptPromiseResolver.h" 8 #include "bindings/core/v8/ScriptPromiseResolver.h"
9 #include "bindings/core/v8/ToV8.h" 9 #include "bindings/core/v8/ToV8.h"
10 #include "bindings/core/v8/V8IteratorResultValue.h" 10 #include "bindings/core/v8/V8IteratorResultValue.h"
11 #include "core/dom/DOMException.h" 11 #include "core/dom/DOMException.h"
12 #include "core/dom/ExceptionCode.h" 12 #include "core/dom/ExceptionCode.h"
13 #include "core/streams/ReadableStream.h" 13 #include "core/streams/ReadableStream.h"
14 14
15 namespace blink { 15 namespace blink {
16 16
17 ReadableStreamReader::ReadableStreamReader(ExecutionContext* executionContext, R eadableStream* stream) 17 ReadableStreamReader::ReadableStreamReader(ExecutionContext* executionContext, R eadableStream* stream)
18 : ContextLifecycleObserver(executionContext) 18 : ActiveDOMObject(executionContext)
19 , m_stream(stream) 19 , m_stream(stream)
20 , m_closed(new ClosedPromise(executionContext, this, ClosedPromise::Closed)) 20 , m_closed(new ClosedPromise(executionContext, this, ClosedPromise::Closed))
21 { 21 {
22 suspendIfNeeded();
22 ASSERT(m_stream->isLockedTo(nullptr)); 23 ASSERT(m_stream->isLockedTo(nullptr));
23 m_stream->setReader(this); 24 m_stream->setReader(this);
24 25
25 if (m_stream->stateInternal() == ReadableStream::Closed) 26 if (m_stream->stateInternal() == ReadableStream::Closed)
26 m_closed->resolve(ToV8UndefinedGenerator()); 27 m_closed->resolve(ToV8UndefinedGenerator());
27 if (m_stream->stateInternal() == ReadableStream::Errored) 28 if (m_stream->stateInternal() == ReadableStream::Errored)
28 m_closed->reject(m_stream->storedException()); 29 m_closed->reject(m_stream->storedException());
29 } 30 }
30 31
31 ScriptPromise ReadableStreamReader::closed(ScriptState* scriptState) 32 ScriptPromise ReadableStreamReader::closed(ScriptState* scriptState)
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 m_closed->reject(m_stream->storedException()); 103 m_closed->reject(m_stream->storedException());
103 } 104 }
104 105
105 bool ReadableStreamReader::hasPendingActivity() const 106 bool ReadableStreamReader::hasPendingActivity() const
106 { 107 {
107 // We need to extend ReadableStreamReader's wrapper's life while it is 108 // We need to extend ReadableStreamReader's wrapper's life while it is
108 // active in order to call resolve / reject on ScriptPromiseProperties. 109 // active in order to call resolve / reject on ScriptPromiseProperties.
109 return isActive() && m_stream->stateInternal() == ReadableStream::Readable; 110 return isActive() && m_stream->stateInternal() == ReadableStream::Readable;
110 } 111 }
111 112
112 void ReadableStreamReader::contextDestroyed() 113 void ReadableStreamReader::stop()
113 { 114 {
114 if (isActive()) { 115 if (isActive()) {
115 // Calling |error| will release the lock. 116 // Calling |error| will release the lock.
116 m_stream->error(DOMException::create(AbortError, "The frame stops workin g.")); 117 m_stream->error(DOMException::create(AbortError, "The frame stops workin g."));
117 } 118 }
119 ActiveDOMObject::stop();
118 } 120 }
119 121
120 DEFINE_TRACE(ReadableStreamReader) 122 DEFINE_TRACE(ReadableStreamReader)
121 { 123 {
122 visitor->trace(m_stream); 124 visitor->trace(m_stream);
123 visitor->trace(m_closed); 125 visitor->trace(m_closed);
124 ContextLifecycleObserver::trace(visitor); 126 ActiveDOMObject::trace(visitor);
125 } 127 }
126 128
127 } // namespace blink 129 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/streams/ReadableStreamReader.h ('k') | third_party/WebKit/Source/core/streams/Stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698