* update webkit2gtk to 2.42.1-2
This commit is contained in:
parent
6111883243
commit
9d79659ced
@ -0,0 +1,76 @@
|
||||
From 745633e606ca70bf926545149beed35aab6450b7 Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garcia Campos <cgarcia@igalia.com>
|
||||
Date: Wed, 4 Oct 2023 10:19:28 +0200
|
||||
Subject: [PATCH] [GTK] Disable DMABuf renderer for NVIDIA proprietary drivers
|
||||
https://bugs.webkit.org/show_bug.cgi?id=262607
|
||||
|
||||
Reviewed by NOBODY (OOPS!).
|
||||
|
||||
Some NVIDIA users are reporting nothing is rendered, so let's just
|
||||
disable the DMA-BUF renderer until we figure out how to make it work.
|
||||
|
||||
* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp:
|
||||
(WebKit::isNVIDIA):
|
||||
(WebKit::AcceleratedBackingStoreDMABuf::rendererBufferMode):
|
||||
---
|
||||
.../gtk/AcceleratedBackingStoreDMABuf.cpp | 28 +++++++++++++++++++
|
||||
1 file changed, 28 insertions(+)
|
||||
|
||||
diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp
|
||||
index 9c0f5efdfb0e3..a03842e15db0e 100644
|
||||
--- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp
|
||||
+++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp
|
||||
@@ -38,11 +38,13 @@
|
||||
#include <WebCore/GLContext.h>
|
||||
#include <WebCore/IntRect.h>
|
||||
#include <WebCore/PlatformDisplay.h>
|
||||
+#include <WebCore/PlatformDisplaySurfaceless.h>
|
||||
#include <epoxy/egl.h>
|
||||
#include <wtf/glib/GUniquePtr.h>
|
||||
|
||||
#if USE(GBM)
|
||||
#include <WebCore/DMABufFormat.h>
|
||||
+#include <WebCore/PlatformDisplayGBM.h>
|
||||
#include <gbm.h>
|
||||
static constexpr uint64_t s_dmabufInvalidModifier = uint64_t(WebCore::DMABufFormat::Modifier::Invalid);
|
||||
#else
|
||||
@@ -55,6 +57,29 @@ static constexpr uint64_t s_dmabufInvalidModifier = ((1ULL << 56) - 1);
|
||||
|
||||
namespace WebKit {
|
||||
|
||||
+static bool isNVIDIA()
|
||||
+{
|
||||
+ const char* forceDMABuf = getenv("WEBKIT_FORCE_DMABUF_RENDERER");
|
||||
+ if (forceDMABuf && strcmp(forceDMABuf, "0"))
|
||||
+ return false;
|
||||
+
|
||||
+ std::unique_ptr<WebCore::PlatformDisplay> platformDisplay;
|
||||
+#if USE(GBM)
|
||||
+ const char* disableGBM = getenv("WEBKIT_DMABUF_RENDERER_DISABLE_GBM");
|
||||
+ if (!disableGBM || !strcmp(disableGBM, "0")) {
|
||||
+ if (auto* device = WebCore::PlatformDisplay::sharedDisplay().gbmDevice())
|
||||
+ platformDisplay = WebCore::PlatformDisplayGBM::create(device);
|
||||
+ }
|
||||
+#endif
|
||||
+ if (!platformDisplay)
|
||||
+ platformDisplay = WebCore::PlatformDisplaySurfaceless::create();
|
||||
+
|
||||
+ WebCore::GLContext::ScopedGLContext glContext(WebCore::GLContext::createOffscreen(platformDisplay ? *platformDisplay : WebCore::PlatformDisplay::sharedDisplay()));
|
||||
+ if (strstr(reinterpret_cast<const char*>(glGetString(GL_VENDOR)), "NVIDIA"))
|
||||
+ return true;
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
OptionSet<DMABufRendererBufferMode> AcceleratedBackingStoreDMABuf::rendererBufferMode()
|
||||
{
|
||||
static OptionSet<DMABufRendererBufferMode> mode;
|
||||
@@ -70,6 +95,9 @@ OptionSet<DMABufRendererBufferMode> AcceleratedBackingStoreDMABuf::rendererBuffe
|
||||
return;
|
||||
}
|
||||
|
||||
+ if (isNVIDIA())
|
||||
+ return;
|
||||
+
|
||||
mode.add(DMABufRendererBufferMode::SharedMemory);
|
||||
|
||||
const auto& eglExtensions = WebCore::PlatformDisplay::sharedDisplay().eglExtensions();
|
@ -0,0 +1,100 @@
|
||||
From e07345343415dd2496edc721daa61a3b42703131 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hesse <mail@eworm.de>
|
||||
Date: Tue, 19 Sep 2023 12:16:39 -0700
|
||||
Subject: [PATCH] [GTK] MiniBrowser should hide the toolbar when using
|
||||
--full-screen #17909 https://bugs.webkit.org/show_bug.cgi?id=261732
|
||||
|
||||
Reviewed by Michael Catanzaro.
|
||||
|
||||
Entering fullscreen mode with F11 works as expected.
|
||||
Starting with command line switch `--full-screen` does make the window
|
||||
fullscreen, but does not hide the toolbar. Let's change that.
|
||||
|
||||
Instead of just making the window fullscreen with `gtk_window_fullscreen()`
|
||||
this introduces a new function `browser_window_fullscreen()` that hides
|
||||
the toolbar as well.
|
||||
|
||||
Also introduce new function `browserWindowUnfullscreen()`, use both
|
||||
in `toggleFullScreen()`, and drop extra inversion.
|
||||
|
||||
* Tools/MiniBrowser/gtk/BrowserWindow.c
|
||||
* Tools/MiniBrowser/gtk/BrowserWindow.h
|
||||
* Tools/MiniBrowser/gtk/main.c
|
||||
|
||||
Canonical link: https://commits.webkit.org/268141@main
|
||||
---
|
||||
Tools/MiniBrowser/gtk/BrowserWindow.c | 27 ++++++++++++++++++---------
|
||||
Tools/MiniBrowser/gtk/BrowserWindow.h | 1 +
|
||||
Tools/MiniBrowser/gtk/main.c | 2 +-
|
||||
3 files changed, 20 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/Tools/MiniBrowser/gtk/BrowserWindow.c b/Tools/MiniBrowser/gtk/BrowserWindow.c
|
||||
index 626ce2207e845..58eb5ae39e2e0 100644
|
||||
--- a/Tools/MiniBrowser/gtk/BrowserWindow.c
|
||||
+++ b/Tools/MiniBrowser/gtk/BrowserWindow.c
|
||||
@@ -482,6 +482,20 @@ static GtkWidget *webViewCreate(WebKitWebView *webView, WebKitNavigationAction *
|
||||
return GTK_WIDGET(newWebView);
|
||||
}
|
||||
|
||||
+void browser_window_fullscreen(BrowserWindow *window)
|
||||
+{
|
||||
+ gtk_window_fullscreen(GTK_WINDOW(window));
|
||||
+ gtk_widget_hide(window->toolbar);
|
||||
+ window->fullScreenIsEnabled = TRUE;
|
||||
+}
|
||||
+
|
||||
+static void browserWindowUnfullscreen(BrowserWindow *window)
|
||||
+{
|
||||
+ gtk_window_unfullscreen(GTK_WINDOW(window));
|
||||
+ gtk_widget_show(window->toolbar);
|
||||
+ window->fullScreenIsEnabled = FALSE;
|
||||
+}
|
||||
+
|
||||
static gboolean webViewEnterFullScreen(WebKitWebView *webView, BrowserWindow *window)
|
||||
{
|
||||
gtk_widget_hide(window->toolbar);
|
||||
@@ -867,15 +881,10 @@ static void loadHomePage(GSimpleAction *action, GVariant *parameter, gpointer us
|
||||
static void toggleFullScreen(GSimpleAction *action, GVariant *parameter, gpointer userData)
|
||||
{
|
||||
BrowserWindow *window = BROWSER_WINDOW(userData);
|
||||
- if (!window->fullScreenIsEnabled) {
|
||||
- gtk_window_fullscreen(GTK_WINDOW(window));
|
||||
- gtk_widget_hide(window->toolbar);
|
||||
- window->fullScreenIsEnabled = TRUE;
|
||||
- } else {
|
||||
- gtk_window_unfullscreen(GTK_WINDOW(window));
|
||||
- gtk_widget_show(window->toolbar);
|
||||
- window->fullScreenIsEnabled = FALSE;
|
||||
- }
|
||||
+ if (window->fullScreenIsEnabled)
|
||||
+ browserWindowUnfullscreen(window);
|
||||
+ else
|
||||
+ browser_window_fullscreen(window);
|
||||
}
|
||||
|
||||
static void webKitPrintOperationFailedCallback(WebKitPrintOperation *printOperation, GError *error)
|
||||
diff --git a/Tools/MiniBrowser/gtk/BrowserWindow.h b/Tools/MiniBrowser/gtk/BrowserWindow.h
|
||||
index c58ebc2beec7e..1fd07efb828b8 100644
|
||||
--- a/Tools/MiniBrowser/gtk/BrowserWindow.h
|
||||
+++ b/Tools/MiniBrowser/gtk/BrowserWindow.h
|
||||
@@ -58,6 +58,7 @@ GtkWidget* browser_window_new(GtkWindow*, WebKitWebContext*);
|
||||
#endif
|
||||
WebKitWebContext* browser_window_get_web_context(BrowserWindow*);
|
||||
void browser_window_append_view(BrowserWindow*, WebKitWebView*);
|
||||
+void browser_window_fullscreen(BrowserWindow*);
|
||||
void browser_window_load_uri(BrowserWindow*, const char *uri);
|
||||
void browser_window_load_session(BrowserWindow *, const char *sessionFile);
|
||||
void browser_window_set_background_color(BrowserWindow*, GdkRGBA*);
|
||||
diff --git a/Tools/MiniBrowser/gtk/main.c b/Tools/MiniBrowser/gtk/main.c
|
||||
index 8be643a541511..451e0333dd4e8 100644
|
||||
--- a/Tools/MiniBrowser/gtk/main.c
|
||||
+++ b/Tools/MiniBrowser/gtk/main.c
|
||||
@@ -925,7 +925,7 @@ static void activate(GApplication *application, WebKitSettings *webkitSettings)
|
||||
if (darkMode)
|
||||
g_object_set(gtk_widget_get_settings(GTK_WIDGET(mainWindow)), "gtk-application-prefer-dark-theme", TRUE, NULL);
|
||||
if (fullScreen)
|
||||
- gtk_window_fullscreen(GTK_WINDOW(mainWindow));
|
||||
+ browser_window_fullscreen(mainWindow);
|
||||
|
||||
if (backgroundColor)
|
||||
browser_window_set_background_color(mainWindow, backgroundColor);
|
@ -7,8 +7,8 @@ pkgname=(
|
||||
webkit2gtk
|
||||
webkit2gtk-docs
|
||||
)
|
||||
pkgver=2.42.0
|
||||
pkgrel=1
|
||||
pkgver=2.42.1
|
||||
pkgrel=2
|
||||
pkgdesc="Web content engine for GTK"
|
||||
url="https://webkitgtk.org"
|
||||
arch=(x86_64 powerpc64le powerpc64 powerpc riscv64)
|
||||
@ -79,13 +79,22 @@ makedepends=(
|
||||
makedepends_x86_64=(clang)
|
||||
source=(
|
||||
$url/releases/webkitgtk-$pkgver.tar.xz{,.asc}
|
||||
GTK-MiniBrowser-should-hide-the-toolbar-when-using-full-screen.patch
|
||||
GTK-Disable-DMABuf-renderer-for-NVIDIA-proprietary-drivers.patch
|
||||
minibrowser-powerpc.patch
|
||||
reduce-memory-overheads.patch
|
||||
)
|
||||
sha256sums=('828f95935861fae583fb8f2ae58cf64c63c178ae2b7c2d6f73070813ad64ed1b'
|
||||
sha256sums=('6f41fac9989d3ee51c08c48de1d439cdeddecbc757e34b6180987d99b16d2499'
|
||||
'SKIP'
|
||||
'a921d6be1303e9f23474971f381886fd291ec5bb1a7ff1e85acede8cfb88bef2'
|
||||
'655f3b2c96355ac83c4fa1fc6048e3256bbfdbfb9727e1e18c5af12613536206'
|
||||
'795bd7e4e5fa5f17bca2a9edf39a13a92b325519f290d125b3f341cab31b77fa'
|
||||
'13df7f0b0a61866e767f280bbe77667126ae7de4ad4f463c682040da6366a864')
|
||||
b2sums=('afaaef8482fe81645eee55be86a80fb51eff83dc000ac0dc5981d41810b5c72c59428d8e92a02c04718c0367ac19689501c81764f9603b767d7271ad9cd66075'
|
||||
b2sums=('c6453cf2d15661507df66c5478e7675217b62d9579cf9b9408cb3e4fa1a8405c5c2608edf0960baed62aafa766e6cdbe2f0c07e8fb728d86c111f12d5a816492'
|
||||
'SKIP'
|
||||
'd440d82c769f1b35caf5464dc850cdf1c896224205c90c17d8b0a44aee62e4b1383e11306936aaca067fde8836770d346d5122d7b05c91a5c7c1741c89c65e2f'
|
||||
'daa782d4d40cc12a05c02b2494e879333f66f32820f1a1b89b7ab68f62fd53043b116ecb5ef476004095a7c7b924b12695b7e87e21dd547f66e72fa02a972f0d'
|
||||
'7db786bed95773dcf6b0f2c459195f0eb6fe67b7635060ab3e5b30e92078e1fb656e46fe09d66f631de83fa678541e2c6cd675d5efb84d2f3e7907aba380a058'
|
||||
'cc16462ce22df999b47ef477d4272ef3df2fbbfe5cdc585f3ce47e56cde65a1d7dd1105e6e7bbff41695f79b6394bc3e403e53a669bb7f456c733ed216372c9b')
|
||||
validpgpkeys=(
|
||||
'D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3' # Carlos Garcia Campos <cgarcia@igalia.com>
|
||||
@ -94,7 +103,20 @@ validpgpkeys=(
|
||||
|
||||
prepare() {
|
||||
cd webkitgtk-$pkgver
|
||||
# Requested by eworm
|
||||
# https://github.com/WebKit/WebKit/pull/17909
|
||||
patch -Np1 -i ../GTK-MiniBrowser-should-hide-the-toolbar-when-using-full-screen.patch
|
||||
|
||||
# https://bugs.archlinux.org/task/79783
|
||||
# https://github.com/WebKit/WebKit/pull/18614
|
||||
patch -Np1 -i ../GTK-Disable-DMABuf-renderer-for-NVIDIA-proprietary-drivers.patch
|
||||
|
||||
patch -Np1 -i ${srcdir}/reduce-memory-overheads.patch
|
||||
|
||||
case "${CARCH}" in
|
||||
powerpc) patch -Np1 -i ${srcdir}/minibrowser-powerpc.patch ;;
|
||||
esac
|
||||
|
||||
}
|
||||
|
||||
build() {
|
||||
|
@ -0,0 +1,21 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mQGiBEhD/gURBADY9/zG24BcSOkrarNtDlMqTM1Mc22gBlpVs3IyGwiYFy1f+NYL
|
||||
0CwgO6JsJPF0BsrLtZ0jO7SCUOnq1lQ/XA3Ecttp9Fc7p7qRoDX4okC72PFGOtth
|
||||
fnnkAaFe4d2LYIXs6ZPbuH4x7sDnEDcK2ceJvNXFIRjF8XnOglpN3pmI+wCggRxa
|
||||
VFsAYh/xbm5/UYSDyJDqCH0EALjkCl4l5kGVA+5ZQgtuvLNrHyOIAX35pwE4fKby
|
||||
krpM7DP0YooNnXzENOPvOB4WlhW8dAAt2EuQspvmJieeevE//DcgAhYVZBlzNnQq
|
||||
Z3yPbJY4ucQy9KU5hyP6GLul+80KThhJZRAiCnjSQf8H3Ij7sEwLkSAmg1MIyPF7
|
||||
OShABAC42FzEpsyW6+SX7c6FNYB5ZgsgEESq6nTiCJ77Tqe5CrOqNplpNqrw/knI
|
||||
GgSEsxmXNEhBvXCjCH4CDDGPXVuqXpHB/E38JW75irXVVSr47iTx0XaBRzGLcHyM
|
||||
gT1b/yYCl10FV/47u8XaOP0BP9cQ2A9PY/vRTKRDNbe4plJSRbQsQWRyacOhbiBQ
|
||||
w6lyZXogZGUgQ2FzdHJvIDxhcGVyZXpAaWdhbGlhLmNvbT6IgQQTEQoAQQIbIwIe
|
||||
AQIXgAIZAQULCQgHAwUVCgkICwUWAgMBABYhBFqjvDNP1+M2nnx3spHFWdvkyRI7
|
||||
BQJeuoBnBQkaOOliAAoJEJHFWdvkyRI7lAsAn0EYqK753vXGH0fQGi30hnLUTbo7
|
||||
AJ4gi/3tS5RXrokUBWt//IhPrkUSBrQ+QWRyacOhbiBQw6lyZXogZGUgQ2FzdHJv
|
||||
IChwZXJzb25hbCkgPGFkcmlhbkBwZXJlemRlY2FzdHJvLm9yZz6IfgQTEQoAPgIb
|
||||
IwIeAQIXgAULCQgHAwUVCgkICwUWAgMBABYhBFqjvDNP1+M2nnx3spHFWdvkyRI7
|
||||
BQJeuoBuBQkaOOliAAoJEJHFWdvkyRI7PlsAn0kzehBht+bqJ9IVW08hfq3dNirm
|
||||
AJsHuPgQnz2Zm43XDUf6Re8vaoxlxQ==
|
||||
=tAiD
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
@ -0,0 +1,23 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mQGiBEy4Qy4RBACevATwAKdArGO2UjVGsP3nb3BWLfB9KR5hbpuL5yejUoR6xeN4
|
||||
vsw1/fy9fiGlsLGqlmnd6bDZ6c7mNyc0ERXXGk2QOQEMeDyL6VsoZEbo5t8bZa6B
|
||||
Pxc23C9L4d0bdNF7y0CoO7xsg1zClq23MXWAgi4Wm+ZDonw+b2UBcCt/uwCg9AST
|
||||
/g8XgNKZ4WxpRI4bM/1BvxUD/2xeJkUjgmdwV14dOdHmsW7BYJHUKxAt9KBSJ5Yo
|
||||
ZDCmh6HTtUjd9dKwkuRTxtc3G4s+J5D5WCeNKQ/kNAYAoclzXYc2crTrXZ+RqWap
|
||||
G+ngUZxgnyNAaveyUjV19qDRJKVuzBXeQWH/UU5eEpuRfx7ReyFX7sAhDOmnVrvg
|
||||
IoegA/0SNS+wsGjYxpWOO1QMsqGidgIp5yLanfA7qsfxz8t+gGtXOSqomUJsYyYX
|
||||
a0c2kXl3ZPe/cyK6j9o+l4YrczkNAxeXVJd4uA4sSrqmKI1F7cICV3EqJ5uyKWll
|
||||
eW/sfhKNcPiadBZr9LNS1775jWM3pNxszZrjCnTfspn0gyGTbLQpQ2FybG9zIEdh
|
||||
cmNpYSBDYW1wb3MgPGNnYXJjaWFAaWdhbGlhLmNvbT6IYgQTEQIAIgUCTLhDLgIb
|
||||
AwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQ89Mi0OxFgsO7aQCgyouexI5L
|
||||
4PxyZlCgucZj2UGUI1kAn2Lh4CPgaCa7kno1aArSFzzdVRnhuQENBEy4Qy4QBADZ
|
||||
F1vw6zV7ZKGg8Ipfi0ASbDRVzHdr4wdoiNbFGKXykwi3PRuolrSTd+970u0MNX30
|
||||
ZmfOTk/cidymaBd0RyVnwmPgnoRxZpKhMnFrlxRYtukUHyYDeFwM376ux1TXNWwG
|
||||
sxZ3RmENWyoAs8GK3vIYhaqC22qxS1SfjMn1eueonwADBQQAnLZte7R5TK0j5L1K
|
||||
/JJc82JOkdjlF6ORS+hxHqlITmRevmo5zcvBMfCjH98y5yGVHciQ/Pp+AC+hI7n0
|
||||
r2B+HO7/M+fzub4mJpgsrdGLebwFOOMuJQCzU/vm2O+ni9RfhKGxj6j5ibVzW/Xg
|
||||
dxDF7ffwmiqAWJrzUGtIBKRw372ISQQYEQIACQUCTLhDLgIbDAAKCRDz0yLQ7EWC
|
||||
w/ohAJ9TForRmpOoZQn8nC82lvjLnl8yJwCfePN1wgFlZu2kkHP4d0fJ2LN6whM=
|
||||
=HKDK
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
11
webkit2gtk/minibrowser-powerpc.patch
Normal file
11
webkit2gtk/minibrowser-powerpc.patch
Normal file
@ -0,0 +1,11 @@
|
||||
--- webkitgtk-2.42.1/Tools/MiniBrowser/gtk/BrowserWindow.c.orig 2023-11-12 09:55:06.198656295 +0100
|
||||
+++ webkitgtk-2.42.1/Tools/MiniBrowser/gtk/BrowserWindow.c 2023-11-12 09:55:45.106611911 +0100
|
||||
@@ -254,7 +254,7 @@
|
||||
#endif
|
||||
#undef MAX_TITLE
|
||||
|
||||
- char *actionName = g_strdup_printf("action-%lu", ++actionId);
|
||||
+ char *actionName = g_strdup_printf("action-%lu", (long unsigned int)++actionId);
|
||||
GSimpleAction *action = g_simple_action_new(actionName, NULL);
|
||||
g_object_set_data_full(G_OBJECT(action), "back-forward-list-item", g_object_ref(item), g_object_unref);
|
||||
g_signal_connect_swapped(action, "activate", G_CALLBACK(browserWindowHistoryItemActivated), window);
|
Loading…
x
Reference in New Issue
Block a user