Diff
Modified: trunk/LayoutTests/ChangeLog (215238 => 215239)
--- trunk/LayoutTests/ChangeLog 2017-04-11 17:06:53 UTC (rev 215238)
+++ trunk/LayoutTests/ChangeLog 2017-04-11 17:27:10 UTC (rev 215239)
@@ -1,5 +1,14 @@
2017-04-11 Youenn Fablet <[email protected]>
+ Activate WebRTC data channel tests for WK1
+ https://bugs.webkit.org/show_bug.cgi?id=170710
+
+ Reviewed by Eric Carlson.
+
+ * platform/mac-wk1/TestExpectations:
+
+2017-04-11 Youenn Fablet <[email protected]>
+
MediaStream id should be equal to msid
https://bugs.webkit.org/show_bug.cgi?id=170712
Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (215238 => 215239)
--- trunk/LayoutTests/platform/mac-wk1/TestExpectations 2017-04-11 17:06:53 UTC (rev 215238)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations 2017-04-11 17:27:10 UTC (rev 215239)
@@ -97,6 +97,8 @@
# Skip WebRTC for now in WK1
imported/w3c/web-platform-tests/webrtc [ Skip ]
webrtc [ Skip ]
+webrtc/datachannel [ Pass ]
+webrtc/datachannel/bufferedAmountLowThreshold.html [ Failure ]
# These tests test the Shadow DOM based HTML form validation UI but Mac WK1 is using native dialogs instead.
fast/forms/validation-message-on-listbox.html
Modified: trunk/Source/WebCore/ChangeLog (215238 => 215239)
--- trunk/Source/WebCore/ChangeLog 2017-04-11 17:06:53 UTC (rev 215238)
+++ trunk/Source/WebCore/ChangeLog 2017-04-11 17:27:10 UTC (rev 215239)
@@ -1,5 +1,30 @@
2017-04-11 Youenn Fablet <[email protected]>
+ Activate WebRTC data channel tests for WK1
+ https://bugs.webkit.org/show_bug.cgi?id=170710
+
+ Reviewed by Eric Carlson.
+
+ Covered by existing and activated tests.
+
+ Making LibWebRTCProvider::factory not static.
+ For that purpose LibWebRTCMediaEndpoint now stores its peer connection factory reference.
+ Making LibWebRTCProvider use libebrtc networking by default.
+
+ Removing some no longer needed checks related to libwebrtc availability.
+
+ * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
+ (WebCore::LibWebRTCMediaEndpoint::LibWebRTCMediaEndpoint):
+ (WebCore::LibWebRTCMediaEndpoint::addTrack):
+ (WebCore::LibWebRTCMediaEndpoint::doCreateOffer):
+ (WebCore::LibWebRTCMediaEndpoint::doCreateAnswer):
+ * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
+ * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
+ (WebCore::LibWebRTCProvider::factory):
+ * platform/mediastream/libwebrtc/LibWebRTCProvider.h:
+
+2017-04-11 Youenn Fablet <[email protected]>
+
MediaStream id should be equal to msid
https://bugs.webkit.org/show_bug.cgi?id=170712
Modified: trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp (215238 => 215239)
--- trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp 2017-04-11 17:06:53 UTC (rev 215238)
+++ trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp 2017-04-11 17:27:10 UTC (rev 215239)
@@ -57,6 +57,7 @@
LibWebRTCMediaEndpoint::LibWebRTCMediaEndpoint(LibWebRTCPeerConnectionBackend& peerConnection, LibWebRTCProvider& client)
: m_peerConnectionBackend(peerConnection)
+ , m_peerConnectionFactory(*client.factory())
, m_backend(client.createPeerConnection(*this))
, m_createSessionDescriptionObserver(*this)
, m_setLocalSessionDescriptionObserver(*this)
@@ -63,6 +64,7 @@
, m_setRemoteSessionDescriptionObserver(*this)
{
ASSERT(m_backend);
+ ASSERT(client.factory());
}
// FIXME: unify with MediaEndpointSessionDescription::typeString()
@@ -162,14 +164,11 @@
void LibWebRTCMediaEndpoint::addTrack(RTCRtpSender& sender, MediaStreamTrack& track, const Vector<String>& mediaStreamIds)
{
- if (!LibWebRTCProvider::factory())
- return;
-
std::vector<webrtc::MediaStreamInterface*> mediaStreams;
rtc::scoped_refptr<webrtc::MediaStreamInterface> mediaStream = nullptr;
if (mediaStreamIds.size()) {
// libwebrtc is only using the first one if any.
- mediaStream = LibWebRTCProvider::factory()->CreateLocalMediaStream(mediaStreamIds[0].utf8().data());
+ mediaStream = m_peerConnectionFactory.CreateLocalMediaStream(mediaStreamIds[0].utf8().data());
mediaStreams.push_back(mediaStream.get());
}
@@ -177,7 +176,7 @@
switch (source.type()) {
case RealtimeMediaSource::Type::Audio: {
auto trackSource = RealtimeOutgoingAudioSource::create(source);
- auto audioTrack = LibWebRTCProvider::factory()->CreateAudioTrack(track.id().utf8().data(), trackSource.ptr());
+ auto audioTrack = m_peerConnectionFactory.CreateAudioTrack(track.id().utf8().data(), trackSource.ptr());
m_peerConnectionBackend.addAudioSource(WTFMove(trackSource));
m_senders.add(&sender, m_backend->AddTrack(audioTrack.get(), WTFMove(mediaStreams)));
return;
@@ -184,7 +183,7 @@
}
case RealtimeMediaSource::Type::Video: {
auto videoSource = RealtimeOutgoingVideoSource::create(source);
- auto videoTrack = LibWebRTCProvider::factory()->CreateVideoTrack(track.id().utf8().data(), videoSource.ptr());
+ auto videoTrack = m_peerConnectionFactory.CreateVideoTrack(track.id().utf8().data(), videoSource.ptr());
m_peerConnectionBackend.addVideoSource(WTFMove(videoSource));
m_senders.add(&sender, m_backend->AddTrack(videoTrack.get(), WTFMove(mediaStreams)));
return;
@@ -196,11 +195,6 @@
void LibWebRTCMediaEndpoint::doCreateOffer()
{
- if (!LibWebRTCProvider::factory()) {
- m_peerConnectionBackend.createOfferFailed(Exception { NOT_SUPPORTED_ERR, ASCIILiteral("libwebrtc backend is missing.") });
- return;
- }
-
m_isInitiator = true;
m_backend->CreateOffer(&m_createSessionDescriptionObserver, nullptr);
}
@@ -207,11 +201,6 @@
void LibWebRTCMediaEndpoint::doCreateAnswer()
{
- if (!LibWebRTCProvider::factory()) {
- m_peerConnectionBackend.createAnswerFailed(Exception { NOT_SUPPORTED_ERR, ASCIILiteral("libwebrtc backend is missing.") });
- return;
- }
-
m_isInitiator = false;
m_backend->CreateAnswer(&m_createSessionDescriptionObserver, nullptr);
}
Modified: trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h (215238 => 215239)
--- trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h 2017-04-11 17:06:53 UTC (rev 215238)
+++ trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h 2017-04-11 17:27:10 UTC (rev 215239)
@@ -171,6 +171,7 @@
};
LibWebRTCPeerConnectionBackend& m_peerConnectionBackend;
+ webrtc::PeerConnectionFactoryInterface& m_peerConnectionFactory;
rtc::scoped_refptr<webrtc::PeerConnectionInterface> m_backend;
CreateSessionDescriptionObserver m_createSessionDescriptionObserver;
Modified: trunk/Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.cpp (215238 => 215239)
--- trunk/Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.cpp 2017-04-11 17:06:53 UTC (rev 215238)
+++ trunk/Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.cpp 2017-04-11 17:27:10 UTC (rev 215239)
@@ -131,8 +131,10 @@
{
if (!webRTCAvailable())
return nullptr;
- if (!staticFactoryAndThreads().factory)
+ if (!staticFactoryAndThreads().factory) {
+ staticFactoryAndThreads().networkThreadWithSocketServer = m_useNetworkThreadWithSocketServer;
initializePeerConnectionFactoryAndThreads();
+ }
return staticFactoryAndThreads().factory;
}
Modified: trunk/Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.h (215238 => 215239)
--- trunk/Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.h 2017-04-11 17:06:53 UTC (rev 215238)
+++ trunk/Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.h 2017-04-11 17:27:10 UTC (rev 215239)
@@ -54,10 +54,11 @@
#if USE(LIBWEBRTC)
WEBCORE_EXPORT virtual rtc::scoped_refptr<webrtc::PeerConnectionInterface> createPeerConnection(webrtc::PeerConnectionObserver&);
+ WEBCORE_EXPORT webrtc::PeerConnectionFactoryInterface* factory();
+
// FIXME: Make these methods not static.
static WEBCORE_EXPORT void callOnWebRTCNetworkThread(Function<void()>&&);
static WEBCORE_EXPORT void callOnWebRTCSignalingThread(Function<void()>&&);
- static WEBCORE_EXPORT webrtc::PeerConnectionFactoryInterface* factory();
static WEBCORE_EXPORT void setDecoderFactoryGetter(Function<std::unique_ptr<cricket::WebRtcVideoDecoderFactory>()>&&);
static WEBCORE_EXPORT void setEncoderFactoryGetter(Function<std::unique_ptr<cricket::WebRtcVideoEncoderFactory>()>&&);
@@ -71,6 +72,7 @@
WEBCORE_EXPORT rtc::scoped_refptr<webrtc::PeerConnectionInterface> createPeerConnection(webrtc::PeerConnectionObserver&, rtc::NetworkManager&, rtc::PacketSocketFactory&);
bool m_enableEnumeratingAllNetworkInterfaces { false };
+ bool m_useNetworkThreadWithSocketServer { true };
#endif
};
Modified: trunk/Source/WebKit2/ChangeLog (215238 => 215239)
--- trunk/Source/WebKit2/ChangeLog 2017-04-11 17:06:53 UTC (rev 215238)
+++ trunk/Source/WebKit2/ChangeLog 2017-04-11 17:27:10 UTC (rev 215239)
@@ -1,3 +1,12 @@
+2017-04-11 Youenn Fablet <[email protected]>
+
+ Activate WebRTC data channel tests for WK1
+ https://bugs.webkit.org/show_bug.cgi?id=170710
+
+ Reviewed by Eric Carlson.
+
+ * WebProcess/Network/webrtc/LibWebRTCProvider.h: Making sure networking is not done in the Web process.
+
2017-04-11 Chris Fleizach <[email protected]>
AX: PDF plugin needs to support PDF-DOM Mode
Modified: trunk/Source/WebKit2/WebProcess/Network/webrtc/LibWebRTCProvider.h (215238 => 215239)
--- trunk/Source/WebKit2/WebProcess/Network/webrtc/LibWebRTCProvider.h 2017-04-11 17:06:53 UTC (rev 215238)
+++ trunk/Source/WebKit2/WebProcess/Network/webrtc/LibWebRTCProvider.h 2017-04-11 17:27:10 UTC (rev 215239)
@@ -33,7 +33,7 @@
#if USE(LIBWEBRTC)
class LibWebRTCProvider final : public WebCore::LibWebRTCProvider {
public:
- LibWebRTCProvider() = default;
+ LibWebRTCProvider() { m_useNetworkThreadWithSocketServer = false; }
private:
rtc::scoped_refptr<webrtc::PeerConnectionInterface> createPeerConnection(webrtc::PeerConnectionObserver&) final;