[GPUP][GTK] compile GPUProcess in GTK port
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 29 Apr 2020 16:09:02 +0000 (16:09 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 29 Apr 2020 16:09:02 +0000 (16:09 +0000)
https://bugs.webkit.org/show_bug.cgi?id=208814

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-04-29
Reviewed by Don Olmstead.

Enable GPUProcess compilation in WebKitGTK as an experimental
feature

.:

* Source/cmake/OptionsGTK.cmake: sort alphabetically WebKit
options for GTK port and enable GPU_PROCESS if experimental
features option is enabled.

Source/WebKit:

No new tests required.

* GPUProcess/GPUConnectionToWebProcess.cpp: guard
UserMediaCaptureManagerProxy for Cocoa platform only.
(WebKit::GPUConnectionToWebProcess::dispatchMessage): guard
messages from UserMediaCaptureManagerProxy for Cocoa platform,
moving up this guard from video track messages.
(WebKit::GPUConnectionToWebProcess::mediaKeyStorageDirectory):
removed guard for this function of ENCRYPTED_MEDIA leaving only
LEGACY_ENCRYPTED_MEDIA, since it's were it is defined.
(WebKit::GPUConnectionToWebProcess::setOrientationForMediaCapture):
guard the content of this function for Cocoa platform, since it is
calling a UserMediaCaptureManagerProxy object.
* GPUProcess/GPUProcess.cpp: Replace the included header to match
with the used symbols in file.
* GPUProcess/gstreamer/GPUProcessGStreamer.cpp: Added.
(WebKit::GPUProcess::initializeProcess): Empty function.
(WebKit::GPUProcess::initializeProcessName): Empty function.
(WebKit::GPUProcess::initializeSandbox): Empty function.
* GPUProcess/gstreamer/GPUProcessMainGStreamer.cpp: Added.
(WebKit::initializeAuxiliaryProcess<GPUProcess>): New function.
(WebKit::GPUProcessMain): New function.
* GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp: changed guard
for this file from ENCRYPTED_MEDIA to LEGACY_ENCRYPTED_MEDIA to
match with its header file.
* GPUProcess/media/gstreamer/RemoteMediaPlayerProxyGStreamer.cpp: Added.
(WebKit::RemoteMediaPlayerProxy::prepareForPlayback):
New function that raises noImplemented()
(WebKit::RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable):
New function that raises noImplemented()
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingModeChanged):
New function that raises noImplemented()
(WebKit::RemoteMediaPlayerProxy::enterFullscreen): New function
that raises noImplemented()
(WebKit::RemoteMediaPlayerProxy::exitFullscreen): New function
that raises noImplemented()
* PlatformGTK.cmake: add Platform/generic header directory.
* SourcesGTK.txt: Add the new files and
GPUProcess/media/RemoteAudioDestinationManager.cpp
* WebProcess/GPU/GPUProcessConnection.cpp: guard
UserMediaCaptureManager for Cocoa platform only.
(WebKit::GPUProcessConnection::dispatchMessage): guard messages
from UserMediaCaptureManager for Cocoa platform, moving up this
guard applied also for video track.
* WebProcess/GPU/media/RemoteCDM.cpp: include missing header
GPUProcessConnection.h
* WebProcess/GPU/media/gstreamer/VideoLayerRemoteGStreamer.cpp: Added.
(WebKit::createVideoLayerRemote): New function
that raises noImplemented()

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

14 files changed:
ChangeLog
Source/WebKit/ChangeLog
Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
Source/WebKit/GPUProcess/GPUProcess.cpp
Source/WebKit/GPUProcess/gstreamer/GPUProcessGStreamer.cpp [new file with mode: 0644]
Source/WebKit/GPUProcess/gstreamer/GPUProcessMainGStreamer.cpp [new file with mode: 0644]
Source/WebKit/GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp
Source/WebKit/GPUProcess/media/gstreamer/RemoteMediaPlayerProxyGStreamer.cpp [new file with mode: 0644]
Source/WebKit/PlatformGTK.cmake
Source/WebKit/SourcesGTK.txt
Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp
Source/WebKit/WebProcess/GPU/media/RemoteCDM.cpp
Source/WebKit/WebProcess/GPU/media/gstreamer/VideoLayerRemoteGStreamer.cpp [new file with mode: 0644]
Source/cmake/OptionsGTK.cmake

index 42fb0e6..68fc93b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2020-04-29  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
+
+        [GPUP][GTK] compile GPUProcess in GTK port
+        https://bugs.webkit.org/show_bug.cgi?id=208814
+
+        Reviewed by Don Olmstead.
+
+        Enable GPUProcess compilation in WebKitGTK as an experimental
+        feature
+
+        * Source/cmake/OptionsGTK.cmake: sort alphabetically WebKit
+        options for GTK port and enable GPU_PROCESS if experimental
+        features option is enabled.
+
 2020-04-29  Sergio Villar Senin  <svillar@igalia.com>
 
         Add ccls config file to the list of ignored files
index 3a2f14e..82e662c 100644 (file)
@@ -1,3 +1,63 @@
+2020-04-29  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
+
+        [GPUP][GTK] compile GPUProcess in GTK port
+        https://bugs.webkit.org/show_bug.cgi?id=208814
+
+        Reviewed by Don Olmstead.
+
+        Enable GPUProcess compilation in WebKitGTK as an experimental
+        feature
+
+        No new tests required.
+
+        * GPUProcess/GPUConnectionToWebProcess.cpp: guard
+        UserMediaCaptureManagerProxy for Cocoa platform only.
+        (WebKit::GPUConnectionToWebProcess::dispatchMessage): guard
+        messages from UserMediaCaptureManagerProxy for Cocoa platform,
+        moving up this guard from video track messages.
+        (WebKit::GPUConnectionToWebProcess::mediaKeyStorageDirectory):
+        removed guard for this function of ENCRYPTED_MEDIA leaving only
+        LEGACY_ENCRYPTED_MEDIA, since it's were it is defined.
+        (WebKit::GPUConnectionToWebProcess::setOrientationForMediaCapture):
+        guard the content of this function for Cocoa platform, since it is
+        calling a UserMediaCaptureManagerProxy object.
+        * GPUProcess/GPUProcess.cpp: Replace the included header to match
+        with the used symbols in file.
+        * GPUProcess/gstreamer/GPUProcessGStreamer.cpp: Added.
+        (WebKit::GPUProcess::initializeProcess): Empty function.
+        (WebKit::GPUProcess::initializeProcessName): Empty function.
+        (WebKit::GPUProcess::initializeSandbox): Empty function.
+        * GPUProcess/gstreamer/GPUProcessMainGStreamer.cpp: Added.
+        (WebKit::initializeAuxiliaryProcess<GPUProcess>): New function.
+        (WebKit::GPUProcessMain): New function.
+        * GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp: changed guard
+        for this file from ENCRYPTED_MEDIA to LEGACY_ENCRYPTED_MEDIA to
+        match with its header file.
+        * GPUProcess/media/gstreamer/RemoteMediaPlayerProxyGStreamer.cpp: Added.
+        (WebKit::RemoteMediaPlayerProxy::prepareForPlayback):
+        New function that raises noImplemented()
+        (WebKit::RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable):
+        New function that raises noImplemented()
+        (WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingModeChanged):
+        New function that raises noImplemented()
+        (WebKit::RemoteMediaPlayerProxy::enterFullscreen): New function
+        that raises noImplemented()
+        (WebKit::RemoteMediaPlayerProxy::exitFullscreen): New function
+        that raises noImplemented()
+        * PlatformGTK.cmake: add Platform/generic header directory.
+        * SourcesGTK.txt: Add the new files and
+        GPUProcess/media/RemoteAudioDestinationManager.cpp
+        * WebProcess/GPU/GPUProcessConnection.cpp: guard
+        UserMediaCaptureManager for Cocoa platform only.
+        (WebKit::GPUProcessConnection::dispatchMessage): guard messages
+        from UserMediaCaptureManager for Cocoa platform, moving up this
+        guard applied also for video track.
+        * WebProcess/GPU/media/RemoteCDM.cpp: include missing header
+        GPUProcessConnection.h
+        * WebProcess/GPU/media/gstreamer/VideoLayerRemoteGStreamer.cpp: Added.
+        (WebKit::createVideoLayerRemote): New function
+        that raises noImplemented()
+
 2020-04-29  Claudio Saavedra  <csaavedra@igalia.com>
 
         [GTK4] Unreviewed compile-warning fixes
index 26f7380..dd9002f 100644 (file)
@@ -73,7 +73,9 @@
 #include "RemoteCDMProxyMessages.h"
 #endif
 
-#if ENABLE(MEDIA_STREAM)
+// FIXME: <https://bugs.webkit.org/show_bug.cgi?id=211085>
+// UserMediaCaptureManagerProxy should not be platform specific
+#if PLATFORM(COCOA) && ENABLE(MEDIA_STREAM)
 #include "UserMediaCaptureManagerProxy.h"
 #include "UserMediaCaptureManagerProxyMessages.h"
 #endif
@@ -364,7 +366,7 @@ bool GPUConnectionToWebProcess::dispatchMessage(IPC::Connection& connection, IPC
         remoteMediaResourceManager().didReceiveMessage(connection, decoder);
         return true;
     }
-#if ENABLE(MEDIA_STREAM)
+#if PLATFORM(COCOA) && ENABLE(MEDIA_STREAM)
     if (decoder.messageReceiverName() == Messages::UserMediaCaptureManagerProxy::messageReceiverName()) {
         userMediaCaptureManagerProxy().didReceiveMessageFromGPUProcess(connection, decoder);
         return true;
@@ -377,7 +379,7 @@ bool GPUConnectionToWebProcess::dispatchMessage(IPC::Connection& connection, IPC
         mediaRecorderManager().didReceiveRemoteMediaRecorderMessage(connection, decoder);
         return true;
     }
-#if PLATFORM(COCOA) && ENABLE(VIDEO_TRACK)
+#if ENABLE(VIDEO_TRACK)
     if (decoder.messageReceiverName() == Messages::RemoteAudioMediaStreamTrackRendererManager::messageReceiverName()) {
         audioTrackRendererManager().didReceiveMessageFromWebProcess(connection, decoder);
         return true;
@@ -497,7 +499,7 @@ const String& GPUConnectionToWebProcess::mediaCacheDirectory() const
     return m_gpuProcess->mediaCacheDirectory(m_sessionID);
 }
 
-#if ENABLE(ENCRYPTED_MEDIA) || ENABLE(LEGACY_ENCRYPTED_MEDIA)
+#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
 const String& GPUConnectionToWebProcess::mediaKeysStorageDirectory() const
 {
     return m_gpuProcess->mediaKeysStorageDirectory(m_sessionID);
@@ -507,7 +509,10 @@ const String& GPUConnectionToWebProcess::mediaKeysStorageDirectory() const
 #if ENABLE(MEDIA_STREAM)
 void GPUConnectionToWebProcess::setOrientationForMediaCapture(uint64_t orientation)
 {
+// FIXME: <https://bugs.webkit.org/show_bug.cgi?id=211085>
+#if PLATFORM(COCOA)
     userMediaCaptureManagerProxy().setOrientation(orientation);
+#endif
 }
 
 void GPUConnectionToWebProcess::updateCaptureAccess(bool allowAudioCapture, bool allowVideoCapture, bool allowDisplayCapture)
index 95076f2..230b62f 100644 (file)
@@ -56,7 +56,7 @@
 #endif
 
 #if ENABLE(MEDIA_STREAM)
-#include <WebCore/MockAudioSharedUnit.h>
+#include <WebCore/MockRealtimeMediaSourceCenter.h>
 #endif
 
 namespace WebKit {
diff --git a/Source/WebKit/GPUProcess/gstreamer/GPUProcessGStreamer.cpp b/Source/WebKit/GPUProcess/gstreamer/GPUProcessGStreamer.cpp
new file mode 100644 (file)
index 0000000..4f88929
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2020 Igalia S.L.
+ *
+ * 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 THE COPYRIGHT HOLDERS ``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.
+ */
+
+#include "config.h"
+#include "GPUProcess.h"
+
+#if ENABLE(GPU_PROCESS) && USE(GSTREAMER)
+
+#include "GPUProcessCreationParameters.h"
+
+namespace WebKit {
+
+void GPUProcess::initializeProcess(const AuxiliaryProcessInitializationParameters&)
+{
+}
+
+void GPUProcess::initializeProcessName(const AuxiliaryProcessInitializationParameters&)
+{
+}
+
+void GPUProcess::initializeSandbox(const AuxiliaryProcessInitializationParameters&, SandboxInitializationParameters&)
+{
+}
+
+} // namespace WebKit
+
+#endif // ENABLE(GPU_PROCESS)
+
diff --git a/Source/WebKit/GPUProcess/gstreamer/GPUProcessMainGStreamer.cpp b/Source/WebKit/GPUProcess/gstreamer/GPUProcessMainGStreamer.cpp
new file mode 100644 (file)
index 0000000..155ab6e
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2020 Igalia S.L.
+ *
+ * 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 THE COPYRIGHT HOLDERS ``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.
+ */
+
+#include "config.h"
+#include "GPUProcessMain.h"
+
+#if ENABLE(GPU_PROCESS) && USE(GSTREAMER)
+
+#include "AuxiliaryProcessMain.h"
+#include "GPUProcess.h"
+
+namespace WebKit {
+
+static RefPtr<GPUProcess> globalGPUProcess;
+
+class GPUProcessMainGStreamer final: public AuxiliaryProcessMainBase {
+public:
+    bool platformInitialize() override
+    {
+        return true;
+    }
+};
+
+template<>
+void initializeAuxiliaryProcess<GPUProcess>(AuxiliaryProcessInitializationParameters&& parameters)
+{
+    static NeverDestroyed<GPUProcess> gpuProcess(WTFMove(parameters));
+    globalGPUProcess = &gpuProcess.get();
+}
+
+int GPUProcessMain(int argc, char** argv)
+{
+    return AuxiliaryProcessMain<GPUProcess, GPUProcessMainGStreamer>(argc, argv);
+}
+
+} // namespace WebKit
+
+#endif // ENABLE(GPU_PROCESS)
index 012fe4d..f5d5083 100644 (file)
@@ -26,7 +26,7 @@
 #include "config.h"
 #include "RemoteLegacyCDMFactoryProxy.h"
 
-#if ENABLE(GPU_PROCESS) && ENABLE(ENCRYPTED_MEDIA)
+#if ENABLE(GPU_PROCESS) && ENABLE(LEGACY_ENCRYPTED_MEDIA)
 
 #include "RemoteLegacyCDMProxy.h"
 #include "RemoteLegacyCDMProxyMessages.h"
diff --git a/Source/WebKit/GPUProcess/media/gstreamer/RemoteMediaPlayerProxyGStreamer.cpp b/Source/WebKit/GPUProcess/media/gstreamer/RemoteMediaPlayerProxyGStreamer.cpp
new file mode 100644 (file)
index 0000000..9f0bfb8
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2020 Igalia S.L.
+ *
+ * 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 THE COPYRIGHT HOLDERS ``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.
+ */
+
+#include "config.h"
+#include "RemoteMediaPlayerProxy.h"
+
+#if ENABLE(GPU_PROCESS) && USE(GSTREAMER)
+
+#include "LayerHostingContext.h"
+#include <WebCore/NotImplemented.h>
+
+namespace WebKit {
+
+void RemoteMediaPlayerProxy::prepareForPlayback(bool, WebCore::MediaPlayerEnums::Preload, bool, bool, float videoContentScale, CompletionHandler<void(Optional<LayerHostingContextID>&& inlineLayerHostingContextId, Optional<LayerHostingContextID>&& fullscreenLayerHostingContextId)>&&)
+{
+    notImplemented();
+}
+
+void RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable()
+{
+    notImplemented();
+}
+
+void RemoteMediaPlayerProxy::mediaPlayerRenderingModeChanged()
+{
+    notImplemented();
+}
+
+#if ENABLE(VIDEO_PRESENTATION_MODE)
+void RemoteMediaPlayerProxy::enterFullscreen(CompletionHandler<void()>&& completionHandler)
+{
+    notImplemented();
+}
+
+void RemoteMediaPlayerProxy::exitFullscreen(CompletionHandler<void()>&& completionHandler)
+{
+    notImplemented();
+}
+#endif
+
+} // namespace WebKit
+
+
+#endif // ENABLE(GPU_PROCESS)
index 9631b99..c083f32 100644 (file)
@@ -397,6 +397,7 @@ list(APPEND WebKit_INCLUDE_DIRECTORIES
     "${WEBKIT_DIR}/Platform/IPC/glib"
     "${WEBKIT_DIR}/Platform/IPC/unix"
     "${WEBKIT_DIR}/Platform/classifier"
+    "${WEBKIT_DIR}/Platform/generic"
     "${WEBKIT_DIR}/Shared/API/c/gtk"
     "${WEBKIT_DIR}/Shared/API/glib"
     "${WEBKIT_DIR}/Shared/CoordinatedGraphics"
index 5648b7f..3fbcb41 100644 (file)
 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 // THE POSSIBILITY OF SUCH DAMAGE.
 
+GPUProcess/gstreamer/GPUProcessGStreamer.cpp
+GPUProcess/gstreamer/GPUProcessMainGStreamer.cpp
+
+GPUProcess/media/RemoteAudioDestinationManager.cpp
+
+GPUProcess/media/gstreamer/RemoteMediaPlayerProxyGStreamer.cpp
+
 NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp
 NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.cpp
 
@@ -267,6 +274,8 @@ UIProcess/gtk/WebPreferencesGtk.cpp
 UIProcess/soup/WebCookieManagerProxySoup.cpp
 UIProcess/soup/WebProcessPoolSoup.cpp
 
+WebProcess/GPU/media/gstreamer/VideoLayerRemoteGStreamer.cpp
+
 WebProcess/InjectedBundle/API/glib/DOM/DOMObjectCache.cpp @no-unify
 WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMDocument.cpp @no-unify
 WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMElement.cpp @no-unify
index dd85d17..dbe5819 100644 (file)
@@ -50,7 +50,7 @@
 #include "RemoteCDMInstanceSessionMessages.h"
 #endif
 
-#if ENABLE(MEDIA_STREAM)
+#if PLATFORM(COCOA) && ENABLE(MEDIA_STREAM)
 #include "UserMediaCaptureManager.h"
 #include "UserMediaCaptureManagerMessages.h"
 #endif
@@ -112,19 +112,19 @@ bool GPUProcessConnection::dispatchMessage(IPC::Connection& connection, IPC::Dec
         return true;
     }
 
-#if ENABLE(MEDIA_STREAM)
+#if PLATFORM(COCOA) && ENABLE(MEDIA_STREAM)
     if (decoder.messageReceiverName() == Messages::UserMediaCaptureManager::messageReceiverName()) {
         if (auto* captureManager = WebProcess::singleton().supplement<UserMediaCaptureManager>())
             captureManager->didReceiveMessageFromGPUProcess(connection, decoder);
         return true;
     }
-#if PLATFORM(COCOA) && ENABLE(VIDEO_TRACK)
+#if ENABLE(VIDEO_TRACK)
     if (decoder.messageReceiverName() == Messages::SampleBufferDisplayLayer::messageReceiverName()) {
         sampleBufferDisplayLayerManager().didReceiveLayerMessage(connection, decoder);
         return true;
     }
-#endif // PLATFORM(COCOA) && ENABLE(VIDEO_TRACK)
-#endif // ENABLE(MEDIA_STREAM)
+#endif // ENABLE(VIDEO_TRACK)
+#endif // PLATFORM(COCOA) && ENABLE(MEDIA_STREAM)
 #if USE(LIBWEBRTC) && PLATFORM(COCOA)
     if (decoder.messageReceiverName() == Messages::LibWebRTCCodecs::messageReceiverName()) {
         WebProcess::singleton().libWebRTCCodecs().didReceiveMessage(connection, decoder);
index 0c91b40..49fd38d 100644 (file)
@@ -29,6 +29,7 @@
 #if ENABLE(GPU_PROCESS) && ENABLE(ENCRYPTED_MEDIA)
 
 #include "DataReference.h"
+#include "GPUProcessConnection.h"
 #include "RemoteCDMInstance.h"
 #include "RemoteCDMInstanceConfiguration.h"
 #include "RemoteCDMInstanceIdentifier.h"
diff --git a/Source/WebKit/WebProcess/GPU/media/gstreamer/VideoLayerRemoteGStreamer.cpp b/Source/WebKit/WebProcess/GPU/media/gstreamer/VideoLayerRemoteGStreamer.cpp
new file mode 100644 (file)
index 0000000..363c3c4
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2020 Igalia S.L.
+ *
+ * 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 THE COPYRIGHT HOLDERS ``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.
+ */
+
+#include "config.h"
+#include "VideoLayerRemote.h"
+
+#if ENABLE(GPU_PROCESS)
+
+#include <WebCore/NotImplemented.h>
+#include <WebCore/PlatformLayer.h>
+
+#if USE(NICOSIA)
+#include <WebCore/NicosiaPlatformLayer.h>
+#elif USE(COORDINATED_GRAPHICS)
+#include <WebCore/TextureMapperPlatformLayerProxyProvider.h>
+#elif USE(TEXTURE_MAPPER)
+#include <WebCore/TextureMapperPlatformLayer.h>
+#endif
+
+namespace WebKit {
+
+PlatformLayerContainer createVideoLayerRemote(MediaPlayerPrivateRemote* mediaPlayerPrivateRemote, LayerHostingContextID contextId)
+{
+    notImplemented();
+    return nullptr;
+}
+
+}
+
+#endif
index de411c9..03b8303 100644 (file)
@@ -168,12 +168,16 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBDRIVER PUBLIC ON)
 # Changing these options is completely unsupported.
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_AUTOCAPITALIZE PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CONTENT_EXTENSIONS PRIVATE ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_CONIC_GRADIENTS PRIVATE ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_PAINTING_API PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_TYPED_OM PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CURSOR_VISIBILITY PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DARK_MODE_CSS PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DATALIST_ELEMENT PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DOWNLOAD_ATTRIBUTE PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ENCRYPTED_MEDIA PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTPDIR PRIVATE OFF)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GPU_PROCESS PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LAYOUT_FORMATTING_CONTEXT PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_STREAM PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
@@ -182,13 +186,10 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MOUSE_CURSOR_SCALE PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_CACHE_SPECULATIVE_REVALIDATION PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_OFFSCREEN_CANVAS PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_POINTER_LOCK PRIVATE ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_LOAD_STATISTICS PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SERVICE_WORKER PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHAREABLE_RESOURCE PUBLIC ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_RTC PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_PAINTING_API PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_TYPED_OM PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_CONIC_GRADIENTS PRIVATE ON)
-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_LOAD_STATISTICS PRIVATE ON)
 
 if (USE_GTK4)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETSCAPE_PLUGIN_API PRIVATE OFF)