Diff
Modified: trunk/Source/WebCore/ChangeLog (165857 => 165858)
--- trunk/Source/WebCore/ChangeLog 2014-03-19 00:01:41 UTC (rev 165857)
+++ trunk/Source/WebCore/ChangeLog 2014-03-19 00:28:29 UTC (rev 165858)
@@ -1,3 +1,23 @@
+2014-03-18 Thiago de Barros Lacerda <[email protected]>
+
+ [WebRTC] Fix layering violation in RTCStatsRequest
+ https://bugs.webkit.org/show_bug.cgi?id=130426
+
+ Reviewed by Eric Carlson.
+
+ RTCStatsRequest::track() should return a MediaStreamTrackPrivate*.
+
+ No new tests needed.
+
+ * Modules/mediastream/RTCPeerConnection.cpp:
+ (WebCore::RTCPeerConnection::getStats):
+ * Modules/mediastream/RTCStatsRequestImpl.cpp:
+ (WebCore::RTCStatsRequestImpl::create):
+ (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
+ (WebCore::RTCStatsRequestImpl::track):
+ * Modules/mediastream/RTCStatsRequestImpl.h:
+ * platform/mediastream/RTCStatsRequest.h:
+
2014-03-18 Anders Carlsson <[email protected]>
Fix a trivial FIXME
Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp (165857 => 165858)
--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp 2014-03-19 00:01:41 UTC (rev 165857)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp 2014-03-19 00:28:29 UTC (rev 165858)
@@ -529,7 +529,7 @@
void RTCPeerConnection::getStats(PassRefPtr<RTCStatsCallback> successCallback, PassRefPtr<RTCPeerConnectionErrorCallback> errorCallback, PassRefPtr<MediaStreamTrack> selector)
{
- RefPtr<RTCStatsRequestImpl> statsRequest = RTCStatsRequestImpl::create(scriptExecutionContext(), successCallback, errorCallback, selector);
+ RefPtr<RTCStatsRequestImpl> statsRequest = RTCStatsRequestImpl::create(scriptExecutionContext(), successCallback, errorCallback, &selector->privateTrack());
// FIXME: Add passing selector as part of the statsRequest.
m_peerHandler->getStats(statsRequest.release());
}
Modified: trunk/Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.cpp (165857 => 165858)
--- trunk/Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.cpp 2014-03-19 00:01:41 UTC (rev 165857)
+++ trunk/Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.cpp 2014-03-19 00:28:29 UTC (rev 165858)
@@ -36,14 +36,14 @@
namespace WebCore {
-PassRefPtr<RTCStatsRequestImpl> RTCStatsRequestImpl::create(ScriptExecutionContext* context, PassRefPtr<RTCStatsCallback> successCallback, PassRefPtr<RTCPeerConnectionErrorCallback> errorCallback, PassRefPtr<MediaStreamTrack> selector)
+PassRefPtr<RTCStatsRequestImpl> RTCStatsRequestImpl::create(ScriptExecutionContext* context, PassRefPtr<RTCStatsCallback> successCallback, PassRefPtr<RTCPeerConnectionErrorCallback> errorCallback, PassRefPtr<MediaStreamTrackPrivate> selector)
{
RefPtr<RTCStatsRequestImpl> request = adoptRef(new RTCStatsRequestImpl(context, successCallback, errorCallback, selector));
request->suspendIfNeeded();
return request.release();
}
-RTCStatsRequestImpl::RTCStatsRequestImpl(ScriptExecutionContext* context, PassRefPtr<RTCStatsCallback> successCallback, PassRefPtr<RTCPeerConnectionErrorCallback> errorCallback, PassRefPtr<MediaStreamTrack> selector)
+RTCStatsRequestImpl::RTCStatsRequestImpl(ScriptExecutionContext* context, PassRefPtr<RTCStatsCallback> successCallback, PassRefPtr<RTCPeerConnectionErrorCallback> errorCallback, PassRefPtr<MediaStreamTrackPrivate> selector)
: ActiveDOMObject(context)
, m_successCallback(successCallback)
, m_errorCallback(errorCallback)
@@ -65,7 +65,7 @@
return m_track;
}
-MediaStreamTrack* RTCStatsRequestImpl::track()
+MediaStreamTrackPrivate* RTCStatsRequestImpl::track()
{
return m_track.get();
}
Modified: trunk/Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.h (165857 => 165858)
--- trunk/Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.h 2014-03-19 00:01:41 UTC (rev 165857)
+++ trunk/Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.h 2014-03-19 00:28:29 UTC (rev 165858)
@@ -41,12 +41,12 @@
class RTCStatsRequestImpl : public RTCStatsRequest, public ActiveDOMObject {
public:
- static PassRefPtr<RTCStatsRequestImpl> create(ScriptExecutionContext*, PassRefPtr<RTCStatsCallback>, PassRefPtr<RTCPeerConnectionErrorCallback>, PassRefPtr<MediaStreamTrack>);
+ static PassRefPtr<RTCStatsRequestImpl> create(ScriptExecutionContext*, PassRefPtr<RTCStatsCallback>, PassRefPtr<RTCPeerConnectionErrorCallback>, PassRefPtr<MediaStreamTrackPrivate>);
virtual ~RTCStatsRequestImpl();
virtual PassRefPtr<RTCStatsResponseBase> createResponse() override;
virtual bool hasSelector() override;
- virtual MediaStreamTrack* track() override;
+ virtual MediaStreamTrackPrivate* track() override;
virtual void requestSucceeded(PassRefPtr<RTCStatsResponseBase>) override;
virtual void requestFailed(const String&) override;
@@ -55,13 +55,13 @@
virtual void stop() override;
private:
- RTCStatsRequestImpl(ScriptExecutionContext*, PassRefPtr<RTCStatsCallback>, PassRefPtr<RTCPeerConnectionErrorCallback>, PassRefPtr<MediaStreamTrack>);
+ RTCStatsRequestImpl(ScriptExecutionContext*, PassRefPtr<RTCStatsCallback>, PassRefPtr<RTCPeerConnectionErrorCallback>, PassRefPtr<MediaStreamTrackPrivate>);
void clear();
RefPtr<RTCStatsCallback> m_successCallback;
RefPtr<RTCPeerConnectionErrorCallback> m_errorCallback;
- RefPtr<MediaStreamTrack> m_track;
+ RefPtr<MediaStreamTrackPrivate> m_track;
};
} // namespace WebCore
Modified: trunk/Source/WebCore/platform/mediastream/RTCStatsRequest.h (165857 => 165858)
--- trunk/Source/WebCore/platform/mediastream/RTCStatsRequest.h 2014-03-19 00:01:41 UTC (rev 165857)
+++ trunk/Source/WebCore/platform/mediastream/RTCStatsRequest.h 2014-03-19 00:28:29 UTC (rev 165858)
@@ -39,7 +39,7 @@
namespace WebCore {
-class MediaStreamTrack;
+class MediaStreamTrackPrivate;
class RTCStatsResponseBase;
class RTCStatsRequest : public RefCounted<RTCStatsRequest> {
@@ -48,7 +48,7 @@
virtual PassRefPtr<RTCStatsResponseBase> createResponse() = 0;
virtual bool hasSelector() = 0;
- virtual MediaStreamTrack* track() = 0;
+ virtual MediaStreamTrackPrivate* track() = 0;
virtual void requestSucceeded(PassRefPtr<RTCStatsResponseBase>) = 0;
virtual void requestFailed(const String&) = 0;