Index: Source/platform/exported/WebMediaStreamTrack.cpp |
diff --git a/Source/platform/exported/WebMediaStreamTrack.cpp b/Source/platform/exported/WebMediaStreamTrack.cpp |
index 115ad924dabbce186f697670608f9b300e566991..4b7b3ac35f83510b8a11e9e408a1ee0b3b49797d 100644 |
--- a/Source/platform/exported/WebMediaStreamTrack.cpp |
+++ b/Source/platform/exported/WebMediaStreamTrack.cpp |
@@ -49,6 +49,23 @@ |
} // namespace |
+WebMediaStreamTrack WebMediaStreamTrack::ExtraData::owner() |
+{ |
+ ASSERT(m_owner); |
+ return WebMediaStreamTrack(m_owner); |
+} |
+ |
+void WebMediaStreamTrack::ExtraData::setOwner(MediaStreamComponent* owner) |
+{ |
+ ASSERT(!m_owner); |
+ m_owner = owner; |
+} |
+ |
+WebMediaStreamTrack::WebMediaStreamTrack(PassRefPtr<MediaStreamComponent> mediaStreamComponent) |
+ : m_private(mediaStreamComponent) |
+{ |
+} |
+ |
WebMediaStreamTrack::WebMediaStreamTrack(MediaStreamComponent* mediaStreamComponent) |
: m_private(mediaStreamComponent) |
{ |
@@ -73,6 +90,11 @@ |
void WebMediaStreamTrack::reset() |
{ |
m_private.reset(); |
+} |
+ |
+WebMediaStreamTrack::operator PassRefPtr<MediaStreamComponent>() const |
+{ |
+ return m_private.get(); |
} |
WebMediaStreamTrack::operator MediaStreamComponent*() const |
@@ -109,6 +131,10 @@ |
void WebMediaStreamTrack::setExtraData(ExtraData* extraData) |
{ |
ASSERT(!m_private.isNull()); |
+ |
+ if (extraData) |
+ extraData->setOwner(m_private.get()); |
+ |
m_private->setExtraData(adoptPtr(new ExtraDataContainer(adoptPtr(extraData)))); |
} |