Make LibWebRTCProvider port agnostic again after r215424
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 1 Mar 2018 13:27:23 +0000 (13:27 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 1 Mar 2018 13:27:23 +0000 (13:27 +0000)
https://bugs.webkit.org/show_bug.cgi?id=183080

Patch by Alejandro G. Castro <alex@igalia.com> on 2018-03-01
Reviewed by Youenn Fablet.

In the r215424 commit the webRTCAvailable function started to use a function from the DARWIN platform,
we have moved that code to the cocoa class and created a glib implementation that will be used in the future
to implement the LibWebRTCProviderGlib class.

No new tests, this is a refactor.

* Sources.txt: Add the compilation of the new file.
* platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: Remove the webRTCAvailable function from this file.
(WebCore::LibWebRTCProvider::create): We want to use this even when LIBWEBRTC is not used.
* platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
(WebCore::LibWebRTCProvider::webRTCAvailable): Moved the code from the LibWebRTCProvider class.
* platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp:
(WebCore::LibWebRTCProvider::webRTCAvailable): Add the glib implementation, basically true, we are always
linking libwebrtc for the moment in these situations.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@229130 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/SourcesGTK.txt
Source/WebCore/SourcesWPE.txt
Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.cpp
Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp
Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp [new file with mode: 0644]

index 3b72c41..0d3a652 100644 (file)
@@ -1,3 +1,25 @@
+2018-03-01  Alejandro G. Castro  <alex@igalia.com>
+
+        Make LibWebRTCProvider port agnostic again after r215424
+        https://bugs.webkit.org/show_bug.cgi?id=183080
+
+        Reviewed by Youenn Fablet.
+
+        In the r215424 commit the webRTCAvailable function started to use a function from the DARWIN platform,
+        we have moved that code to the cocoa class and created a glib implementation that will be used in the future
+        to implement the LibWebRTCProviderGlib class.
+
+        No new tests, this is a refactor.
+
+        * Sources.txt: Add the compilation of the new file.
+        * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: Remove the webRTCAvailable function from this file.
+        (WebCore::LibWebRTCProvider::create): We want to use this even when LIBWEBRTC is not used.
+        * platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
+        (WebCore::LibWebRTCProvider::webRTCAvailable): Moved the code from the LibWebRTCProvider class.
+        * platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp:
+        (WebCore::LibWebRTCProvider::webRTCAvailable): Add the glib implementation, basically true, we are always
+        linking libwebrtc for the moment in these situations.
+
 2018-03-01  Carlos Garcia Campos  <cgarcia@igalia.com>
 
         [FreeType] Color emojis in WebKitGTK+ for great justice
index 2fdb6c4..67e5083 100644 (file)
@@ -81,6 +81,8 @@ platform/gtk/PasteboardGtk.cpp
 platform/gtk/ScrollAnimatorGtk.cpp
 platform/gtk/SelectionData.cpp
 
+platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp
+
 platform/text/Hyphenation.cpp
 platform/text/LocaleICU.cpp
 
index 604675c..4c479b0 100644 (file)
@@ -56,6 +56,8 @@ platform/graphics/wpe/IconWPE.cpp
 platform/graphics/wpe/ImageWPE.cpp
 platform/graphics/wpe/PlatformDisplayWPE.cpp
 
+platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp
+
 platform/text/Hyphenation.cpp
 platform/text/LocaleICU.cpp
 
index e8b9600..efbd666 100644 (file)
 #include "config.h"
 #include "LibWebRTCProvider.h"
 
-#if PLATFORM(COCOA)
-#include "LibWebRTCProviderCocoa.h"
-#endif
-
 #if USE(LIBWEBRTC)
 #include "LibWebRTCAudioModule.h"
 #include "Logging.h"
-#include "VideoToolBoxDecoderFactory.h"
-#include "VideoToolBoxEncoderFactory.h"
 #include <dlfcn.h>
 #include <webrtc/api/peerconnectionfactoryproxy.h>
 #include <webrtc/base/physicalsocketserver.h>
 #include <webrtc/pc/peerconnectionfactory.h>
 #include <wtf/Function.h>
 #include <wtf/NeverDestroyed.h>
-#include <wtf/darwin/WeakLinking.h>
 #endif
 
 namespace WebCore {
 
-UniqueRef<LibWebRTCProvider> LibWebRTCProvider::create()
-{
-#if USE(LIBWEBRTC) && PLATFORM(COCOA)
-    return makeUniqueRef<LibWebRTCProviderCocoa>();
-#else
-    return makeUniqueRef<LibWebRTCProvider>();
-#endif
-}
-
 #if USE(LIBWEBRTC)
 struct PeerConnectionFactoryAndThreads : public rtc::MessageHandler {
     std::unique_ptr<rtc::Thread> networkThread;
@@ -200,13 +184,4 @@ rtc::scoped_refptr<webrtc::PeerConnectionInterface> LibWebRTCProvider::createPee
 
 #endif // USE(LIBWEBRTC)
 
-bool LibWebRTCProvider::webRTCAvailable()
-{
-#if USE(LIBWEBRTC)
-    return !isNullFunctionPointer(rtc::LogMessage::LogToDebug);
-#else
-    return true;
-#endif
-}
-
 } // namespace WebCore
index 6795a30..cbb3d8f 100644 (file)
 #include "LibWebRTCProviderCocoa.h"
 
 #if USE(LIBWEBRTC)
-
 #include "VideoToolBoxDecoderFactory.h"
 #include "VideoToolBoxEncoderFactory.h"
+#include <wtf/darwin/WeakLinking.h>
+#endif
 
 namespace WebCore {
 
+UniqueRef<LibWebRTCProvider> LibWebRTCProvider::create()
+{
+#if USE(LIBWEBRTC) && PLATFORM(COCOA)
+    return makeUniqueRef<LibWebRTCProviderCocoa>();
+#else
+    return makeUniqueRef<LibWebRTCProvider>();
+#endif
+}
+
+#if USE(LIBWEBRTC)
+
 std::unique_ptr<cricket::WebRtcVideoDecoderFactory> LibWebRTCProviderCocoa::createDecoderFactory()
 {
     ASSERT(!m_decoderFactory);
@@ -59,6 +71,15 @@ void LibWebRTCProviderCocoa::setActive(bool value)
         m_encoderFactory->setActive(value);
 }
 
-} // namespace WebCore
+#endif // USE(LIBWEBRTC)
 
+bool LibWebRTCProvider::webRTCAvailable()
+{
+#if USE(LIBWEBRTC)
+    return !isNullFunctionPointer(rtc::LogMessage::LogToDebug);
+#else
+    return true;
 #endif
+}
+
+} // namespace WebCore
diff --git a/Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp b/Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp
new file mode 100644 (file)
index 0000000..8b3ee91
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2017 Igalia S.L. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+namespace WebCore {
+
+UniqueRef<LibWebRTCProvider> LibWebRTCProvider::create()
+{
+#if USE(LIBWEBRTC) && (PLATFORM(GTK) || PLATFORM(WPE))
+    return makeUniqueRef<LibWebRTCProviderGlib>();
+#else
+    return makeUniqueRef<LibWebRTCProvider>();
+#endif
+}
+
+bool LibWebRTCProvider::webRTCAvailable()
+{
+    return true;
+}
+
+} // namespace WebCore