| Index: third_party/WebKit/Source/platform/mediastream/MediaStreamSource.cpp | 
| diff --git a/third_party/WebKit/Source/platform/mediastream/MediaStreamSource.cpp b/third_party/WebKit/Source/platform/mediastream/MediaStreamSource.cpp | 
| index 2da75e51ed9b84a5ad0849d0e796c26d4a9ed71c..f03a996183f450ece8d3b3a900a4892afde9c4bf 100644 | 
| --- a/third_party/WebKit/Source/platform/mediastream/MediaStreamSource.cpp | 
| +++ b/third_party/WebKit/Source/platform/mediastream/MediaStreamSource.cpp | 
| @@ -34,9 +34,9 @@ | 
|  | 
| namespace blink { | 
|  | 
| -MediaStreamSource* MediaStreamSource::create(const String& id, Type type, const String& name, bool remote, bool readonly, ReadyState readyState, bool requiresConsumer) | 
| +PassRefPtr<MediaStreamSource> MediaStreamSource::create(const String& id, Type type, const String& name, bool remote, bool readonly, ReadyState readyState, bool requiresConsumer) | 
| { | 
| -    return new MediaStreamSource(id, type, name, remote, readonly, readyState, requiresConsumer); | 
| +    return adoptRef(new MediaStreamSource(id, type, name, remote, readonly, readyState, requiresConsumer)); | 
| } | 
|  | 
| MediaStreamSource::MediaStreamSource(const String& id, Type type, const String& name, bool remote, bool readonly, ReadyState readyState, bool requiresConsumer) | 
| @@ -54,14 +54,21 @@ | 
| { | 
| if (m_readyState != ReadyStateEnded && m_readyState != readyState) { | 
| m_readyState = readyState; | 
| -        for (auto i = m_observers.begin(); i != m_observers.end(); ++i) | 
| +        for (Vector<Observer*>::iterator i = m_observers.begin(); i != m_observers.end(); ++i) | 
| (*i)->sourceChangedState(); | 
| } | 
| } | 
|  | 
| void MediaStreamSource::addObserver(MediaStreamSource::Observer* observer) | 
| { | 
| -    m_observers.add(observer); | 
| +    m_observers.append(observer); | 
| +} | 
| + | 
| +void MediaStreamSource::removeObserver(MediaStreamSource::Observer* observer) | 
| +{ | 
| +    size_t pos = m_observers.find(observer); | 
| +    if (pos != kNotFound) | 
| +        m_observers.remove(pos); | 
| } | 
|  | 
| void MediaStreamSource::addAudioConsumer(AudioDestinationConsumer* consumer) | 
| @@ -98,10 +105,4 @@ | 
| (*it)->consumeAudio(bus, numberOfFrames); | 
| } | 
|  | 
| -DEFINE_TRACE(MediaStreamSource) | 
| -{ | 
| -    visitor->trace(m_observers); | 
| -    visitor->trace(m_audioConsumers); | 
| -} | 
| - | 
| } // namespace blink | 
|  |