Title: [100162] trunk/Source/WebKit/chromium
- Revision
- 100162
- Author
- [email protected]
- Date
- 2011-11-14 10:06:35 -0800 (Mon, 14 Nov 2011)
Log Message
[chromium] MediaStream API: Allow for null WebPeerConnectionHandler
https://bugs.webkit.org/show_bug.cgi?id=72114
Fixing crash if WebKitPlatformSupport returns a null WebPeerConnectionHandler
to PeerConnectionHandlerInternal.
Patch by Tommy Widenflycht <[email protected]> on 2011-11-14
Reviewed by Adam Barth.
* bridge/PeerConnectionHandlerInternal.cpp:
(WebCore::PeerConnectionHandlerInternal::PeerConnectionHandlerInternal):
(WebCore::PeerConnectionHandlerInternal::produceInitialOffer):
(WebCore::PeerConnectionHandlerInternal::handleInitialOffer):
(WebCore::PeerConnectionHandlerInternal::processSDP):
(WebCore::PeerConnectionHandlerInternal::processPendingStreams):
(WebCore::PeerConnectionHandlerInternal::sendDataStreamMessage):
(WebCore::PeerConnectionHandlerInternal::stop):
(WebCore::PeerConnectionHandlerInternal::didCompleteICEProcessing):
(WebCore::PeerConnectionHandlerInternal::didGenerateSDP):
(WebCore::PeerConnectionHandlerInternal::didReceiveDataStreamMessage):
(WebCore::PeerConnectionHandlerInternal::didAddRemoteStream):
(WebCore::PeerConnectionHandlerInternal::didRemoveRemoteStream):
* public/WebKitPlatformSupport.h:
Modified Paths
Diff
Modified: trunk/Source/WebKit/chromium/ChangeLog (100161 => 100162)
--- trunk/Source/WebKit/chromium/ChangeLog 2011-11-14 17:59:20 UTC (rev 100161)
+++ trunk/Source/WebKit/chromium/ChangeLog 2011-11-14 18:06:35 UTC (rev 100162)
@@ -1,3 +1,28 @@
+2011-11-14 Tommy Widenflycht <[email protected]>
+
+ [chromium] MediaStream API: Allow for null WebPeerConnectionHandler
+ https://bugs.webkit.org/show_bug.cgi?id=72114
+
+ Fixing crash if WebKitPlatformSupport returns a null WebPeerConnectionHandler
+ to PeerConnectionHandlerInternal.
+
+ Reviewed by Adam Barth.
+
+ * bridge/PeerConnectionHandlerInternal.cpp:
+ (WebCore::PeerConnectionHandlerInternal::PeerConnectionHandlerInternal):
+ (WebCore::PeerConnectionHandlerInternal::produceInitialOffer):
+ (WebCore::PeerConnectionHandlerInternal::handleInitialOffer):
+ (WebCore::PeerConnectionHandlerInternal::processSDP):
+ (WebCore::PeerConnectionHandlerInternal::processPendingStreams):
+ (WebCore::PeerConnectionHandlerInternal::sendDataStreamMessage):
+ (WebCore::PeerConnectionHandlerInternal::stop):
+ (WebCore::PeerConnectionHandlerInternal::didCompleteICEProcessing):
+ (WebCore::PeerConnectionHandlerInternal::didGenerateSDP):
+ (WebCore::PeerConnectionHandlerInternal::didReceiveDataStreamMessage):
+ (WebCore::PeerConnectionHandlerInternal::didAddRemoteStream):
+ (WebCore::PeerConnectionHandlerInternal::didRemoveRemoteStream):
+ * public/WebKitPlatformSupport.h:
+
2011-11-14 Jonathan Backer <[email protected]>
[chromium] Plumb through partial swap
Modified: trunk/Source/WebKit/chromium/bridge/PeerConnectionHandlerInternal.cpp (100161 => 100162)
--- trunk/Source/WebKit/chromium/bridge/PeerConnectionHandlerInternal.cpp 2011-11-14 17:59:20 UTC (rev 100161)
+++ trunk/Source/WebKit/chromium/bridge/PeerConnectionHandlerInternal.cpp 2011-11-14 18:06:35 UTC (rev 100162)
@@ -44,7 +44,10 @@
{
ASSERT(m_client);
m_webHandler = adoptPtr(WebKit::webKitPlatformSupport()->createPeerConnectionHandler(this));
- m_webHandler->initialize(serverConfiguration, securityOrigin);
+ // FIXME: When there is some error reporting avaliable in the PeerConnection object report
+ // if we didn't get a WebPeerConnectionHandler instance.
+ if (m_webHandler)
+ m_webHandler->initialize(serverConfiguration, securityOrigin);
}
PeerConnectionHandlerInternal::~PeerConnectionHandlerInternal()
@@ -53,57 +56,68 @@
void PeerConnectionHandlerInternal::produceInitialOffer(const MediaStreamDescriptorVector& pendingAddStreams)
{
- m_webHandler->produceInitialOffer(pendingAddStreams);
+ if (m_webHandler)
+ m_webHandler->produceInitialOffer(pendingAddStreams);
}
void PeerConnectionHandlerInternal::handleInitialOffer(const String& sdp)
{
- m_webHandler->handleInitialOffer(sdp);
+ if (m_webHandler)
+ m_webHandler->handleInitialOffer(sdp);
}
void PeerConnectionHandlerInternal::processSDP(const String& sdp)
{
- m_webHandler->processSDP(sdp);
+ if (m_webHandler)
+ m_webHandler->processSDP(sdp);
}
void PeerConnectionHandlerInternal::processPendingStreams(const MediaStreamDescriptorVector& pendingAddStreams, const MediaStreamDescriptorVector& pendingRemoveStreams)
{
- m_webHandler->processPendingStreams(pendingAddStreams, pendingRemoveStreams);
+ if (m_webHandler)
+ m_webHandler->processPendingStreams(pendingAddStreams, pendingRemoveStreams);
}
void PeerConnectionHandlerInternal::sendDataStreamMessage(const char* data, size_t length)
{
- m_webHandler->sendDataStreamMessage(data, length);
+ if (m_webHandler)
+ m_webHandler->sendDataStreamMessage(data, length);
}
void PeerConnectionHandlerInternal::stop()
{
- m_webHandler->stop();
+ if (m_webHandler)
+ m_webHandler->stop();
}
void PeerConnectionHandlerInternal::didCompleteICEProcessing()
{
- m_client->didCompleteICEProcessing();
+ if (m_webHandler)
+ m_client->didCompleteICEProcessing();
}
void PeerConnectionHandlerInternal::didGenerateSDP(const WebKit::WebString& sdp)
{
- m_client->didGenerateSDP(sdp);
+ if (m_webHandler)
+ m_client->didGenerateSDP(sdp);
}
void PeerConnectionHandlerInternal::didReceiveDataStreamMessage(const char* data, size_t length)
{
- m_client->didReceiveDataStreamMessage(data, length);
+ if (m_webHandler)
+ m_client->didReceiveDataStreamMessage(data, length);
}
void PeerConnectionHandlerInternal::didAddRemoteStream(const WebKit::WebMediaStreamDescriptor& webMediaStreamDescriptor)
{
- m_client->didAddRemoteStream(webMediaStreamDescriptor);
+ if (m_webHandler)
+ m_client->didAddRemoteStream(webMediaStreamDescriptor);
}
void PeerConnectionHandlerInternal::didRemoveRemoteStream(const WebKit::WebMediaStreamDescriptor& webMediaStreamDescriptor)
{
- m_client->didRemoveRemoteStream(webMediaStreamDescriptor);
+ if (m_webHandler)
+ m_client->didRemoveRemoteStream(webMediaStreamDescriptor);
}
} // namespace WebCore
Modified: trunk/Source/WebKit/chromium/public/WebKitPlatformSupport.h (100161 => 100162)
--- trunk/Source/WebKit/chromium/public/WebKitPlatformSupport.h 2011-11-14 17:59:20 UTC (rev 100161)
+++ trunk/Source/WebKit/chromium/public/WebKitPlatformSupport.h 2011-11-14 18:06:35 UTC (rev 100162)
@@ -325,6 +325,7 @@
// WebRTC ----------------------------------------------------------
+ // May return null if WebRTC functionality is not avaliable or out of resources.
virtual WebPeerConnectionHandler* createPeerConnectionHandler(WebPeerConnectionHandlerClient*) { return 0; }
protected:
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes