| Index: third_party/WebKit/Source/modules/mediastream/MediaStream.cpp | 
| diff --git a/third_party/WebKit/Source/modules/mediastream/MediaStream.cpp b/third_party/WebKit/Source/modules/mediastream/MediaStream.cpp | 
| index 8c5ac74f2d61de9a07506de82b2cdaded59f3a3a..e9da453920eb730d403cf9ce11ebec0266b23166 100644 | 
| --- a/third_party/WebKit/Source/modules/mediastream/MediaStream.cpp | 
| +++ b/third_party/WebKit/Source/modules/mediastream/MediaStream.cpp | 
| @@ -89,12 +89,12 @@ | 
| return new MediaStream(context, audioTracks, videoTracks); | 
| } | 
|  | 
| -MediaStream* MediaStream::create(ExecutionContext* context, MediaStreamDescriptor* streamDescriptor) | 
| +MediaStream* MediaStream::create(ExecutionContext* context, PassRefPtr<MediaStreamDescriptor> streamDescriptor) | 
| { | 
| return new MediaStream(context, streamDescriptor); | 
| } | 
|  | 
| -MediaStream::MediaStream(ExecutionContext* context, MediaStreamDescriptor* streamDescriptor) | 
| +MediaStream::MediaStream(ExecutionContext* context, PassRefPtr<MediaStreamDescriptor> streamDescriptor) | 
| : ContextLifecycleObserver(context) | 
| , m_stopped(false) | 
| , m_descriptor(streamDescriptor) | 
| @@ -143,7 +143,7 @@ | 
|  | 
| m_descriptor = MediaStreamDescriptor::create(audioComponents, videoComponents); | 
| m_descriptor->setClient(this); | 
| -    MediaStreamCenter::instance().didCreateMediaStream(m_descriptor); | 
| +    MediaStreamCenter::instance().didCreateMediaStream(m_descriptor.get()); | 
|  | 
| m_audioTracks = audioTracks; | 
| m_videoTracks = videoTracks; | 
| @@ -154,6 +154,7 @@ | 
|  | 
| MediaStream::~MediaStream() | 
| { | 
| +    m_descriptor->setClient(0); | 
| } | 
|  | 
| bool MediaStream::emptyOrOnlyEndedTracks() | 
| @@ -208,7 +209,7 @@ | 
| scheduleDispatchEvent(Event::create(EventTypeNames::active)); | 
| } | 
|  | 
| -    MediaStreamCenter::instance().didAddMediaStreamTrack(m_descriptor, track->component()); | 
| +    MediaStreamCenter::instance().didAddMediaStreamTrack(m_descriptor.get(), track->component()); | 
| } | 
|  | 
| void MediaStream::removeTrack(MediaStreamTrack* track, ExceptionState& exceptionState) | 
| @@ -242,7 +243,7 @@ | 
| scheduleDispatchEvent(Event::create(EventTypeNames::inactive)); | 
| } | 
|  | 
| -    MediaStreamCenter::instance().didRemoveMediaStreamTrack(m_descriptor, track->component()); | 
| +    MediaStreamCenter::instance().didRemoveMediaStreamTrack(m_descriptor.get(), track->component()); | 
| } | 
|  | 
| MediaStreamTrack* MediaStream::getTrackById(String id) | 
| @@ -411,11 +412,9 @@ | 
| { | 
| visitor->trace(m_audioTracks); | 
| visitor->trace(m_videoTracks); | 
| -    visitor->trace(m_descriptor); | 
| visitor->trace(m_scheduledEvents); | 
| RefCountedGarbageCollectedEventTargetWithInlineData<MediaStream>::trace(visitor); | 
| ContextLifecycleObserver::trace(visitor); | 
| -    MediaStreamDescriptorClient::trace(visitor); | 
| } | 
|  | 
| } // namespace blink | 
|  |