| Index: third_party/WebKit/Source/platform/mediastream/MediaStreamDescriptor.h | 
| diff --git a/third_party/WebKit/Source/platform/mediastream/MediaStreamDescriptor.h b/third_party/WebKit/Source/platform/mediastream/MediaStreamDescriptor.h | 
| index 6cb9a0c1cb441641a5a905f8001cdad2bfff509f..8665abf41ce7c614230aa18fc43d41b549f06683 100644 | 
| --- a/third_party/WebKit/Source/platform/mediastream/MediaStreamDescriptor.h | 
| +++ b/third_party/WebKit/Source/platform/mediastream/MediaStreamDescriptor.h | 
| @@ -40,17 +40,16 @@ | 
|  | 
| namespace blink { | 
|  | 
| -class PLATFORM_EXPORT MediaStreamDescriptorClient : public GarbageCollectedMixin { | 
| +class PLATFORM_EXPORT MediaStreamDescriptorClient { | 
| public: | 
| virtual ~MediaStreamDescriptorClient() { } | 
|  | 
| virtual void streamEnded() = 0; | 
| virtual void addRemoteTrack(MediaStreamComponent*) = 0; | 
| virtual void removeRemoteTrack(MediaStreamComponent*) = 0; | 
| -    DEFINE_INLINE_VIRTUAL_TRACE() { } | 
| }; | 
|  | 
| -class PLATFORM_EXPORT MediaStreamDescriptor final : public GarbageCollectedFinalized<MediaStreamDescriptor> { | 
| +class PLATFORM_EXPORT MediaStreamDescriptor final : public RefCounted<MediaStreamDescriptor> { | 
| public: | 
| class ExtraData { | 
| public: | 
| @@ -58,11 +57,11 @@ | 
| }; | 
|  | 
| // Only used for AudioDestinationNode. | 
| -    static MediaStreamDescriptor* create(const MediaStreamSourceVector& audioSources, const MediaStreamSourceVector& videoSources); | 
| +    static PassRefPtr<MediaStreamDescriptor> create(const MediaStreamSourceVector& audioSources, const MediaStreamSourceVector& videoSources); | 
|  | 
| -    static MediaStreamDescriptor* create(const MediaStreamComponentVector& audioComponents, const MediaStreamComponentVector& videoComponents); | 
| +    static PassRefPtr<MediaStreamDescriptor> create(const MediaStreamComponentVector& audioComponents, const MediaStreamComponentVector& videoComponents); | 
|  | 
| -    static MediaStreamDescriptor* create(const String& id, const MediaStreamComponentVector& audioComponents, const MediaStreamComponentVector& videoComponents); | 
| +    static PassRefPtr<MediaStreamDescriptor> create(const String& id, const MediaStreamComponentVector& audioComponents, const MediaStreamComponentVector& videoComponents); | 
|  | 
| MediaStreamDescriptorClient* client() const { return m_client; } | 
| void setClient(MediaStreamDescriptorClient* client) { m_client = client; } | 
| @@ -75,8 +74,8 @@ | 
| unsigned numberOfVideoComponents() const { return m_videoComponents.size(); } | 
| MediaStreamComponent* videoComponent(unsigned index) const { return m_videoComponents[index].get(); } | 
|  | 
| -    void addComponent(MediaStreamComponent*); | 
| -    void removeComponent(MediaStreamComponent*); | 
| +    void addComponent(PassRefPtr<MediaStreamComponent>); | 
| +    void removeComponent(PassRefPtr<MediaStreamComponent>); | 
|  | 
| void addRemoteTrack(MediaStreamComponent*); | 
| void removeRemoteTrack(MediaStreamComponent*); | 
| @@ -90,26 +89,21 @@ | 
| ExtraData* extraData() const { return m_extraData.get(); } | 
| void setExtraData(PassOwnPtr<ExtraData> extraData) { m_extraData = extraData; } | 
|  | 
| -    // |m_extraData| may hold pointers to GC objects, and it may touch them in destruction. | 
| -    // So this class is eagerly finalized to finalize |m_extraData| promptly. | 
| -    EAGERLY_FINALIZE(); | 
| -    DECLARE_TRACE(); | 
| - | 
| private: | 
| MediaStreamDescriptor(const String& id, const MediaStreamSourceVector& audioSources, const MediaStreamSourceVector& videoSources); | 
| MediaStreamDescriptor(const String& id, const MediaStreamComponentVector& audioComponents, const MediaStreamComponentVector& videoComponents); | 
|  | 
| -    Member<MediaStreamDescriptorClient> m_client; | 
| +    MediaStreamDescriptorClient* m_client; | 
| String m_id; | 
| -    HeapVector<Member<MediaStreamComponent>> m_audioComponents; | 
| -    HeapVector<Member<MediaStreamComponent>> m_videoComponents; | 
| +    Vector<RefPtr<MediaStreamComponent>> m_audioComponents; | 
| +    Vector<RefPtr<MediaStreamComponent>> m_videoComponents; | 
| bool m_active; | 
| bool m_ended; | 
|  | 
| OwnPtr<ExtraData> m_extraData; | 
| }; | 
|  | 
| -typedef HeapVector<Member<MediaStreamDescriptor>> MediaStreamDescriptorVector; | 
| +typedef Vector<RefPtr<MediaStreamDescriptor>> MediaStreamDescriptorVector; | 
|  | 
| } // namespace blink | 
|  | 
|  |