Title: [131721] trunk/Source/WebCore
- Revision
- 131721
- Author
- [email protected]
- Date
- 2012-10-18 03:23:44 -0700 (Thu, 18 Oct 2012)
Log Message
MediaStream API: Add better RTCPeerConnectionHandler creation logic
https://bugs.webkit.org/show_bug.cgi?id=99308
Reviewed by Adam Barth.
This patch makes sure that if the RTCPeerConnectionHandler can't be fully initialized/created
the RTCPeerConnection constructor throws an exception.
Not full testable, existing tests cover the normal case though.
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
(WebCore::RTCPeerConnectionHandler::create):
(WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
(WebCore::RTCPeerConnectionHandlerChromium::createWebHandler):
(WebCore::RTCPeerConnectionHandlerChromium::initialize):
(WebCore::RTCPeerConnectionHandlerChromium::createOffer):
(WebCore::RTCPeerConnectionHandlerChromium::createAnswer):
(WebCore::RTCPeerConnectionHandlerChromium::setLocalDescription):
(WebCore::RTCPeerConnectionHandlerChromium::setRemoteDescription):
(WebCore::RTCPeerConnectionHandlerChromium::updateIce):
(WebCore::RTCPeerConnectionHandlerChromium::addIceCandidate):
(WebCore::RTCPeerConnectionHandlerChromium::localDescription):
(WebCore::RTCPeerConnectionHandlerChromium::remoteDescription):
(WebCore::RTCPeerConnectionHandlerChromium::addStream):
(WebCore::RTCPeerConnectionHandlerChromium::removeStream):
(WebCore::RTCPeerConnectionHandlerChromium::getStats):
(WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
(WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
(WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
(WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
(WebCore::RTCPeerConnectionHandlerChromium::stop):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
(RTCPeerConnectionHandlerChromium):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (131720 => 131721)
--- trunk/Source/WebCore/ChangeLog 2012-10-18 09:48:06 UTC (rev 131720)
+++ trunk/Source/WebCore/ChangeLog 2012-10-18 10:23:44 UTC (rev 131721)
@@ -1,3 +1,39 @@
+2012-10-18 Tommy Widenflycht <[email protected]>
+
+ MediaStream API: Add better RTCPeerConnectionHandler creation logic
+ https://bugs.webkit.org/show_bug.cgi?id=99308
+
+ Reviewed by Adam Barth.
+
+ This patch makes sure that if the RTCPeerConnectionHandler can't be fully initialized/created
+ the RTCPeerConnection constructor throws an exception.
+
+ Not full testable, existing tests cover the normal case though.
+
+ * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
+ (WebCore::RTCPeerConnectionHandler::create):
+ (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
+ (WebCore::RTCPeerConnectionHandlerChromium::createWebHandler):
+ (WebCore::RTCPeerConnectionHandlerChromium::initialize):
+ (WebCore::RTCPeerConnectionHandlerChromium::createOffer):
+ (WebCore::RTCPeerConnectionHandlerChromium::createAnswer):
+ (WebCore::RTCPeerConnectionHandlerChromium::setLocalDescription):
+ (WebCore::RTCPeerConnectionHandlerChromium::setRemoteDescription):
+ (WebCore::RTCPeerConnectionHandlerChromium::updateIce):
+ (WebCore::RTCPeerConnectionHandlerChromium::addIceCandidate):
+ (WebCore::RTCPeerConnectionHandlerChromium::localDescription):
+ (WebCore::RTCPeerConnectionHandlerChromium::remoteDescription):
+ (WebCore::RTCPeerConnectionHandlerChromium::addStream):
+ (WebCore::RTCPeerConnectionHandlerChromium::removeStream):
+ (WebCore::RTCPeerConnectionHandlerChromium::getStats):
+ (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
+ (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
+ (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
+ (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
+ (WebCore::RTCPeerConnectionHandlerChromium::stop):
+ * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
+ (RTCPeerConnectionHandlerChromium):
+
2012-10-19 Zeno Albisser <[email protected]>
Temporarily disable use of QCocoaNativeInterface in GraphicsSurfaceMac.
Modified: trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp (131720 => 131721)
--- trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp 2012-10-18 09:48:06 UTC (rev 131720)
+++ trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp 2012-10-18 10:23:44 UTC (rev 131721)
@@ -64,155 +64,112 @@
PassOwnPtr<RTCPeerConnectionHandler> RTCPeerConnectionHandler::create(RTCPeerConnectionHandlerClient* client)
{
- return adoptPtr(new RTCPeerConnectionHandlerChromium(client));
+ ASSERT(client);
+ OwnPtr<RTCPeerConnectionHandlerChromium> handler = adoptPtr(new RTCPeerConnectionHandlerChromium(client));
+
+ if (!handler->createWebHandler())
+ return nullptr;
+
+ return handler.release();
}
RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium(RTCPeerConnectionHandlerClient* client)
: m_client(client)
{
- ASSERT(m_client);
- m_webHandler = adoptPtr(WebKit::Platform::current()->createRTCPeerConnectionHandler(this));
}
RTCPeerConnectionHandlerChromium::~RTCPeerConnectionHandlerChromium()
{
}
-bool RTCPeerConnectionHandlerChromium::initialize(PassRefPtr<RTCConfiguration> configuration, PassRefPtr<MediaConstraints> constraints)
+bool RTCPeerConnectionHandlerChromium::createWebHandler()
{
- if (!m_webHandler)
- return false;
+ m_webHandler = adoptPtr(WebKit::Platform::current()->createRTCPeerConnectionHandler(this));
+ return m_webHandler;
+}
+bool RTCPeerConnectionHandlerChromium::initialize(PassRefPtr<RTCConfiguration> configuration, PassRefPtr<MediaConstraints> constraints)
+{
return m_webHandler->initialize(configuration, constraints);
}
void RTCPeerConnectionHandlerChromium::createOffer(PassRefPtr<RTCSessionDescriptionRequest> request, PassRefPtr<MediaConstraints> constraints)
{
- // FIXME: Should the error callback be triggered here?
- if (!m_webHandler)
- return;
-
m_webHandler->createOffer(request, constraints);
}
void RTCPeerConnectionHandlerChromium::createAnswer(PassRefPtr<RTCSessionDescriptionRequest> request, PassRefPtr<MediaConstraints> constraints)
{
- // FIXME: Should the error callback be triggered here?
- if (!m_webHandler)
- return;
-
m_webHandler->createAnswer(request, constraints);
}
void RTCPeerConnectionHandlerChromium::setLocalDescription(PassRefPtr<RTCVoidRequest> request, PassRefPtr<RTCSessionDescriptionDescriptor> sessionDescription)
{
- if (!m_webHandler)
- return;
-
m_webHandler->setLocalDescription(request, sessionDescription);
}
void RTCPeerConnectionHandlerChromium::setRemoteDescription(PassRefPtr<RTCVoidRequest> request, PassRefPtr<RTCSessionDescriptionDescriptor> sessionDescription)
{
- if (!m_webHandler)
- return;
-
m_webHandler->setRemoteDescription(request, sessionDescription);
}
bool RTCPeerConnectionHandlerChromium::updateIce(PassRefPtr<RTCConfiguration> configuration, PassRefPtr<MediaConstraints> constraints)
{
- if (!m_webHandler)
- return false;
-
return m_webHandler->updateICE(configuration, constraints);
}
bool RTCPeerConnectionHandlerChromium::addIceCandidate(PassRefPtr<RTCIceCandidateDescriptor> iceCandidate)
{
- if (!m_webHandler)
- return false;
-
return m_webHandler->addICECandidate(iceCandidate);
}
PassRefPtr<RTCSessionDescriptionDescriptor> RTCPeerConnectionHandlerChromium::localDescription()
{
- if (!m_webHandler)
- return 0;
-
return m_webHandler->localDescription();
}
PassRefPtr<RTCSessionDescriptionDescriptor> RTCPeerConnectionHandlerChromium::remoteDescription()
{
- if (!m_webHandler)
- return 0;
-
return m_webHandler->remoteDescription();
}
bool RTCPeerConnectionHandlerChromium::addStream(PassRefPtr<MediaStreamDescriptor> mediaStream, PassRefPtr<MediaConstraints> constraints)
{
- if (!m_webHandler)
- return false;
-
return m_webHandler->addStream(mediaStream, constraints);
}
void RTCPeerConnectionHandlerChromium::removeStream(PassRefPtr<MediaStreamDescriptor> mediaStream)
{
- if (!m_webHandler)
- return;
-
m_webHandler->removeStream(mediaStream);
}
void RTCPeerConnectionHandlerChromium::getStats(PassRefPtr<RTCStatsRequest> request)
{
- if (!m_webHandler)
- return;
-
m_webHandler->getStats(request);
}
bool RTCPeerConnectionHandlerChromium::openDataChannel(PassRefPtr<RTCDataChannelDescriptor> dataChannel)
{
- if (!m_webHandler)
- return false;
-
return m_webHandler->openDataChannel(dataChannel);
}
bool RTCPeerConnectionHandlerChromium::sendStringData(PassRefPtr<RTCDataChannelDescriptor> dataChannel, const String& data)
{
- if (!m_webHandler)
- return false;
-
return m_webHandler->sendStringData(dataChannel, data);
}
bool RTCPeerConnectionHandlerChromium::sendRawData(PassRefPtr<RTCDataChannelDescriptor> dataChannel, const char* data, size_t dataLength)
{
- if (!m_webHandler)
- return false;
-
return m_webHandler->sendRawData(dataChannel, data, dataLength);
}
void RTCPeerConnectionHandlerChromium::closeDataChannel(PassRefPtr<RTCDataChannelDescriptor> dataChannel)
{
- if (!m_webHandler)
- return;
-
return m_webHandler->closeDataChannel(dataChannel);
}
void RTCPeerConnectionHandlerChromium::stop()
{
- if (!m_webHandler)
- return;
-
m_webHandler->stop();
}
Modified: trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h (131720 => 131721)
--- trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h 2012-10-18 09:48:06 UTC (rev 131720)
+++ trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h 2012-10-18 10:23:44 UTC (rev 131721)
@@ -52,6 +52,8 @@
explicit RTCPeerConnectionHandlerChromium(RTCPeerConnectionHandlerClient*);
virtual ~RTCPeerConnectionHandlerChromium();
+ bool createWebHandler();
+
virtual bool initialize(PassRefPtr<RTCConfiguration>, PassRefPtr<MediaConstraints>) OVERRIDE;
virtual void createOffer(PassRefPtr<RTCSessionDescriptionRequest>, PassRefPtr<MediaConstraints>) OVERRIDE;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes