Date: Monday, January 16, 2023 @ 18:52:20
Author: heftig
Revision: 466777
109.0-1
Added:
firefox/trunk/0002-Bug-1804973-Wayland-Check-size-for-valid-EGLWindows-.patch
Modified:
firefox/trunk/0001-libwebrtc-screen-cast-sync.patch
firefox/trunk/PKGBUILD
-----------------------------------------------------------------+
0001-libwebrtc-screen-cast-sync.patch | 53
+++++-----
0002-Bug-1804973-Wayland-Check-size-for-valid-EGLWindows-.patch | 25 ++++
PKGBUILD | 16 ++-
3 files changed, 66 insertions(+), 28 deletions(-)
Modified: 0001-libwebrtc-screen-cast-sync.patch
===================================================================
--- 0001-libwebrtc-screen-cast-sync.patch 2023-01-16 18:49:40 UTC (rev
466776)
+++ 0001-libwebrtc-screen-cast-sync.patch 2023-01-16 18:52:20 UTC (rev
466777)
@@ -21,7 +21,7 @@
third_party/gbm/gbm/gbm.h | 452 ++++++
.../libpipewire => gbm/libgbm}/moz.build | 4 +-
third_party/gbm/libgbm/mozgbm.cpp | 66 +
- .../desktop_capture_generic_gn/moz.build | 45 +-
+ .../desktop_capture_gn/moz.build | 48 +-
.../desktop_capture_options.cc | 4 +-
.../desktop_capture/desktop_capture_options.h | 6 +-
.../linux/wayland/base_capturer_pipewire.cc | 2 +-
@@ -29,7 +29,7 @@
.../desktop_capture/window_capturer_linux.cc | 8 -
third_party/moz.build | 6 +
.../pipewire/libpipewire/mozpipewire.cpp | 49 +-
- 20 files changed, 5450 insertions(+), 33 deletions(-)
+ 20 files changed, 5453 insertions(+), 33 deletions(-)
create mode 100644 third_party/drm/README
create mode 100644 third_party/drm/drm/drm.h
create mode 100644 third_party/drm/drm/drm_fourcc.h
@@ -43,7 +43,7 @@
create mode 100644 third_party/gbm/libgbm/mozgbm.cpp
diff --git a/dom/media/webrtc/moz.build b/dom/media/webrtc/moz.build
-index ddf9321b58ea..af0f7ab64cc3 100644
+index b6e09dbb5c9a..ada0fcb4a5d9 100644
--- a/dom/media/webrtc/moz.build
+++ b/dom/media/webrtc/moz.build
@@ -84,6 +84,8 @@ if CONFIG["MOZ_WEBRTC_SIGNALING"]:
@@ -5498,10 +5498,10 @@
+ }
+ return gbm_device_destroy_fn(gbm);
+}
-diff --git
a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build
b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build
-index 809899a92847..8869fae89703 100644
----
a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build
-+++
b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build
+diff --git
a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build
b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build
+index 8631744ab1bf..366ea67aa9ab 100644
+---
a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build
++++
b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build
@@ -8,25 +8,28 @@
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]
@@ -5532,14 +5532,15 @@
"/third_party/libwebrtc/",
"/third_party/libwebrtc/third_party/abseil-cpp/",
"/third_party/pipewire/",
-@@ -240,7 +243,15 @@ if CONFIG["CPU_ARCH"] == "arm":
+@@ -242,7 +245,16 @@ if CONFIG["CPU_ARCH"] == "arm":
DEFINES["_GNU_SOURCE"] = True
- UNIFIED_SOURCES += [
+ SOURCES += [
-
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/moz_base_capturer_pipewire.cc"
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc",
++
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/scoped_glib.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc",
@@ -5549,15 +5550,15 @@
]
if CONFIG["CPU_ARCH"] == "ppc64":
-@@ -295,27 +306,51 @@ if CONFIG["CPU_ARCH"] == "aarch64" and
CONFIG["OS_TARGET"] == "Linux":
+@@ -297,27 +309,53 @@ if CONFIG["CPU_ARCH"] == "aarch64" and
CONFIG["OS_TARGET"] == "Linux":
DEFINES["_GNU_SOURCE"] = True
- UNIFIED_SOURCES += [
+ SOURCES += [
-
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/moz_base_capturer_pipewire.cc"
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc",
-+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/scoped_glib.cc",
++
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc",
@@ -5571,11 +5572,12 @@
DEFINES["WEBRTC_USE_PIPEWIRE"] = True
DEFINES["_GNU_SOURCE"] = True
- UNIFIED_SOURCES += [
+ SOURCES += [
-
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/moz_base_capturer_pipewire.cc"
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc",
++
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/scoped_glib.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc",
@@ -5590,11 +5592,12 @@
DEFINES["WEBRTC_USE_PIPEWIRE"] = True
DEFINES["_GNU_SOURCE"] = True
- UNIFIED_SOURCES += [
+ SOURCES += [
-
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/moz_base_capturer_pipewire.cc"
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc",
++
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/scoped_glib.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc",
+
"/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc",
@@ -5605,10 +5608,10 @@
if CONFIG["CPU_ARCH"] == "aarch64" and CONFIG["MOZ_X11"] == "1" and
CONFIG["OS_TARGET"] == "Linux":
diff --git
a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_options.cc
b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_options.cc
-index 8bdc83b76218..ab7932195c85 100644
+index 767dbfefa543..22c59ef4cccd 100644
--- a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_options.cc
+++ b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_options.cc
-@@ -14,33 +14,33 @@
+@@ -17,31 +17,31 @@
#elif defined(WEBRTC_WIN)
#include "modules/desktop_capture/win/full_screen_win_application_handler.h"
#endif
@@ -5617,8 +5620,6 @@
#include "modules/desktop_capture/linux/wayland/shared_screencast_stream.h"
#endif
- #include "rtc_base/ref_counted_object.h"
-
namespace webrtc {
DesktopCaptureOptions::DesktopCaptureOptions() {}
@@ -5645,7 +5646,7 @@
#endif
#if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
diff --git
a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_options.h
b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_options.h
-index 1605d30f82d1..eb5b8a2a8777 100644
+index 4d2a8da334da..bab39ccf5661 100644
--- a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_options.h
+++ b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_options.h
@@ -17,7 +17,7 @@
@@ -5657,7 +5658,7 @@
#include "modules/desktop_capture/linux/wayland/shared_screencast_stream.h"
#endif
-@@ -181,22 +181,20 @@ class RTC_EXPORT DesktopCaptureOptions {
+@@ -181,28 +181,26 @@ class RTC_EXPORT DesktopCaptureOptions {
bool allow_pipewire() const { return allow_pipewire_; }
void set_allow_pipewire(bool allow) { allow_pipewire_ = allow; }
@@ -5669,6 +5670,12 @@
rtc::scoped_refptr<SharedScreenCastStream> stream) {
screencast_stream_ = stream;
}
+
+ void set_width(uint32_t width) { width_ = width; }
+ uint32_t get_width() const { return width_; }
+
+ void set_height(uint32_t height) { height_ = height; }
+ uint32_t get_height() const { return height_; }
-#endif
#endif
@@ -5682,14 +5689,14 @@
// BaseCapturerPipeWire and MouseCursorMonitorPipeWire as cursor information
// is sent together with screen content.
diff --git
a/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc
b/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc
-index 75659a9eb9e2..32578411059b 100644
+index e9158bf0cccf..655ec50ce9d7 100644
---
a/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc
+++
b/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc
-@@ -105,7 +105,7 @@ bool BaseCapturerPipeWire::GetSourceList(SourceList*
sources) {
+@@ -136,7 +136,7 @@ bool BaseCapturerPipeWire::GetSourceList(SourceList*
sources) {
// is often treated as a null/placeholder id, so we shouldn't use that.
// TODO(https://crbug.com/1297671): Reconsider type of ID when plumbing
// token that will enable stream re-use.
-- sources->push_back({1});
+- sources->push_back({source_id_});
+ sources->push_back({PIPEWIRE_ID, 0, PIPEWIRE_NAME});
return true;
}
Added: 0002-Bug-1804973-Wayland-Check-size-for-valid-EGLWindows-.patch
===================================================================
--- 0002-Bug-1804973-Wayland-Check-size-for-valid-EGLWindows-.patch
(rev 0)
+++ 0002-Bug-1804973-Wayland-Check-size-for-valid-EGLWindows-.patch
2023-01-16 18:52:20 UTC (rev 466777)
@@ -0,0 +1,25 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: stransky <[email protected]>
+Date: Thu, 15 Dec 2022 08:09:22 +0000
+Subject: [PATCH] Bug 1804973 [Wayland] Check size for valid EGLWindows only
+ r=emilio
+
+Differential Revision: https://phabricator.services.mozilla.com/D164651
+---
+ widget/gtk/MozContainerWayland.cpp | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/widget/gtk/MozContainerWayland.cpp
b/widget/gtk/MozContainerWayland.cpp
+index 954c650af533..2a4a492077c3 100644
+--- a/widget/gtk/MozContainerWayland.cpp
++++ b/widget/gtk/MozContainerWayland.cpp
+@@ -704,6 +704,9 @@ bool
moz_container_wayland_egl_window_needs_size_update(MozContainer* container,
+ nsIntSize aSize,
+ int aScale) {
+ MozContainerWayland* wl_container = &container->wl_container;
++ if (!wl_container->eglwindow) {
++ return false;
++ }
+ if (wl_container->buffer_scale != aScale) {
+ return true;
+ }
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2023-01-16 18:49:40 UTC (rev 466776)
+++ PKGBUILD 2023-01-16 18:52:20 UTC (rev 466777)
@@ -3,7 +3,7 @@
# Contributor: Jakub Schmidtke <[email protected]>
pkgname=firefox
-pkgver=108.0.2
+pkgver=109.0
pkgrel=1
pkgdesc="Standalone web browser from mozilla.org"
url="https://www.mozilla.org/firefox/"
@@ -67,20 +67,23 @@
$pkgname.desktop
identity-icons-brand.svg
0001-libwebrtc-screen-cast-sync.patch
+ 0002-Bug-1804973-Wayland-Check-size-for-valid-EGLWindows-.patch
)
validpgpkeys=(
'14F26682D0916CDD81E37B6D61B7B526D98F0353' # Mozilla Software Releases
<[email protected]>
)
-sha256sums=('42e6d6b27ad0694a4fc9dd736888ad36c99eb2dbcce96e134584805d644ca300'
+sha256sums=('0678a03b572b5992fb85f0923a25b236acf81e5ea2c08e549b63a56076a69351'
'SKIP'
'298eae9de76ec53182f38d5c549d0379569916eebf62149f9d7f4a7edef36abf'
'a9b8b4a0a1f4a7b4af77d5fc70c2686d624038909263c795ecc81e0aec7711e9'
- '5c164f6dfdf2d97f3f317e417aaa2e6ae46a9b3a160c3162d5073fe39d203286')
-b2sums=('8032c4250c975dfbe159eac8db3a8909c45b9ceccba206f7a5aba9650bcb40df658a50890efa5572d9cacc22411d6f1a2253905fff2d0791604debfebd986c29'
+ 'b1ce6936749ab1614bbce4fddc87058341ed207dde77af609fdc5ac83538517a'
+ '34439dfb17371520e5e99444096ded97325ab2559b9039ae16055975d015ac51')
+b2sums=('56ec8c49f0dd1cb4ba29afb5d68fd724614b993b2a1a59b9c03bf6349bae980d558ef18dbe2170af59f3e690308b753a88619e2abe48db58af5b7fcbecfa03f5'
'SKIP'
'e18f2c22e394ca3b6758bc130245b254947e4d15921be3da443d6d7c3c4b0d22ead1b39fbc10a4f896edd19e2a1dffbd1cbb34dc4beb0621a6ddb70ccc53b3a7'
'63a8dd9d8910f9efb353bed452d8b4b2a2da435857ccee083fc0c557f8c4c1339ca593b463db320f70387a1b63f1a79e709e9d12c69520993e26d85a3d742e34'
-
'28a22a11572fba86bf8412f86a2eca8dc34ce42e790d9c9b1e0b1a66959b2b0240353e0aef22741d6d2baa08bc7ff35ddfd3770b706654ffa8089a26495e4ee3')
+
'3a7de17f0a56c4ccbbd4754a63a8798f787e87acc947b0fc0c1e5086c99337979b7f66a741fdc5475b34085eaf80dbc99d742c22a95d6ed412e38012794a44c9'
+
'ad4618e6c0e6ac8cca387579f26e8f9a0eaab8e6f8ac8f9e2ad179bce09f5247848a9ce78d4042f3e400771f9c0914e8d6504f792d002481529e755f5eaf8916')
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
@@ -103,6 +106,9 @@
#
https://src.fedoraproject.org/rpms/firefox/blob/rawhide/f/libwebrtc-screen-cast-sync.patch
patch -Np1 -i ../0001-libwebrtc-screen-cast-sync.patch
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1804973
+ patch -Np1 -i
../0002-Bug-1804973-Wayland-Check-size-for-valid-EGLWindows-.patch
+
echo -n "$_google_api_key" >google-api-key
echo -n "$_mozilla_api_key" >mozilla-api-key