| Index: third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp
|
| diff --git a/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp b/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp
|
| index 7c4b0a718fc72e357028bebb577cac67740c1109..7a17bf6f74d7471ffb7c607d53c1c3af0198b1f7 100644
|
| --- a/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp
|
| +++ b/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp
|
| @@ -43,13 +43,16 @@
|
|
|
| MediaStreamTrack* MediaStreamTrack::create(ExecutionContext* context, MediaStreamComponent* component)
|
| {
|
| - return new MediaStreamTrack(context, component);
|
| + MediaStreamTrack* track = new MediaStreamTrack(context, component);
|
| + track->suspendIfNeeded();
|
| + return track;
|
| }
|
|
|
| MediaStreamTrack::MediaStreamTrack(ExecutionContext* context, MediaStreamComponent* component)
|
| - : ContextLifecycleObserver(context)
|
| + : ActiveDOMObject(context)
|
| , m_readyState(MediaStreamSource::ReadyStateLive)
|
| , m_isIteratingRegisteredMediaStreams(false)
|
| + , m_stopped(false)
|
| , m_component(component)
|
| {
|
| m_component->source()->addObserver(this);
|
| @@ -168,7 +171,7 @@
|
|
|
| bool MediaStreamTrack::ended() const
|
| {
|
| - return !executionContext() || (m_readyState == MediaStreamSource::ReadyStateEnded);
|
| + return m_stopped || (m_readyState == MediaStreamSource::ReadyStateEnded);
|
| }
|
|
|
| void MediaStreamTrack::sourceChangedState()
|
| @@ -202,6 +205,11 @@
|
| m_isIteratingRegisteredMediaStreams = false;
|
| }
|
|
|
| +void MediaStreamTrack::stop()
|
| +{
|
| + m_stopped = true;
|
| +}
|
| +
|
| bool MediaStreamTrack::hasPendingActivity() const
|
| {
|
| // If 'ended' listeners exist and the object hasn't yet reached
|
| @@ -246,7 +254,7 @@
|
|
|
| ExecutionContext* MediaStreamTrack::executionContext() const
|
| {
|
| - return ContextLifecycleObserver::executionContext();
|
| + return ActiveDOMObject::executionContext();
|
| }
|
|
|
| DEFINE_TRACE(MediaStreamTrack)
|
| @@ -254,7 +262,7 @@
|
| visitor->trace(m_registeredMediaStreams);
|
| visitor->trace(m_component);
|
| RefCountedGarbageCollectedEventTargetWithInlineData<MediaStreamTrack>::trace(visitor);
|
| - ContextLifecycleObserver::trace(visitor);
|
| + ActiveDOMObject::trace(visitor);
|
| }
|
|
|
| } // namespace blink
|
|
|