aboutsummaryrefslogtreecommitdiff
path: root/www/firefox
diff options
context:
space:
mode:
authorChristoph Moench-Tegeder <cmt@FreeBSD.org>2022-07-25 21:55:37 +0000
committerChristoph Moench-Tegeder <cmt@FreeBSD.org>2022-07-25 21:55:37 +0000
commite9cf87dba5ea6097da725e6184c17462dc1ee75d (patch)
tree51a9268fd5ad89829b2cacb3ff88336306e79112 /www/firefox
parent9f10e4702cdb70d48c010deb322d47f922722835 (diff)
downloadports-e9cf87dba5ea6097da725e6184c17462dc1ee75d.tar.gz
ports-e9cf87dba5ea6097da725e6184c17462dc1ee75d.zip
www/firefox: uplift patch for bmo#1779425
at least with some video cards (I only have one) but not with software rendering, tabs supposed to display WebGL things may crash instead. With this patch I can at least watch the cube spin and the fishys swim, fwiw.
Diffstat (limited to 'www/firefox')
-rw-r--r--www/firefox/Makefile1
-rw-r--r--www/firefox/files/patch-bug177942548
2 files changed, 49 insertions, 0 deletions
diff --git a/www/firefox/Makefile b/www/firefox/Makefile
index d0d94900e46d..2d5a94f92db5 100644
--- a/www/firefox/Makefile
+++ b/www/firefox/Makefile
@@ -1,5 +1,6 @@
PORTNAME= firefox
DISTVERSION= 103.0
+PORTREVISION= 1
PORTEPOCH= 2
CATEGORIES= www wayland
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}${DISTVERSIONSUFFIX}/source \
diff --git a/www/firefox/files/patch-bug1779425 b/www/firefox/files/patch-bug1779425
new file mode 100644
index 000000000000..9ab5f99d3b6d
--- /dev/null
+++ b/www/firefox/files/patch-bug1779425
@@ -0,0 +1,48 @@
+commit 9583d02e454318568191e5c31c51c34fd1332182
+Author: Robert Mader <robert.mader@posteo.de>
+Date: Tue Jul 19 21:52:04 2022 +0000
+
+ Bug 1779425 - Check for GbmDevice before using it, r=stransky,jgilbert
+
+ In some non-standard configurations we unexpectedly end up in this paths
+ without a GBM device - one example being the GPU process. Fail cleanly
+ instead of crashing in those cases, triggering fallback paths.
+
+ Context: in the past DMABuf usage was tightly coupled to GBM. Since the
+ introduction of the surfaceless and device EGL platforms that is not
+ longer the case, thus we can't make checks like `IsDMABufWebGLEnabled()`
+ depend on the presence of a GBM device.
+
+ Optimally all affected cases get fixed eventually. Until then and also
+ for future cases it makes sense to fail softly.
+
+ Differential Revision: https://phabricator.services.mozilla.com/D152173
+
+diff --git widget/gtk/DMABufSurface.cpp widget/gtk/DMABufSurface.cpp
+index 92c8e75218f8..7fddb32c7cda 100644
+--- widget/gtk/DMABufSurface.cpp
++++ widget/gtk/DMABufSurface.cpp
+@@ -382,6 +382,11 @@ bool DMABufSurfaceRGBA::Create(int aWidth, int aHeight,
+ LOGDMABUF(("DMABufSurfaceRGBA::Create() UID %d size %d x %d\n", mUID, mWidth,
+ mHeight));
+
++ if (!GetDMABufDevice()->GetGbmDevice()) {
++ LOGDMABUF((" Missing GbmDevice!"));
++ return false;
++ }
++
+ mGmbFormat = GetDMABufDevice()->GetGbmFormat(mSurfaceFlags & DMABUF_ALPHA);
+ if (!mGmbFormat) {
+ // Requested DRM format is not supported.
+@@ -1025,6 +1030,11 @@ bool DMABufSurfaceYUV::CreateYUVPlane(int aPlane, int aWidth, int aHeight,
+ LOGDMABUF(("DMABufSurfaceYUV::CreateYUVPlane() UID %d size %d x %d", mUID,
+ aWidth, aHeight));
+
++ if (!GetDMABufDevice()->GetGbmDevice()) {
++ LOGDMABUF((" Missing GbmDevice!"));
++ return false;
++ }
++
+ mWidth[aPlane] = aWidth;
+ mHeight[aPlane] = aHeight;
+ mDrmFormats[aPlane] = aDrmFormat;