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

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

Issue 1750453002: 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 : ActiveDOMObject(executionContext) 18 : ContextLifecycleObserver(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();
23 ASSERT(m_stream->isLockedTo(nullptr)); 22 ASSERT(m_stream->isLockedTo(nullptr));
24 m_stream->setReader(this); 23 m_stream->setReader(this);
25 24
26 if (m_stream->stateInternal() == ReadableStream::Closed) 25 if (m_stream->stateInternal() == ReadableStream::Closed)
27 m_closed->resolve(ToV8UndefinedGenerator()); 26 m_closed->resolve(ToV8UndefinedGenerator());
28 if (m_stream->stateInternal() == ReadableStream::Errored) 27 if (m_stream->stateInternal() == ReadableStream::Errored)
29 m_closed->reject(m_stream->storedException()); 28 m_closed->reject(m_stream->storedException());
30 } 29 }
31 30
32 ScriptPromise ReadableStreamReader::closed(ScriptState* scriptState) 31 ScriptPromise ReadableStreamReader::closed(ScriptState* scriptState)
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 m_closed->reject(m_stream->storedException()); 102 m_closed->reject(m_stream->storedException());
104 } 103 }
105 104
106 bool ReadableStreamReader::hasPendingActivity() const 105 bool ReadableStreamReader::hasPendingActivity() const
107 { 106 {
108 // We need to extend ReadableStreamReader's wrapper's life while it is 107 // We need to extend ReadableStreamReader's wrapper's life while it is
109 // active in order to call resolve / reject on ScriptPromiseProperties. 108 // active in order to call resolve / reject on ScriptPromiseProperties.
110 return isActive() && m_stream->stateInternal() == ReadableStream::Readable; 109 return isActive() && m_stream->stateInternal() == ReadableStream::Readable;
111 } 110 }
112 111
113 void ReadableStreamReader::stop() 112 void ReadableStreamReader::contextDestroyed()
114 { 113 {
115 if (isActive()) { 114 if (isActive()) {
116 // Calling |error| will release the lock. 115 // Calling |error| will release the lock.
117 m_stream->error(DOMException::create(AbortError, "The frame stops workin g.")); 116 m_stream->error(DOMException::create(AbortError, "The frame stops workin g."));
118 } 117 }
119 ActiveDOMObject::stop();
120 } 118 }
121 119
122 DEFINE_TRACE(ReadableStreamReader) 120 DEFINE_TRACE(ReadableStreamReader)
123 { 121 {
124 visitor->trace(m_stream); 122 visitor->trace(m_stream);
125 visitor->trace(m_closed); 123 visitor->trace(m_closed);
126 ActiveDOMObject::trace(visitor); 124 ContextLifecycleObserver::trace(visitor);
127 } 125 }
128 126
129 } // namespace blink 127 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698