summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorq234rty2023-10-19 22:26:08 +0200
committerq234rty2023-10-21 03:39:18 +0800
commit4626599d411885c8540d583ac4f34b54ad9fdb38 (patch)
treecd14640a04b4f84ba8807fa628fa47848b13710c
parent29d9d87145022e2cf162b70749cbbff6e2e6d53e (diff)
downloadaur-4626599d411885c8540d583ac4f34b54ad9fdb38.tar.gz
Sync with extra
-rw-r--r--.SRCINFO8
-rw-r--r--GTK-Disable-DMABuf-renderer-for-NVIDIA-proprietary-drivers.patch76
-rw-r--r--GTK-MiniBrowser-should-hide-the-toolbar-when-using-full-screen.patch100
-rw-r--r--PKGBUILD18
4 files changed, 194 insertions, 8 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 9dd18fcee04b..5dc6c4f249b6 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = webkit2gtk-imgpaste
pkgdesc = Web content engine for GTK (with patches for pasting images from clipboard)
pkgver = 2.42.1
- pkgrel = 1
+ pkgrel = 2
url = https://webkitgtk.org
arch = x86_64
license = custom
@@ -69,16 +69,18 @@ pkgbase = webkit2gtk-imgpaste
conflicts = webkit2gtk
source = https://webkitgtk.org/releases/webkitgtk-2.42.1.tar.xz
source = https://webkitgtk.org/releases/webkitgtk-2.42.1.tar.xz.asc
- source = webkitgtk-MiniBrowser-fullscreen.patch::https://github.com/WebKit/WebKit/commit/e07345343415dd2496edc721daa61a3b42703131.patch
source = EnlargeObjectSize.patch
source = PasteBoardGtk.patch
+ source = GTK-MiniBrowser-should-hide-the-toolbar-when-using-full-screen.patch
+ source = GTK-Disable-DMABuf-renderer-for-NVIDIA-proprietary-drivers.patch
validpgpkeys = D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3
validpgpkeys = 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B
sha256sums = 6f41fac9989d3ee51c08c48de1d439cdeddecbc757e34b6180987d99b16d2499
sha256sums = SKIP
- sha256sums = a921d6be1303e9f23474971f381886fd291ec5bb1a7ff1e85acede8cfb88bef2
sha256sums = 71b8a59c78d549fed0cd895207f49c7b3be40b236e96f4d7b9907a26521499bf
sha256sums = 20ebac2caf15fa546e6da00cb0fa90d5d37fcf7bfa883014d7d15eb4963d12d2
+ sha256sums = a921d6be1303e9f23474971f381886fd291ec5bb1a7ff1e85acede8cfb88bef2
+ sha256sums = 655f3b2c96355ac83c4fa1fc6048e3256bbfdbfb9727e1e18c5af12613536206
pkgname = webkit2gtk-imgpaste
depends = at-spi2-core
diff --git a/GTK-Disable-DMABuf-renderer-for-NVIDIA-proprietary-drivers.patch b/GTK-Disable-DMABuf-renderer-for-NVIDIA-proprietary-drivers.patch
new file mode 100644
index 000000000000..bfa8ba53c908
--- /dev/null
+++ b/GTK-Disable-DMABuf-renderer-for-NVIDIA-proprietary-drivers.patch
@@ -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();
diff --git a/GTK-MiniBrowser-should-hide-the-toolbar-when-using-full-screen.patch b/GTK-MiniBrowser-should-hide-the-toolbar-when-using-full-screen.patch
new file mode 100644
index 000000000000..b10bd9acf11d
--- /dev/null
+++ b/GTK-MiniBrowser-should-hide-the-toolbar-when-using-full-screen.patch
@@ -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);
diff --git a/PKGBUILD b/PKGBUILD
index 698469cfb6e1..9abb4ce4dfdd 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,7 +4,7 @@
pkgname=webkit2gtk-imgpaste
pkgver=2.42.1
-pkgrel=1
+pkgrel=2
pkgdesc="Web content engine for GTK (with patches for pasting images from clipboard)"
url="https://webkitgtk.org"
arch=(x86_64)
@@ -77,15 +77,17 @@ provides=(webkit2gtk)
conflicts=(webkit2gtk)
source=(
$url/releases/webkitgtk-$pkgver.tar.xz{,.asc}
- webkitgtk-MiniBrowser-fullscreen.patch::https://github.com/WebKit/WebKit/commit/e07345343415dd2496edc721daa61a3b42703131.patch
EnlargeObjectSize.patch
PasteBoardGtk.patch
+ GTK-MiniBrowser-should-hide-the-toolbar-when-using-full-screen.patch
+ GTK-Disable-DMABuf-renderer-for-NVIDIA-proprietary-drivers.patch
)
sha256sums=('6f41fac9989d3ee51c08c48de1d439cdeddecbc757e34b6180987d99b16d2499'
'SKIP'
- 'a921d6be1303e9f23474971f381886fd291ec5bb1a7ff1e85acede8cfb88bef2'
'71b8a59c78d549fed0cd895207f49c7b3be40b236e96f4d7b9907a26521499bf'
- '20ebac2caf15fa546e6da00cb0fa90d5d37fcf7bfa883014d7d15eb4963d12d2')
+ '20ebac2caf15fa546e6da00cb0fa90d5d37fcf7bfa883014d7d15eb4963d12d2'
+ 'a921d6be1303e9f23474971f381886fd291ec5bb1a7ff1e85acede8cfb88bef2'
+ '655f3b2c96355ac83c4fa1fc6048e3256bbfdbfb9727e1e18c5af12613536206')
validpgpkeys=(
'D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3' # Carlos Garcia Campos <cgarcia@igalia.com>
'5AA3BC334FD7E3369E7C77B291C559DBE4C9123B' # Adrián Pérez de Castro <aperez@igalia.com>
@@ -94,9 +96,15 @@ validpgpkeys=(
prepare() {
cd webkitgtk-$pkgver
- patch -Np1 -i ../webkitgtk-MiniBrowser-fullscreen.patch
patch -Np1 -i ../PasteBoardGtk.patch
patch -Np1 -i ../EnlargeObjectSize.patch
+ # 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
}
build() {