Update to 2.41.91
This commit is contained in:
parent
4b92cd6fc1
commit
11e3dc7d2f
2
.gitignore
vendored
2
.gitignore
vendored
@ -21,3 +21,5 @@
|
|||||||
/webkitgtk-2.41.4.tar.xz.asc
|
/webkitgtk-2.41.4.tar.xz.asc
|
||||||
/webkitgtk-2.41.5.tar.xz.asc
|
/webkitgtk-2.41.5.tar.xz.asc
|
||||||
/webkitgtk-2.41.6.tar.xz.asc
|
/webkitgtk-2.41.6.tar.xz.asc
|
||||||
|
/webkitgtk-2.41.90.tar.xz.asc
|
||||||
|
/webkitgtk-2.41.91.tar.xz.asc
|
||||||
|
358
15929.patch
358
15929.patch
@ -1,358 +0,0 @@
|
|||||||
From d6459980ac8a200f46efd4d0668efdb17a9bf951 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Carlos Garcia Campos <cgarcia@igalia.com>
|
|
||||||
Date: Wed, 19 Jul 2023 14:00:45 +0200
|
|
||||||
Subject: [PATCH] REGRESSION(2.41.6): [GTK] Yelp help viewer and Epiphany
|
|
||||||
browser do not show content on a virtual machine (llvmpipe?) with WebKitGTK
|
|
||||||
2.41.6 https://bugs.webkit.org/show_bug.cgi?id=259320
|
|
||||||
|
|
||||||
Reviewed by NOBODY (OOPS!).
|
|
||||||
|
|
||||||
The problem is that for some reason the surfaceless platform is claiming
|
|
||||||
to support EGL_MESA_image_dma_buf_export with llvmpipe driver, while the
|
|
||||||
display in the UI process doesn't support EGL_EXT_image_dma_buf_import
|
|
||||||
with llvmpipe as expected. So, we end up exporting DMABuf buffers (or
|
|
||||||
trying) that the UI process can't handle. We should always pass to the
|
|
||||||
web process the buffers supported by the UI process (hardware or shared
|
|
||||||
memory) and ensure we only export buffers supported by the UI process.
|
|
||||||
|
|
||||||
* Source/WebKit/Shared/WebProcessCreationParameters.h:
|
|
||||||
* Source/WebKit/Shared/WebProcessCreationParameters.serialization.in:
|
|
||||||
* Source/WebKit/Shared/glib/DMABufRendererBufferMode.h: Added.
|
|
||||||
* Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp:
|
|
||||||
(WebKit::dmabufRendererWithSupportedBuffers):
|
|
||||||
(WebKit::WebKitProtocolHandler::handleGPU):
|
|
||||||
* Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp:
|
|
||||||
(WebKit::WebProcessPool::platformInitializeWebProcess):
|
|
||||||
* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp:
|
|
||||||
(WebKit::AcceleratedBackingStoreDMABuf::rendererBufferMode):
|
|
||||||
(WebKit::AcceleratedBackingStoreDMABuf::checkRequirements):
|
|
||||||
* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h:
|
|
||||||
* Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp:
|
|
||||||
(WebKit::AcceleratedSurfaceDMABuf::clientResize):
|
|
||||||
* Source/WebKit/WebProcess/WebProcess.h:
|
|
||||||
(WebKit::WebProcess::dmaBufRendererBufferMode const):
|
|
||||||
* Source/WebKit/WebProcess/glib/WebProcessGLib.cpp:
|
|
||||||
(WebKit::WebProcess::platformInitializeWebProcess):
|
|
||||||
---
|
|
||||||
.../Shared/WebProcessCreationParameters.h | 3 +-
|
|
||||||
...ProcessCreationParameters.serialization.in | 2 +-
|
|
||||||
.../Shared/glib/DMABufRendererBufferMode.h | 49 +++++++++++++++++++
|
|
||||||
.../API/glib/WebKitProtocolHandler.cpp | 23 ++++++++-
|
|
||||||
.../UIProcess/glib/WebProcessPoolGLib.cpp | 4 +-
|
|
||||||
.../gtk/AcceleratedBackingStoreDMABuf.cpp | 26 +++++++---
|
|
||||||
.../gtk/AcceleratedBackingStoreDMABuf.h | 3 ++
|
|
||||||
.../WebPage/gtk/AcceleratedSurfaceDMABuf.cpp | 2 +-
|
|
||||||
Source/WebKit/WebProcess/WebProcess.h | 7 ++-
|
|
||||||
.../WebKit/WebProcess/glib/WebProcessGLib.cpp | 15 +++---
|
|
||||||
10 files changed, 112 insertions(+), 22 deletions(-)
|
|
||||||
create mode 100644 Source/WebKit/Shared/glib/DMABufRendererBufferMode.h
|
|
||||||
|
|
||||||
diff --git a/Source/WebKit/Shared/WebProcessCreationParameters.h b/Source/WebKit/Shared/WebProcessCreationParameters.h
|
|
||||||
index cd6a3ffdd9f39..4544644d34ec4 100644
|
|
||||||
--- a/Source/WebKit/Shared/WebProcessCreationParameters.h
|
|
||||||
+++ b/Source/WebKit/Shared/WebProcessCreationParameters.h
|
|
||||||
@@ -57,6 +57,7 @@
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if PLATFORM(GTK)
|
|
||||||
+#include "DMABufRendererBufferMode.h"
|
|
||||||
#include "GtkSettingsState.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
@@ -219,7 +220,7 @@ struct WebProcessCreationParameters {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if PLATFORM(GTK)
|
|
||||||
- bool useDMABufSurfaceForCompositing { false };
|
|
||||||
+ OptionSet<DMABufRendererBufferMode> dmaBufRendererBufferMode;
|
|
||||||
bool useSystemAppearanceForScrollbars { false };
|
|
||||||
GtkSettingsState gtkSettings;
|
|
||||||
#endif
|
|
||||||
diff --git a/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in b/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in
|
|
||||||
index 5716042447a78..99db37e67b4a5 100644
|
|
||||||
--- a/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in
|
|
||||||
+++ b/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in
|
|
||||||
@@ -173,7 +173,7 @@ struct WebKit::WebProcessCreationParameters {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if PLATFORM(GTK)
|
|
||||||
- bool useDMABufSurfaceForCompositing;
|
|
||||||
+ OptionSet<WebKit::DMABufRendererBufferMode> dmaBufRendererBufferMode;
|
|
||||||
bool useSystemAppearanceForScrollbars;
|
|
||||||
WebKit::GtkSettingsState gtkSettings;
|
|
||||||
#endif
|
|
||||||
diff --git a/Source/WebKit/Shared/glib/DMABufRendererBufferMode.h b/Source/WebKit/Shared/glib/DMABufRendererBufferMode.h
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000000..5cc9ef29de52f
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/Source/WebKit/Shared/glib/DMABufRendererBufferMode.h
|
|
||||||
@@ -0,0 +1,49 @@
|
|
||||||
+/*
|
|
||||||
+ * Copyright (C) 2023 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 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.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#pragma once
|
|
||||||
+
|
|
||||||
+#include <wtf/EnumTraits.h>
|
|
||||||
+
|
|
||||||
+namespace WebKit {
|
|
||||||
+
|
|
||||||
+enum class DMABufRendererBufferMode : uint8_t {
|
|
||||||
+ Hardware = 1 << 0,
|
|
||||||
+ SharedMemory = 1 << 1
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+} // namespace WebKit
|
|
||||||
+
|
|
||||||
+namespace WTF {
|
|
||||||
+
|
|
||||||
+template<> struct EnumTraits<WebKit::DMABufRendererBufferMode> {
|
|
||||||
+ using values = EnumValues<
|
|
||||||
+ WebKit::DMABufRendererBufferMode,
|
|
||||||
+ WebKit::DMABufRendererBufferMode::Hardware,
|
|
||||||
+ WebKit::DMABufRendererBufferMode::SharedMemory
|
|
||||||
+ >;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+} // namespace WTF
|
|
||||||
diff --git a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp
|
|
||||||
index 1a89c19966022..8bdcf48b446ab 100644
|
|
||||||
--- a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp
|
|
||||||
+++ b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp
|
|
||||||
@@ -46,6 +46,7 @@
|
|
||||||
|
|
||||||
#if PLATFORM(GTK)
|
|
||||||
#include "AcceleratedBackingStoreDMABuf.h"
|
|
||||||
+#include "DMABufRendererBufferMode.h"
|
|
||||||
#include <WebCore/PlatformDisplaySurfaceless.h>
|
|
||||||
#include <gtk/gtk.h>
|
|
||||||
|
|
||||||
@@ -158,6 +159,24 @@ static const char* openGLAPI()
|
|
||||||
return "OpenGL ES 2 (libepoxy)";
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if PLATFORM(GTK)
|
|
||||||
+static String dmabufRendererWithSupportedBuffers()
|
|
||||||
+{
|
|
||||||
+ StringBuilder buffers;
|
|
||||||
+ buffers.append("DMABuf (Supported buffers: "_s);
|
|
||||||
+ auto mode = AcceleratedBackingStoreDMABuf::rendererBufferMode();
|
|
||||||
+ if (mode.contains(DMABufRendererBufferMode::Hardware))
|
|
||||||
+ buffers.append("Hardware"_s);
|
|
||||||
+ if (mode.contains(DMABufRendererBufferMode::SharedMemory)) {
|
|
||||||
+ if (mode.contains(DMABufRendererBufferMode::Hardware))
|
|
||||||
+ buffers.append(", ");
|
|
||||||
+ buffers.append("Shared Memory"_s);
|
|
||||||
+ }
|
|
||||||
+ buffers.append(')');
|
|
||||||
+ return buffers.toString();
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
void WebKitProtocolHandler::handleGPU(WebKitURISchemeRequest* request)
|
|
||||||
{
|
|
||||||
GString* html = g_string_new(
|
|
||||||
@@ -324,11 +343,11 @@ void WebKitProtocolHandler::handleGPU(WebKitURISchemeRequest* request)
|
|
||||||
addTableRow(jsonObject, "API"_s, String::fromUTF8(openGLAPI()));
|
|
||||||
#if PLATFORM(WAYLAND)
|
|
||||||
if (PlatformDisplay::sharedDisplay().type() == PlatformDisplay::Type::Wayland)
|
|
||||||
- addTableRow(hardwareAccelerationObject, "Renderer"_s, usingDMABufRenderer ? "DMABuf"_s : "WPE"_s);
|
|
||||||
+ addTableRow(hardwareAccelerationObject, "Renderer"_s, usingDMABufRenderer ? dmabufRendererWithSupportedBuffers() : "WPE"_s);
|
|
||||||
#endif
|
|
||||||
#if PLATFORM(X11)
|
|
||||||
if (PlatformDisplay::sharedDisplay().type() == PlatformDisplay::Type::X11)
|
|
||||||
- addTableRow(hardwareAccelerationObject, "Renderer"_s, usingDMABufRenderer ? "DMABuf"_s : "XWindow"_s);
|
|
||||||
+ addTableRow(hardwareAccelerationObject, "Renderer"_s, usingDMABufRenderer ? dmabufRendererWithSupportedBuffers() : "XWindow"_s);
|
|
||||||
#endif
|
|
||||||
addTableRow(hardwareAccelerationObject, "Native interface"_s, uiProcessContextIsEGL() ? "EGL"_s : "None"_s);
|
|
||||||
|
|
||||||
diff --git a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp
|
|
||||||
index 55f27c64aa992..d439751cee32f 100644
|
|
||||||
--- a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp
|
|
||||||
+++ b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp
|
|
||||||
@@ -89,11 +89,11 @@ void WebProcessPool::platformInitializeWebProcess(const WebProcessProxy& process
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if PLATFORM(GTK)
|
|
||||||
- parameters.useDMABufSurfaceForCompositing = AcceleratedBackingStoreDMABuf::checkRequirements();
|
|
||||||
+ parameters.dmaBufRendererBufferMode = AcceleratedBackingStoreDMABuf::rendererBufferMode();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if PLATFORM(WAYLAND)
|
|
||||||
- if (WebCore::PlatformDisplay::sharedDisplay().type() == WebCore::PlatformDisplay::Type::Wayland && !parameters.useDMABufSurfaceForCompositing) {
|
|
||||||
+ if (WebCore::PlatformDisplay::sharedDisplay().type() == WebCore::PlatformDisplay::Type::Wayland && parameters.dmaBufRendererBufferMode.isEmpty()) {
|
|
||||||
wpe_loader_init("libWPEBackend-fdo-1.0.so.1");
|
|
||||||
if (AcceleratedBackingStoreWayland::checkRequirements()) {
|
|
||||||
parameters.hostClientFileDescriptor = UnixFileDescriptor { wpe_renderer_host_create_client(), UnixFileDescriptor::Adopt };
|
|
||||||
diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp
|
|
||||||
index 5a5d2fc4ceacb..1a208de31a054 100644
|
|
||||||
--- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp
|
|
||||||
+++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp
|
|
||||||
@@ -28,6 +28,7 @@
|
|
||||||
|
|
||||||
#include "AcceleratedBackingStoreDMABufMessages.h"
|
|
||||||
#include "AcceleratedSurfaceDMABufMessages.h"
|
|
||||||
+#include "DMABufRendererBufferMode.h"
|
|
||||||
#include "LayerTreeContext.h"
|
|
||||||
#include "ShareableBitmap.h"
|
|
||||||
#include "WebPageProxy.h"
|
|
||||||
@@ -49,23 +50,32 @@
|
|
||||||
|
|
||||||
namespace WebKit {
|
|
||||||
|
|
||||||
-bool AcceleratedBackingStoreDMABuf::checkRequirements()
|
|
||||||
+OptionSet<DMABufRendererBufferMode> AcceleratedBackingStoreDMABuf::rendererBufferMode()
|
|
||||||
{
|
|
||||||
- static bool available;
|
|
||||||
+ static OptionSet<DMABufRendererBufferMode> mode;
|
|
||||||
static std::once_flag onceFlag;
|
|
||||||
std::call_once(onceFlag, [] {
|
|
||||||
const char* disableDMABuf = getenv("WEBKIT_DISABLE_DMABUF_RENDERER");
|
|
||||||
- if (disableDMABuf && strcmp(disableDMABuf, "0")) {
|
|
||||||
- available = false;
|
|
||||||
+ if (disableDMABuf && strcmp(disableDMABuf, "0"))
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ const char* platformExtensions = eglQueryString(nullptr, EGL_EXTENSIONS);
|
|
||||||
+ if (!WebCore::GLContext::isExtensionSupported(platformExtensions, "EGL_KHR_platform_gbm")
|
|
||||||
+ && !WebCore::GLContext::isExtensionSupported(platformExtensions, "EGL_MESA_platform_surfaceless")) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ mode.add(DMABufRendererBufferMode::SharedMemory);
|
|
||||||
+
|
|
||||||
const auto& eglExtensions = WebCore::PlatformDisplay::sharedDisplay().eglExtensions();
|
|
||||||
- available = eglExtensions.KHR_image_base
|
|
||||||
- && eglExtensions.KHR_surfaceless_context
|
|
||||||
- && WebCore::GLContext::isExtensionSupported(eglQueryString(nullptr, EGL_EXTENSIONS), "EGL_MESA_platform_surfaceless");
|
|
||||||
+ if (eglExtensions.KHR_image_base && eglExtensions.EXT_image_dma_buf_import)
|
|
||||||
+ mode.add(DMABufRendererBufferMode::Hardware);
|
|
||||||
});
|
|
||||||
- return available;
|
|
||||||
+ return mode;
|
|
||||||
+}
|
|
||||||
+bool AcceleratedBackingStoreDMABuf::checkRequirements()
|
|
||||||
+{
|
|
||||||
+ return !rendererBufferMode().isEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
std::unique_ptr<AcceleratedBackingStoreDMABuf> AcceleratedBackingStoreDMABuf::create(WebPageProxy& webPage)
|
|
||||||
diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h
|
|
||||||
index bd52cafbcec61..1bc769ada3135 100644
|
|
||||||
--- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h
|
|
||||||
+++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h
|
|
||||||
@@ -32,6 +32,7 @@
|
|
||||||
#include <WebCore/RefPtrCairo.h>
|
|
||||||
#include <gtk/gtk.h>
|
|
||||||
#include <wtf/CompletionHandler.h>
|
|
||||||
+#include <wtf/OptionSet.h>
|
|
||||||
#include <wtf/glib/GRefPtr.h>
|
|
||||||
#include <wtf/unix/UnixFileDescriptor.h>
|
|
||||||
|
|
||||||
@@ -54,10 +55,12 @@ namespace WebKit {
|
|
||||||
class ShareableBitmap;
|
|
||||||
class ShareableBitmapHandle;
|
|
||||||
class WebPageProxy;
|
|
||||||
+enum class DMABufRendererBufferMode : uint8_t;
|
|
||||||
|
|
||||||
class AcceleratedBackingStoreDMABuf final : public AcceleratedBackingStore, public IPC::MessageReceiver {
|
|
||||||
WTF_MAKE_NONCOPYABLE(AcceleratedBackingStoreDMABuf); WTF_MAKE_FAST_ALLOCATED;
|
|
||||||
public:
|
|
||||||
+ static OptionSet<DMABufRendererBufferMode> rendererBufferMode();
|
|
||||||
static bool checkRequirements();
|
|
||||||
static std::unique_ptr<AcceleratedBackingStoreDMABuf> create(WebPageProxy&);
|
|
||||||
~AcceleratedBackingStoreDMABuf();
|
|
||||||
diff --git a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp
|
|
||||||
index c0fce2b286395..e5c49fbf92b63 100644
|
|
||||||
--- a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp
|
|
||||||
+++ b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp
|
|
||||||
@@ -442,7 +442,7 @@ void AcceleratedSurfaceDMABuf::clientResize(const WebCore::IntSize& size)
|
|
||||||
auto& display = WebCore::PlatformDisplay::sharedDisplayForCompositing();
|
|
||||||
switch (display.type()) {
|
|
||||||
case WebCore::PlatformDisplay::Type::Surfaceless:
|
|
||||||
- if (display.eglExtensions().MESA_image_dma_buf_export)
|
|
||||||
+ if (display.eglExtensions().MESA_image_dma_buf_export && WebProcess::singleton().dmaBufRendererBufferMode().contains(DMABufRendererBufferMode::Hardware))
|
|
||||||
m_target = RenderTargetTexture::create(m_id, size);
|
|
||||||
else
|
|
||||||
m_target = RenderTargetSHMImage::create(m_id, size);
|
|
||||||
diff --git a/Source/WebKit/WebProcess/WebProcess.h b/Source/WebKit/WebProcess/WebProcess.h
|
|
||||||
index 4a4d5031d4ef3..14c298a0f41bf 100644
|
|
||||||
--- a/Source/WebKit/WebProcess/WebProcess.h
|
|
||||||
+++ b/Source/WebKit/WebProcess/WebProcess.h
|
|
||||||
@@ -416,6 +416,10 @@ class WebProcess : public AuxiliaryProcess
|
|
||||||
void revokeLaunchServicesSandboxExtension();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#if PLATFORM(GTK)
|
|
||||||
+ const OptionSet<DMABufRendererBufferMode>& dmaBufRendererBufferMode() const { return m_dmaBufRendererBufferMode; }
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
private:
|
|
||||||
WebProcess();
|
|
||||||
~WebProcess();
|
|
||||||
@@ -739,8 +743,9 @@ class WebProcess : public AuxiliaryProcess
|
|
||||||
|
|
||||||
WeakHashMap<WebCore::UserGestureToken, uint64_t> m_userGestureTokens;
|
|
||||||
|
|
||||||
-#if PLATFORM(GTK) && USE(EGL)
|
|
||||||
+#if PLATFORM(GTK)
|
|
||||||
std::unique_ptr<WebCore::PlatformDisplay> m_displayForCompositing;
|
|
||||||
+ OptionSet<DMABufRendererBufferMode> m_dmaBufRendererBufferMode;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
bool m_hasSuspendedPageProxy { false };
|
|
||||||
diff --git a/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp b/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp
|
|
||||||
index a8ed70bc573e8..686004f4ee825 100644
|
|
||||||
--- a/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp
|
|
||||||
+++ b/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp
|
|
||||||
@@ -142,12 +142,15 @@ void WebProcess::platformInitializeWebProcess(WebProcessCreationParameters& para
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if PLATFORM(GTK)
|
|
||||||
- if (parameters.useDMABufSurfaceForCompositing) {
|
|
||||||
+ m_dmaBufRendererBufferMode = parameters.dmaBufRendererBufferMode;
|
|
||||||
+ if (!m_dmaBufRendererBufferMode.isEmpty()) {
|
|
||||||
#if USE(GBM)
|
|
||||||
- const char* disableGBM = getenv("WEBKIT_DMABUF_RENDERER_DISABLE_GBM");
|
|
||||||
- if (!disableGBM || !strcmp(disableGBM, "0")) {
|
|
||||||
- if (auto* device = WebCore::GBMDevice::singleton().device())
|
|
||||||
- m_displayForCompositing = WebCore::PlatformDisplayGBM::create(device);
|
|
||||||
+ if (m_dmaBufRendererBufferMode.contains(DMABufRendererBufferMode::Hardware)) {
|
|
||||||
+ const char* disableGBM = getenv("WEBKIT_DMABUF_RENDERER_DISABLE_GBM");
|
|
||||||
+ if (!disableGBM || !strcmp(disableGBM, "0")) {
|
|
||||||
+ if (auto* device = WebCore::GBMDevice::singleton().device())
|
|
||||||
+ m_displayForCompositing = WebCore::PlatformDisplayGBM::create(device);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (!m_displayForCompositing)
|
|
||||||
@@ -156,7 +159,7 @@ void WebProcess::platformInitializeWebProcess(WebProcessCreationParameters& para
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if PLATFORM(WAYLAND)
|
|
||||||
- if (PlatformDisplay::sharedDisplay().type() == PlatformDisplay::Type::Wayland && !parameters.isServiceWorkerProcess && !parameters.useDMABufSurfaceForCompositing) {
|
|
||||||
+ if (PlatformDisplay::sharedDisplay().type() == PlatformDisplay::Type::Wayland && !parameters.isServiceWorkerProcess && m_dmaBufRendererBufferMode.isEmpty()) {
|
|
||||||
auto hostClientFileDescriptor = parameters.hostClientFileDescriptor.release();
|
|
||||||
if (hostClientFileDescriptor != -1) {
|
|
||||||
wpe_loader_init(parameters.implementationLibraryName.data());
|
|
4
sources
4
sources
@ -1,2 +1,2 @@
|
|||||||
SHA512 (webkitgtk-2.41.6.tar.xz) = 89cc03b86a689fcf6edccf9e7adc9e128fe55776d46ab81b08332f490bbe8b63af96c4595d3e040133f83e8e0af1b5cf95b09936698e531f4c2cf99b052d316e
|
SHA512 (webkitgtk-2.41.91.tar.xz.asc) = 8519795d85809e5c9ecfb8292e5bb9e6a963ff00388c08b1fb1d4d9554503212d1ab3fe51cbeecd4d391f4bc87b0770d28bc6428b38e0639807a98619320c961
|
||||||
SHA512 (webkitgtk-2.41.6.tar.xz.asc) = c50546dc09fce1808af069ebe6ad12277c3e254e9d47d93ecc6b1fb8be1e635ccf1594bf7c13dcf2e3ad7e866e7f65cdc3a993b59c690094f79f6aac83f7b45d
|
SHA512 (webkitgtk-2.41.91.tar.xz) = 14381994830daff1a5126f0919760fdb7689a6ef4d96bdc147546839fbe5c012f71f3c4b51be6714bc25a0dc04260d4809d569fcc96cf60ae620fb8aeff5184a
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
Name: webkitgtk
|
Name: webkitgtk
|
||||||
Version: 2.41.6
|
Version: 2.41.91
|
||||||
Release: %autorelease
|
Release: %autorelease
|
||||||
Summary: GTK web content engine library
|
Summary: GTK web content engine library
|
||||||
|
|
||||||
@ -35,11 +35,6 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc
|
|||||||
# $ gpg --export --export-options export-minimal D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg
|
# $ gpg --export --export-options export-minimal D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg
|
||||||
Source2: webkitgtk-keys.gpg
|
Source2: webkitgtk-keys.gpg
|
||||||
|
|
||||||
# https://github.com/WebKit/WebKit/pull/15929
|
|
||||||
# https://bugs.webkit.org/show_bug.cgi?id=259320
|
|
||||||
# Fix content not shown on llvmpipe on Rawhide
|
|
||||||
Patch0: 15929.patch
|
|
||||||
|
|
||||||
BuildRequires: bison
|
BuildRequires: bison
|
||||||
BuildRequires: bubblewrap
|
BuildRequires: bubblewrap
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
|
Loading…
Reference in New Issue
Block a user