From 64ec8e808d8076a6109a7e6e13b4cdcb5c239be8 Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Thu, 4 Nov 2021 08:49:47 +0200 Subject: [PATCH] firefox: 94.0 --- extra/firefox/checksums | 4 +- extra/firefox/patches/no-x11.patch | 309 ++-- extra/firefox/version | 2 +- testing/firefox/README | 126 -- testing/firefox/build | 119 -- testing/firefox/checksums | 10 - testing/firefox/depends | 32 - testing/firefox/patches/fix-clang-as.patch | 48 - .../firefox/patches/fix-linux-header.patch | 12 - testing/firefox/patches/no-fribidi.patch | 12 - testing/firefox/patches/no-x11.patch | 1446 ----------------- testing/firefox/post-install | 12 - testing/firefox/sources | 10 - testing/firefox/version | 1 - 14 files changed, 161 insertions(+), 1982 deletions(-) delete mode 100644 testing/firefox/README delete mode 100755 testing/firefox/build delete mode 100644 testing/firefox/checksums delete mode 100644 testing/firefox/depends delete mode 100644 testing/firefox/patches/fix-clang-as.patch delete mode 100644 testing/firefox/patches/fix-linux-header.patch delete mode 100644 testing/firefox/patches/no-fribidi.patch delete mode 100644 testing/firefox/patches/no-x11.patch delete mode 100755 testing/firefox/post-install delete mode 100644 testing/firefox/sources delete mode 100644 testing/firefox/version diff --git a/extra/firefox/checksums b/extra/firefox/checksums index 0199714b..f993c71e 100644 --- a/extra/firefox/checksums +++ b/extra/firefox/checksums @@ -1,4 +1,4 @@ -a78f080f5849bc284b84299f3540934a12e961a7ea368b592ae6576ea1f97102 +b7bb8c5fcc74a74e9d2b55d1e9415b891305fe86520fb854cec25024d7e5de67 f0611136bee505811e9ca11ca7ac188ef5323a8e2ef19cffd3edb3cf08fd791e 3dce6601b495f5b3d45b59f7d2492a340ee7e84b5beca17e48f862502bd5603f f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369 @@ -6,5 +6,5 @@ f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369 42b3c7a29e61905be0e7425b8786870eb1d1c9e0f74c3f0909521b2ac52ac702 2b5732c15e7eade2a01ad9794de372f25fbb75e4e2f53bce089548bcbbba20d1 4b06181475f667ae2851540552ade56d5257a03cd21da588e2eb1e538bbc8176 -e4a1393ae2b068cab4e1ad47aca10bdbecb5b32d66ff3a61288da8b1dab5a114 +bb20235914fd82976508eb72bf4810b467d3ba1d47a1031e00f7995b9933ae56 47d30d0b73d3174f8ebbb6d686892fa5435beb3355ddacded70194ef0249ba51 diff --git a/extra/firefox/patches/no-x11.patch b/extra/firefox/patches/no-x11.patch index 57facf35..1c4ac398 100644 --- a/extra/firefox/patches/no-x11.patch +++ b/extra/firefox/patches/no-x11.patch @@ -1,10 +1,10 @@ diff --git a/gfx/angle/checkout/include/EGL/eglplatform.h b/gfx/angle/checkout/include/EGL/eglplatform.h -index d1cae17724..3ae13b0a5b 100644 +index 9ebaf00a9b..f1cc658219 100644 --- a/gfx/angle/checkout/include/EGL/eglplatform.h +++ b/gfx/angle/checkout/include/EGL/eglplatform.h -@@ -122,7 +122,8 @@ typedef intptr_t EGLNativeDisplayType; - typedef intptr_t EGLNativePixmapType; - typedef intptr_t EGLNativeWindowType; +@@ -115,7 +115,8 @@ typedef void *EGLNativeDisplayType; + typedef khronos_uintptr_t EGLNativePixmapType; + typedef khronos_uintptr_t EGLNativeWindowType; -#elif defined(__unix__) || defined(USE_X11) +#elif defined(__unix__) @@ -12,7 +12,7 @@ index d1cae17724..3ae13b0a5b 100644 /* X11 (tentative) */ #include -@@ -131,6 +132,11 @@ typedef intptr_t EGLNativeWindowType; +@@ -124,6 +125,11 @@ typedef khronos_uintptr_t EGLNativeWindowType; typedef Display *EGLNativeDisplayType; typedef Pixmap EGLNativePixmapType; typedef Window EGLNativeWindowType; @@ -25,7 +25,7 @@ index d1cae17724..3ae13b0a5b 100644 #elif defined(__APPLE__) diff --git a/gfx/cairo/cairo/src/cairo-features.h b/gfx/cairo/cairo/src/cairo-features.h -index f7379aa895..ceae4f2d71 100644 +index cfed9d9a2f..fd1eb869d3 100644 --- a/gfx/cairo/cairo/src/cairo-features.h +++ b/gfx/cairo/cairo/src/cairo-features.h @@ -55,8 +55,8 @@ @@ -35,7 +35,7 @@ index f7379aa895..ceae4f2d71 100644 -#ifdef MOZ_X11 #define CAIRO_HAS_PS_SURFACE 1 +#ifdef MOZ_X11 - #define CAIRO_HAS_XLIB_XRENDER_SURFACE 1 + #define CAIRO_HAS_XLIB_XRENDER_SURFACE 0 #define CAIRO_HAS_XLIB_SURFACE 1 #endif diff --git a/gfx/gl/GLContextProvider.h b/gfx/gl/GLContextProvider.h @@ -154,10 +154,10 @@ index f5a57b9c4d..72091c3a4f 100644 namespace mozilla { diff --git a/gfx/thebes/gfxPlatformGtk.cpp b/gfx/thebes/gfxPlatformGtk.cpp -index 95fdcc6ad6..4907726773 100644 +index 197d33b85f..0d3cd3d7f2 100644 --- a/gfx/thebes/gfxPlatformGtk.cpp +++ b/gfx/thebes/gfxPlatformGtk.cpp -@@ -30,7 +30,9 @@ +@@ -31,7 +31,9 @@ #include "mozilla/FontPropertyTypes.h" #include "mozilla/gfx/2D.h" #include "mozilla/gfx/Logging.h" @@ -167,17 +167,17 @@ index 95fdcc6ad6..4907726773 100644 #include "mozilla/Monitor.h" #include "mozilla/Preferences.h" #include "mozilla/StaticPrefs_gfx.h" -@@ -62,6 +64,9 @@ +@@ -63,6 +65,9 @@ # include "mozilla/widget/nsWaylandDisplay.h" # include "mozilla/widget/DMABufLibWrapper.h" # include "mozilla/StaticPrefs_widget.h" +# ifdef MOZ_WIDGET_GTK -+# include "mozilla/WidgetUtilsGtk.h" ++# include "mozilla/WidgetUtilsGtk.h" +# endif #endif #define GDK_PIXMAP_SIZE_MAX 32767 -@@ -97,7 +102,11 @@ gfxPlatformGtk::gfxPlatformGtk() { +@@ -98,7 +103,11 @@ gfxPlatformGtk::gfxPlatformGtk() { } mMaxGenericSubstitutions = UNINITIALIZED_VALUE; @@ -189,7 +189,7 @@ index 95fdcc6ad6..4907726773 100644 if (XRE_IsParentProcess()) { InitX11EGLConfig(); if (IsWaylandDisplay() || gfxConfig::IsEnabled(Feature::X11_EGL)) { -@@ -128,7 +137,7 @@ gfxPlatformGtk::gfxPlatformGtk() { +@@ -125,7 +134,7 @@ gfxPlatformGtk::gfxPlatformGtk() { // Bug 1714483: Force disable FXAA Antialiasing on NV drivers. This is a // temporary workaround for a driver bug. @@ -233,7 +233,7 @@ index 3f483d180e..c3ef71a71c 100644 elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows": diff --git a/gfx/webrender_bindings/RenderCompositorOGLSWGL.cpp b/gfx/webrender_bindings/RenderCompositorOGLSWGL.cpp -index b373244235..62e8251422 100644 +index cf3fc3c2ca..2748887361 100644 --- a/gfx/webrender_bindings/RenderCompositorOGLSWGL.cpp +++ b/gfx/webrender_bindings/RenderCompositorOGLSWGL.cpp @@ -27,7 +27,9 @@ @@ -247,17 +247,11 @@ index b373244235..62e8251422 100644 namespace mozilla { diff --git a/toolkit/components/remote/moz.build b/toolkit/components/remote/moz.build -index 235580d6b7..b407dce197 100644 +index c1853a9f4d..b407dce197 100644 --- a/toolkit/components/remote/moz.build +++ b/toolkit/components/remote/moz.build -@@ -13,12 +13,15 @@ SOURCES += [ - - if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": - SOURCES += [ -- "nsGTKRemoteServer.cpp", +@@ -16,6 +16,12 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": "nsUnixRemoteServer.cpp", -- "nsXRemoteClient.cpp", -- "nsXRemoteServer.cpp", "RemoteUtils.cpp", ] + if CONFIG["MOZ_X11"]: @@ -269,16 +263,28 @@ index 235580d6b7..b407dce197 100644 if CONFIG["MOZ_ENABLE_DBUS"]: SOURCES += [ "nsDBusRemoteClient.cpp", +@@ -26,12 +32,6 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": + "nsUnixRemoteServer.h", + "RemoteUtils.h", + ] +- else: +- SOURCES += [ +- "nsGTKRemoteServer.cpp", +- "nsXRemoteClient.cpp", +- "nsXRemoteServer.cpp", +- ] + CXXFLAGS += CONFIG["TK_CFLAGS"] + + if CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows": diff --git a/toolkit/components/remote/nsRemoteService.cpp b/toolkit/components/remote/nsRemoteService.cpp -index 72c5a50a30..4eecad890d 100644 +index b2499d8191..5448b8f4b4 100644 --- a/toolkit/components/remote/nsRemoteService.cpp +++ b/toolkit/components/remote/nsRemoteService.cpp -@@ -12,12 +12,18 @@ +@@ -12,12 +12,17 @@ #ifdef MOZ_WIDGET_GTK # include "mozilla/WidgetUtilsGtk.h" -# include "nsGTKRemoteServer.h" --# include "nsXRemoteClient.h" +# ifdef MOZ_X11 +# include "nsGTKRemoteServer.h" +# include "nsXRemoteClient.h" @@ -286,43 +292,46 @@ index 72c5a50a30..4eecad890d 100644 # ifdef MOZ_ENABLE_DBUS # include "nsDBusRemoteServer.h" # include "nsDBusRemoteClient.h" - # endif +-# else +-# include "nsXRemoteClient.h" ++# endif +# ifdef MOZ_WAYLAND +# include +# include "nsRemoteClient.h" -+# endif + # endif #elif defined(XP_WIN) # include "nsWinRemoteServer.h" - # include "nsWinRemoteClient.h" -@@ -112,9 +118,11 @@ RemoteResult nsRemoteService::StartClient(const char* aDesktopStartupID) { - client = MakeUnique(); +@@ -99,10 +104,11 @@ RemoteResult nsRemoteService::StartClient(const char* aDesktopStartupID) { } + + UniquePtr client; ++ return REMOTE_NOT_FOUND; + #ifdef MOZ_WIDGET_GTK + # if defined(MOZ_ENABLE_DBUS) + client = MakeUnique(); +-# else ++# elif defined(MOZ_X11) + client = MakeUnique(); # endif -+#if defined(MOZ_X11) - if (!client && useX11Remote) { - client = MakeUnique(); - } -+#endif #elif defined(XP_WIN) - client = MakeUnique(); - #elif defined(XP_DARWIN) -@@ -161,9 +169,11 @@ void nsRemoteService::StartupServer() { - mRemoteServer = MakeUnique(); +@@ -143,10 +149,11 @@ void nsRemoteService::StartupServer() { + return; } + ++ return; + #ifdef MOZ_WIDGET_GTK + # if defined(MOZ_ENABLE_DBUS) + mRemoteServer = MakeUnique(); +-# else ++# elif defined(MOZ_X11) + mRemoteServer = MakeUnique(); # endif -+#if defined(MOZ_X11) - if (!mRemoteServer && useX11Remote) { - mRemoteServer = MakeUnique(); - } -+#endif #elif defined(XP_WIN) - mRemoteServer = MakeUnique(); - #elif defined(XP_DARWIN) diff --git a/toolkit/moz.configure b/toolkit/moz.configure -index 56dd7bd195..da3487ce0f 100644 +index f63780b892..deadf892d6 100644 --- a/toolkit/moz.configure +++ b/toolkit/moz.configure -@@ -1170,34 +1170,8 @@ set_define("MOZ_RAW", depends_if("--enable-raw")(lambda _: True)) +@@ -1170,34 +1170,6 @@ set_define("MOZ_RAW", depends_if("--enable-raw")(lambda _: True)) # X11 # ============================================================== @@ -338,7 +347,7 @@ index 56dd7bd195..da3487ce0f 100644 - "xcb-shm", - "x11-xcb", - "xext", -- "xrender", +- "xrandr >= 1.4.0", - ] - if webrtc: - # third_party/libwebrtc/webrtc/webrtc_gn/moz.build adds those @@ -354,13 +363,11 @@ index 56dd7bd195..da3487ce0f 100644 - - -pkg_check_modules("MOZ_X11", x11_libs, when=toolkit_gtk) -+ -+ # ASan Reporter Addon diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp -index bb14d84338..6353cd98a5 100644 +index 332f340179..070f3128e0 100644 --- a/toolkit/xre/nsAppRunner.cpp +++ b/toolkit/xre/nsAppRunner.cpp @@ -321,6 +321,7 @@ nsString gProcessStartupShortcut; @@ -450,40 +457,19 @@ index 20eb3634f3..10fb94a99f 100644 // PCompositorWidgetParent. class CompositorWidgetParent; diff --git a/widget/gtk/MozContainer.cpp b/widget/gtk/MozContainer.cpp -index 95832dc03d..94a992beb3 100644 +index 95832dc03d..a21d2d2b40 100644 --- a/widget/gtk/MozContainer.cpp +++ b/widget/gtk/MozContainer.cpp -@@ -9,7 +9,12 @@ +@@ -9,7 +9,9 @@ #include #include +#ifdef MOZ_X11 #include -+#endif -+#ifdef MOZ_WAYLAND -+#include "mozilla/WidgetUtilsGtk.h" +#endif #include #include "mozilla/WidgetUtilsGtk.h" -diff --git a/widget/gtk/WindowSurfaceWayland.cpp b/widget/gtk/WindowSurfaceWayland.cpp -index 1ed335300e..ca80c4685b 100644 ---- a/widget/gtk/WindowSurfaceWayland.cpp -+++ b/widget/gtk/WindowSurfaceWayland.cpp -@@ -15,11 +15,13 @@ - #include "mozilla/gfx/Tools.h" - #include "gfx2DGlue.h" - #include "gfxPlatform.h" -+#include "gfxImageSurface.h" - #include "MozContainer.h" - #include "mozilla/ScopeExit.h" - #include "mozilla/StaticPrefs_widget.h" - #include "mozilla/WidgetUtils.h" - #include "nsTArray.h" -+#include "prenv.h" - - #ifdef MOZ_LOGGING - # include "mozilla/Logging.h" diff --git a/widget/gtk/components.conf b/widget/gtk/components.conf index 38c07bd812..a125d8d275 100644 --- a/widget/gtk/components.conf @@ -498,10 +484,10 @@ index 38c07bd812..a125d8d275 100644 { 'js_name': 'clipboard', diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build -index d7216a6927..907405006e 100644 +index 291e3a78c8..7955b84d0c 100644 --- a/widget/gtk/moz.build +++ b/widget/gtk/moz.build -@@ -102,22 +102,26 @@ if CONFIG["MOZ_WAYLAND"]: +@@ -101,22 +101,26 @@ if CONFIG["MOZ_WAYLAND"]: if CONFIG["MOZ_X11"]: UNIFIED_SOURCES += [ @@ -538,7 +524,7 @@ index d7216a6927..907405006e 100644 if CONFIG["NS_PRINTING"]: UNIFIED_SOURCES += [ -@@ -146,7 +150,7 @@ LOCAL_INCLUDES += [ +@@ -145,7 +149,7 @@ LOCAL_INCLUDES += [ "/widget/headless", ] @@ -565,7 +551,7 @@ index 677f9b3561..b8cb7de58e 100644 MOZ_EXPORT Bool XShmQueryExtension(Display* aDisplay) { return False; } +#endif diff --git a/widget/gtk/nsClipboard.cpp b/widget/gtk/nsClipboard.cpp -index 75ad319a1e..f27e1d6659 100644 +index 48160b39a4..5b99ba942a 100644 --- a/widget/gtk/nsClipboard.cpp +++ b/widget/gtk/nsClipboard.cpp @@ -9,7 +9,9 @@ @@ -606,6 +592,21 @@ index 75ad319a1e..f27e1d6659 100644 } else { NS_WARNING("Missing nsRetrievalContext for nsClipboard!"); return NS_OK; +@@ -347,14 +347,6 @@ nsClipboard::GetData(nsITransferable* aTransferable, int32_t aWhichClipboard) { + } + #endif + +- // Filter out MIME types on X11 to prevent unwanted conversions, +- // see Bug 1611407 +- if (widget::GdkIsX11Display()) { +- if (!FilterImportedFlavors(aWhichClipboard, flavors)) { +- return NS_OK; +- } +- } +- + for (uint32_t i = 0; i < flavors.Length(); i++) { + nsCString& flavorStr = flavors[i]; + diff --git a/widget/gtk/nsDeviceContextSpecG.cpp b/widget/gtk/nsDeviceContextSpecG.cpp index 3948c15cc5..968252b896 100644 --- a/widget/gtk/nsDeviceContextSpecG.cpp @@ -647,7 +648,7 @@ index 3948c15cc5..968252b896 100644 #define DECLARE_KNOWN_MONOCHROME_SETTING(key_, value_) {"cups-" key_, value_}, diff --git a/widget/gtk/nsDragService.cpp b/widget/gtk/nsDragService.cpp -index 652facbe79..9ad7b37f90 100644 +index fcd4236261..659c06260c 100644 --- a/widget/gtk/nsDragService.cpp +++ b/widget/gtk/nsDragService.cpp @@ -23,7 +23,11 @@ @@ -662,7 +663,7 @@ index 652facbe79..9ad7b37f90 100644 #include "nsCRT.h" #include "mozilla/BasicEvents.h" #include "mozilla/Services.h" -@@ -33,7 +37,6 @@ +@@ -34,7 +38,6 @@ #include "mozilla/WidgetUtilsGtk.h" #include "GRefPtr.h" @@ -670,7 +671,7 @@ index 652facbe79..9ad7b37f90 100644 #include "gfxContext.h" #include "nsImageToPixbuf.h" #include "nsPresContext.h" -@@ -50,6 +53,8 @@ +@@ -52,6 +55,8 @@ #ifdef MOZ_WAYLAND # include "nsClipboardWayland.h" # include "gfxPlatformGtk.h" @@ -680,7 +681,7 @@ index 652facbe79..9ad7b37f90 100644 using namespace mozilla; diff --git a/widget/gtk/nsGtkKeyUtils.cpp b/widget/gtk/nsGtkKeyUtils.cpp -index f4c7030a37..a7489daf4d 100644 +index f4c7030a37..a54d14988f 100644 --- a/widget/gtk/nsGtkKeyUtils.cpp +++ b/widget/gtk/nsGtkKeyUtils.cpp @@ -12,10 +12,12 @@ @@ -718,7 +719,7 @@ index f4c7030a37..a7489daf4d 100644 Init(); } -@@ -365,16 +369,18 @@ void KeymapWrapper::Init() { +@@ -365,16 +369,19 @@ void KeymapWrapper::Init() { mModifierKeys.Clear(); memset(mModifierMasks, 0, sizeof(mModifierMasks)); @@ -733,7 +734,7 @@ index f4c7030a37..a7489daf4d 100644 InitBySystemSettingsWayland(); - } #endif -- + +#ifdef MOZ_X11 + } gdk_window_add_filter(nullptr, FilterEvents, this); @@ -741,7 +742,7 @@ index f4c7030a37..a7489daf4d 100644 MOZ_LOG(gKeymapWrapperLog, LogLevel::Info, ("%p Init, CapsLock=0x%X, NumLock=0x%X, " -@@ -387,6 +393,7 @@ void KeymapWrapper::Init() { +@@ -387,6 +394,7 @@ void KeymapWrapper::Init() { GetModifierMask(SUPER), GetModifierMask(HYPER))); } @@ -749,7 +750,7 @@ index f4c7030a37..a7489daf4d 100644 void KeymapWrapper::InitXKBExtension() { PodZero(&mKeyboardState); -@@ -619,6 +626,7 @@ void KeymapWrapper::InitBySystemSettingsX11() { +@@ -619,6 +627,7 @@ void KeymapWrapper::InitBySystemSettingsX11() { XFreeModifiermap(xmodmap); XFree(xkeymap); } @@ -757,7 +758,7 @@ index f4c7030a37..a7489daf4d 100644 #ifdef MOZ_WAYLAND void KeymapWrapper::SetModifierMask(xkb_keymap* aKeymap, -@@ -776,7 +784,9 @@ void KeymapWrapper::InitBySystemSettingsWayland() { +@@ -776,7 +785,9 @@ void KeymapWrapper::InitBySystemSettingsWayland() { #endif KeymapWrapper::~KeymapWrapper() { @@ -767,7 +768,7 @@ index f4c7030a37..a7489daf4d 100644 if (mOnKeysChangedSignalHandle) { g_signal_handler_disconnect(mGdkKeymap, mOnKeysChangedSignalHandle); } -@@ -787,6 +797,7 @@ KeymapWrapper::~KeymapWrapper() { +@@ -787,6 +798,7 @@ KeymapWrapper::~KeymapWrapper() { MOZ_LOG(gKeymapWrapperLog, LogLevel::Info, ("%p Destructor", this)); } @@ -775,7 +776,7 @@ index f4c7030a37..a7489daf4d 100644 /* static */ GdkFilterReturn KeymapWrapper::FilterEvents(GdkXEvent* aXEvent, GdkEvent* aGdkEvent, -@@ -900,6 +911,7 @@ GdkFilterReturn KeymapWrapper::FilterEvents(GdkXEvent* aXEvent, +@@ -900,6 +912,7 @@ GdkFilterReturn KeymapWrapper::FilterEvents(GdkXEvent* aXEvent, return GDK_FILTER_CONTINUE; } @@ -783,7 +784,7 @@ index f4c7030a37..a7489daf4d 100644 static void ResetBidiKeyboard() { // Reset the bidi keyboard settings for the new GdkKeymap -@@ -1760,6 +1772,7 @@ void KeymapWrapper::InitKeyEvent(WidgetKeyboardEvent& aKeyEvent, +@@ -1760,6 +1773,7 @@ void KeymapWrapper::InitKeyEvent(WidgetKeyboardEvent& aKeyEvent, // state. It means if there're some pending modifier key press or // key release events, the result isn't what we want. guint modifierState = aGdkKeyEvent->state; @@ -791,7 +792,7 @@ index f4c7030a37..a7489daf4d 100644 GdkDisplay* gdkDisplay = gdk_display_get_default(); if (aGdkKeyEvent->is_modifier && GdkIsX11Display(gdkDisplay)) { Display* display = gdk_x11_display_get_xdisplay(gdkDisplay); -@@ -1777,6 +1790,7 @@ void KeymapWrapper::InitKeyEvent(WidgetKeyboardEvent& aKeyEvent, +@@ -1777,6 +1791,7 @@ void KeymapWrapper::InitKeyEvent(WidgetKeyboardEvent& aKeyEvent, } } } @@ -799,7 +800,7 @@ index f4c7030a37..a7489daf4d 100644 InitInputEvent(aKeyEvent, modifierState); switch (aGdkKeyEvent->keyval) { -@@ -2023,6 +2037,7 @@ bool KeymapWrapper::IsLatinGroup(guint8 aGroup) { +@@ -2023,6 +2038,7 @@ bool KeymapWrapper::IsLatinGroup(guint8 aGroup) { return result; } @@ -807,7 +808,7 @@ index f4c7030a37..a7489daf4d 100644 bool KeymapWrapper::IsAutoRepeatableKey(guint aHardwareKeyCode) { uint8_t indexOfArray = aHardwareKeyCode / 8; MOZ_ASSERT(indexOfArray < ArrayLength(mKeyboardState.auto_repeats), -@@ -2030,6 +2045,7 @@ bool KeymapWrapper::IsAutoRepeatableKey(guint aHardwareKeyCode) { +@@ -2030,6 +2046,7 @@ bool KeymapWrapper::IsAutoRepeatableKey(guint aHardwareKeyCode) { char bitMask = 1 << (aHardwareKeyCode % 8); return (mKeyboardState.auto_repeats[indexOfArray] & bitMask) != 0; } @@ -884,7 +885,7 @@ index 0050af3af3..c2c02e59ff 100644 WaylandWindowHandleExportedData* data; diff --git a/widget/gtk/nsUserIdleServiceGTK.cpp b/widget/gtk/nsUserIdleServiceGTK.cpp -index 884d52a6ca..6a05d61e7a 100644 +index 884d52a6ca..89bdc16b1a 100644 --- a/widget/gtk/nsUserIdleServiceGTK.cpp +++ b/widget/gtk/nsUserIdleServiceGTK.cpp @@ -17,6 +17,7 @@ using mozilla::LogLevel; @@ -920,9 +921,9 @@ index 884d52a6ca..6a05d61e7a 100644 } -nsUserIdleServiceGTK::nsUserIdleServiceGTK() : mXssInfo(nullptr) { -+nsUserIdleServiceGTK::nsUserIdleServiceGTK() ++nsUserIdleServiceGTK::nsUserIdleServiceGTK() +#ifdef MOZ_X11 -+: mXssInfo(nullptr) ++: mXssInfo(nullptr) +#endif +{ Initialize(); @@ -1013,7 +1014,7 @@ index d649c7e0bf..70b47d5124 100644 nsresult nsWidgetGtk2ModuleCtor() { return nsAppShellInit(); } diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp -index 378f4cd116..4bc036bbeb 100644 +index aec5588fae..2df8558a4f 100644 --- a/widget/gtk/nsWindow.cpp +++ b/widget/gtk/nsWindow.cpp @@ -58,7 +58,6 @@ @@ -1082,7 +1083,28 @@ index 378f4cd116..4bc036bbeb 100644 } // namespace mozilla -@@ -2408,11 +2414,13 @@ void nsWindow::NativeMove() { +@@ -934,16 +940,20 @@ bool nsWindow::WidgetTypeSupportsAcceleration() { + if (mWindowType == eWindowType_popup) { + // See Bug 1731125. NVIDIA drivers does not provide transparent + // visual on X11/EGL. ++#ifdef MOZ_X11 + if (GdkIsX11Display() && gfxVars::UseEGL()) { + return false; + } ++#endif + return HasRemoteContent() && mCompositedScreen; + } + // Workaround for Bug 1730822 ++#ifdef MOZ_X11 + if (mWindowType == eWindowType_child && GdkIsX11Display() && + gfxVars::UseEGL()) { + return false; + } ++#endif + + return true; + } +@@ -2479,11 +2489,13 @@ void nsWindow::NativeMove() { LOG(("nsWindow::NativeMove [%p] %d %d\n", (void*)this, point.x, point.y)); @@ -1096,7 +1118,7 @@ index 378f4cd116..4bc036bbeb 100644 if (IsWaylandPopup()) { GdkRectangle size = DevicePixelsToGdkSizeRoundUp(mBounds.Size()); -@@ -2496,6 +2504,7 @@ void nsWindow::SetSizeMode(nsSizeMode aMode) { +@@ -2567,6 +2579,7 @@ void nsWindow::SetSizeMode(nsSizeMode aMode) { } static bool GetWindowManagerName(GdkWindow* gdk_window, nsACString& wmName) { @@ -1104,7 +1126,7 @@ index 378f4cd116..4bc036bbeb 100644 if (!GdkIsX11Display()) { return false; } -@@ -2562,6 +2571,7 @@ static bool GetWindowManagerName(GdkWindow* gdk_window, nsACString& wmName) { +@@ -2633,6 +2646,7 @@ static bool GetWindowManagerName(GdkWindow* gdk_window, nsACString& wmName) { } wmName = reinterpret_cast(prop_return); @@ -1112,7 +1134,7 @@ index 378f4cd116..4bc036bbeb 100644 return true; } -@@ -2619,6 +2629,7 @@ void nsWindow::GetWorkspaceID(nsAString& workspaceID) { +@@ -2690,6 +2704,7 @@ void nsWindow::GetWorkspaceID(nsAString& workspaceID) { if (!GdkIsX11Display() || !mShell) { return; } @@ -1120,7 +1142,7 @@ index 378f4cd116..4bc036bbeb 100644 // Get the gdk window for this widget. GdkWindow* gdk_window = gtk_widget_get_window(mShell); if (!gdk_window) { -@@ -2647,9 +2658,11 @@ void nsWindow::GetWorkspaceID(nsAString& workspaceID) { +@@ -2718,9 +2733,11 @@ void nsWindow::GetWorkspaceID(nsAString& workspaceID) { workspaceID.AppendInt((int32_t)wm_desktop[0]); g_free(wm_desktop); @@ -1132,7 +1154,7 @@ index 378f4cd116..4bc036bbeb 100644 nsresult rv = NS_OK; int32_t workspaceID = workspaceIDStr.ToInteger(&rv); if (NS_FAILED(rv) || !workspaceID || !GdkIsX11Display() || !mShell) { -@@ -2689,6 +2702,7 @@ void nsWindow::MoveToWorkspace(const nsAString& workspaceIDStr) { +@@ -2760,6 +2777,7 @@ void nsWindow::MoveToWorkspace(const nsAString& workspaceIDStr) { SubstructureNotifyMask | SubstructureRedirectMask, &xevent); XFlush(xdisplay); @@ -1140,7 +1162,7 @@ index 378f4cd116..4bc036bbeb 100644 } using SetUserTimeFunc = void (*)(GdkWindow*, guint32); -@@ -2729,9 +2743,13 @@ guint32 nsWindow::GetLastUserInputTime() { +@@ -2800,9 +2818,13 @@ guint32 nsWindow::GetLastUserInputTime() { // button and key releases. Therefore use the most recent of // gdk_x11_display_get_user_time and the last time that we have seen. GdkDisplay* gdkDisplay = gdk_display_get_default(); @@ -1154,7 +1176,7 @@ index 378f4cd116..4bc036bbeb 100644 if (sLastUserInputTime != GDK_CURRENT_TIME && TimestampIsNewerThan(sLastUserInputTime, timestamp)) { -@@ -2889,6 +2907,7 @@ void nsWindow::UpdateClientOffsetFromFrameExtents() { +@@ -2960,6 +2982,7 @@ void nsWindow::UpdateClientOffsetFromFrameExtents() { return; } @@ -1162,7 +1184,7 @@ index 378f4cd116..4bc036bbeb 100644 GdkAtom cardinal_atom = gdk_x11_xatom_to_atom(XA_CARDINAL); GdkAtom type_returned; -@@ -2914,6 +2933,7 @@ void nsWindow::UpdateClientOffsetFromFrameExtents() { +@@ -2985,6 +3008,7 @@ void nsWindow::UpdateClientOffsetFromFrameExtents() { mClientOffset = nsIntPoint(left, top); } @@ -1170,7 +1192,7 @@ index 378f4cd116..4bc036bbeb 100644 // Send a WindowMoved notification. This ensures that BrowserParent // picks up the new client offset and sends it to the child process -@@ -2932,6 +2952,7 @@ LayoutDeviceIntPoint nsWindow::GetClientOffset() { +@@ -3003,6 +3027,7 @@ LayoutDeviceIntPoint nsWindow::GetClientOffset() { gboolean nsWindow::OnPropertyNotifyEvent(GtkWidget* aWidget, GdkEventProperty* aEvent) { @@ -1178,16 +1200,15 @@ index 378f4cd116..4bc036bbeb 100644 if (aEvent->atom == gdk_atom_intern("_NET_FRAME_EXTENTS", FALSE)) { UpdateClientOffsetFromFrameExtents(); return FALSE; -@@ -2940,7 +2961,7 @@ gboolean nsWindow::OnPropertyNotifyEvent(GtkWidget* aWidget, - if (GetCurrentTimeGetter()->PropertyNotifyHandler(aWidget, aEvent)) { +@@ -3012,6 +3037,7 @@ gboolean nsWindow::OnPropertyNotifyEvent(GtkWidget* aWidget, return TRUE; } -- + +#endif return FALSE; } -@@ -3078,9 +3099,11 @@ void* nsWindow::GetNativeData(uint32_t aDataType) { +@@ -3149,9 +3175,11 @@ void* nsWindow::GetNativeData(uint32_t aDataType) { return GetToplevelWidget(); case NS_NATIVE_WINDOW_WEBRTC_DEVICE_ID: @@ -1199,7 +1220,7 @@ index 378f4cd116..4bc036bbeb 100644 NS_WARNING( "nsWindow::GetNativeData(): NS_NATIVE_WINDOW_WEBRTC_DEVICE_ID is not " "handled on Wayland!"); -@@ -3100,9 +3123,11 @@ void* nsWindow::GetNativeData(uint32_t aDataType) { +@@ -3171,9 +3199,11 @@ void* nsWindow::GetNativeData(uint32_t aDataType) { case NS_NATIVE_OPENGL_CONTEXT: return nullptr; case NS_NATIVE_EGL_WINDOW: { @@ -1211,21 +1232,16 @@ index 378f4cd116..4bc036bbeb 100644 #ifdef MOZ_WAYLAND if (mContainer) { return moz_container_wayland_get_egl_window(mContainer, -@@ -3425,8 +3450,13 @@ gboolean nsWindow::OnExposeEvent(cairo_t* cr) { - nsIWidgetListener* listener = GetListener(); +@@ -3497,7 +3527,7 @@ gboolean nsWindow::OnExposeEvent(cairo_t* cr) { if (!listener) return FALSE; -+#ifdef MOZ_X11 LOG(("received expose event [%p] %p 0x%lx (rects follow):\n", this, - mGdkWindow, GdkIsX11Display() ? gdk_x11_window_get_xid(mGdkWindow) : 0)); -+#else -+ LOG(("received expose event [%p] %p 0x%lx (rects follow):\n", this, +- mGdkWindow, GdkIsX11Display() ? gdk_x11_window_get_xid(mGdkWindow) : 0)); + mGdkWindow, 0)); -+#endif LayoutDeviceIntRegion exposeRegion; if (!ExtractExposeRegion(exposeRegion, cr)) { return FALSE; -@@ -3970,6 +4000,7 @@ void nsWindow::OnMotionNotifyEvent(GdkEventMotion* aEvent) { +@@ -4041,6 +4071,7 @@ void nsWindow::OnMotionNotifyEvent(GdkEventMotion* aEvent) { MOZ_ASSERT(gdk_window, "gdk_window_get_toplevel should not return null"); bool canDrag = true; @@ -1233,7 +1249,7 @@ index 378f4cd116..4bc036bbeb 100644 if (GdkIsX11Display()) { // Workaround for https://bugzilla.gnome.org/show_bug.cgi?id=789054 // To avoid crashes disable double-click on WM without _NET_WM_MOVERESIZE. -@@ -3980,6 +4011,7 @@ void nsWindow::OnMotionNotifyEvent(GdkEventMotion* aEvent) { +@@ -4051,6 +4082,7 @@ void nsWindow::OnMotionNotifyEvent(GdkEventMotion* aEvent) { canDrag = false; } } @@ -1241,12 +1257,12 @@ index 378f4cd116..4bc036bbeb 100644 if (canDrag) { gdk_window_begin_move_drag(gdk_window, 1, aEvent->x_root, aEvent->y_root, -@@ -4428,16 +4460,20 @@ TimeStamp nsWindow::GetEventTimeStamp(guint32 aEventTime) { +@@ -4499,16 +4531,20 @@ TimeStamp nsWindow::GetEventTimeStamp(guint32 aEventTime) { int64_t tick = BaseTimeDurationPlatformUtils::TicksFromMilliseconds(timestampTime); eventTimeStamp = TimeStamp::FromSystemTime(tick); - } else { -+ } ++ } +#ifdef MOZ_X11 + else { CurrentX11TimeGetter* getCurrentTime = GetCurrentTimeGetter(); @@ -1263,7 +1279,7 @@ index 378f4cd116..4bc036bbeb 100644 mozilla::CurrentX11TimeGetter* nsWindow::GetCurrentTimeGetter() { MOZ_ASSERT(mGdkWindow, "Expected mGdkWindow to be set"); if (MOZ_UNLIKELY(!mCurrentTimeGetter)) { -@@ -4445,6 +4481,7 @@ mozilla::CurrentX11TimeGetter* nsWindow::GetCurrentTimeGetter() { +@@ -4516,6 +4552,7 @@ mozilla::CurrentX11TimeGetter* nsWindow::GetCurrentTimeGetter() { } return mCurrentTimeGetter.get(); } @@ -1271,7 +1287,7 @@ index 378f4cd116..4bc036bbeb 100644 gboolean nsWindow::OnKeyPressEvent(GdkEventKey* aEvent) { LOG(("OnKeyPressEvent [%p]\n", (void*)this)); -@@ -5029,6 +5066,7 @@ static GdkWindow* CreateGdkWindow(GdkWindow* parent, GtkWidget* widget) { +@@ -5100,6 +5137,7 @@ static GdkWindow* CreateGdkWindow(GdkWindow* parent, GtkWidget* widget) { return window; } @@ -1279,7 +1295,7 @@ index 378f4cd116..4bc036bbeb 100644 // Configure GL visual on X11. We add alpha silently // if we use WebRender to workaround NVIDIA specific Bug 1663273. bool nsWindow::ConfigureX11GLVisual(bool aUseAlpha) { -@@ -5085,6 +5123,7 @@ bool nsWindow::ConfigureX11GLVisual(bool aUseAlpha) { +@@ -5156,6 +5194,7 @@ bool nsWindow::ConfigureX11GLVisual(bool aUseAlpha) { return true; } @@ -1287,23 +1303,16 @@ index 378f4cd116..4bc036bbeb 100644 nsCString nsWindow::GetWindowNodeName() { nsCString nodeName("Unknown"); -@@ -5667,9 +5706,15 @@ nsresult nsWindow::Create(nsIWidget* aParent, nsNativeWidget aNativeParent, - LOG(("nsWindow [%p] type %d %s\n", (void*)this, mWindowType, - mIsPIPWindow ? "PIP window" : "")); +@@ -5740,7 +5779,7 @@ nsresult nsWindow::Create(nsIWidget* aParent, nsNativeWidget aNativeParent, if (mShell) { -+#ifdef MOZ_X11 LOG(("\tmShell %p mContainer %p mGdkWindow %p XID 0x%lx\n", mShell, mContainer, mGdkWindow, - GdkIsX11Display() ? gdk_x11_window_get_xid(mGdkWindow) : 0)); -+#else -+ LOG(("\tmShell %p mContainer %p mGdkWindow %p XID 0x%lx\n", mShell, -+ mContainer, mGdkWindow, +- GdkIsX11Display() ? gdk_x11_window_get_xid(mGdkWindow) : 0)); + 0)); -+#endif } else if (mContainer) { LOG(("\tmContainer %p mGdkWindow %p\n", mContainer, mGdkWindow)); } else if (mGdkWindow) { -@@ -6741,6 +6786,7 @@ void nsWindow::UpdateTitlebarTransparencyBitmap() { +@@ -6812,6 +6851,7 @@ void nsWindow::UpdateTitlebarTransparencyBitmap() { cairo_surface_destroy(surface); } @@ -1311,7 +1320,7 @@ index 378f4cd116..4bc036bbeb 100644 if (!mNeedsShow) { Display* xDisplay = GDK_WINDOW_XDISPLAY(mGdkWindow); Window xDrawable = GDK_WINDOW_XID(mGdkWindow); -@@ -6763,6 +6809,7 @@ void nsWindow::UpdateTitlebarTransparencyBitmap() { +@@ -6834,6 +6874,7 @@ void nsWindow::UpdateTitlebarTransparencyBitmap() { XFreePixmap(xDisplay, maskPixmap); } @@ -1319,7 +1328,7 @@ index 378f4cd116..4bc036bbeb 100644 } void nsWindow::GrabPointer(guint32 aTime) { -@@ -7045,7 +7092,7 @@ static bool IsFullscreenSupported(GtkWidget* aShell) { +@@ -7116,7 +7157,7 @@ static bool IsFullscreenSupported(GtkWidget* aShell) { GdkScreen* screen = gtk_widget_get_screen(aShell); GdkAtom atom = gdk_atom_intern("_NET_WM_STATE_FULLSCREEN", FALSE); return gdk_x11_screen_supports_net_wm_hint(screen, atom); @@ -1328,7 +1337,7 @@ index 378f4cd116..4bc036bbeb 100644 return true; #endif } -@@ -8318,6 +8365,7 @@ bool nsWindow::GetDragInfo(WidgetMouseEvent* aMouseEvent, GdkWindow** aWindow, +@@ -8396,6 +8437,7 @@ bool nsWindow::GetDragInfo(WidgetMouseEvent* aMouseEvent, GdkWindow** aWindow, return false; } @@ -1336,7 +1345,7 @@ index 378f4cd116..4bc036bbeb 100644 if (GdkIsX11Display()) { // Workaround for https://bugzilla.gnome.org/show_bug.cgi?id=789054 // To avoid crashes disable double-click on WM without _NET_WM_MOVERESIZE. -@@ -8333,6 +8381,7 @@ bool nsWindow::GetDragInfo(WidgetMouseEvent* aMouseEvent, GdkWindow** aWindow, +@@ -8411,6 +8453,7 @@ bool nsWindow::GetDragInfo(WidgetMouseEvent* aMouseEvent, GdkWindow** aWindow, } } } @@ -1344,7 +1353,7 @@ index 378f4cd116..4bc036bbeb 100644 // FIXME: It would be nice to have the widget position at the time // of the event, but it's relatively unlikely that the widget has -@@ -9053,6 +9102,7 @@ void nsWindow::GetCompositorWidgetInitData( +@@ -9131,6 +9174,7 @@ void nsWindow::GetCompositorWidgetInitData( mozilla::widget::CompositorWidgetInitData* aInitData) { nsCString displayName; @@ -1352,21 +1361,19 @@ index 378f4cd116..4bc036bbeb 100644 if (GdkIsX11Display() && mXWindow != X11None) { // Make sure the window XID is propagated to X server, we can fail otherwise // in GPU process (Bug 1401634). -@@ -9066,6 +9116,12 @@ void nsWindow::GetCompositorWidgetInitData( +@@ -9144,6 +9188,10 @@ void nsWindow::GetCompositorWidgetInitData( *aInitData = mozilla::widget::GtkCompositorWidgetInitData( (mXWindow != X11None) ? mXWindow : (uintptr_t) nullptr, displayName, isShaped, GdkIsX11Display(), GetClientSize()); +#else + *aInitData = mozilla::widget::GtkCompositorWidgetInitData( -+ (uintptr_t) nullptr, -+ nsCString(), 0, -+ 0, GetClientSize()); ++ (uintptr_t) nullptr, nsCString(), 0, 0, GetClientSize()); +#endif } - #ifdef MOZ_WAYLAND + #ifdef MOZ_X11 diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h -index a8ab09a441..0231377924 100644 +index 4b524a0795..2479298799 100644 --- a/widget/gtk/nsWindow.h +++ b/widget/gtk/nsWindow.h @@ -93,7 +93,9 @@ typedef struct _GdkEventTouchpadPinch GdkEventTouchpadPinch; @@ -1389,7 +1396,7 @@ index a8ab09a441..0231377924 100644 virtual void SetInputContext(const InputContext& aContext, const InputContextAction& aAction) override; -@@ -805,7 +809,9 @@ class nsWindow final : public nsBaseWidget { +@@ -806,7 +810,9 @@ class nsWindow final : public nsBaseWidget { */ RefPtr mIMContext; @@ -1399,7 +1406,7 @@ index a8ab09a441..0231377924 100644 static GtkWindowDecoration sGtkWindowDecoration; static bool sTransparentMainWindow; -@@ -856,6 +862,7 @@ class nsWindow final : public nsBaseWidget { +@@ -857,6 +863,7 @@ class nsWindow final : public nsBaseWidget { void DispatchRestoreEventAccessible(); #endif @@ -1407,7 +1414,7 @@ index a8ab09a441..0231377924 100644 #ifdef MOZ_X11 typedef enum {GTK_WIDGET_COMPOSIDED_DEFAULT = 0, GTK_WIDGET_COMPOSIDED_DISABLED = 1, -@@ -865,7 +872,6 @@ class nsWindow final : public nsBaseWidget { +@@ -866,7 +873,6 @@ class nsWindow final : public nsBaseWidget { Window mXWindow; Visual* mXVisual; int mXDepth; diff --git a/extra/firefox/version b/extra/firefox/version index bf88bdd6..a5777c60 100644 --- a/extra/firefox/version +++ b/extra/firefox/version @@ -1 +1 @@ -93.0 1 +94.0 1 diff --git a/testing/firefox/README b/testing/firefox/README deleted file mode 100644 index a971327c..00000000 --- a/testing/firefox/README +++ /dev/null @@ -1,126 +0,0 @@ -firefox -________________________________________________________________________________ - -Mozilla Firefox or simply Firefox, is a free and open-source web browser -developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. -Firefox uses the Gecko rendering engine to display web pages. [0] - -Upstream: https://www.mozilla.org/firefox - - -[000] Index -________________________________________________________________________________ - -* Installation ........................................................... [001] - * Runtime Dependencies ................................................. [002] - * Privacy Package ...................................................... [003] -* Setup .................................................................. [004] - * Enable VAAPI Acceleration ............................................ [005] -* Usage .................................................................. [006] -* References ............................................................. [007] - - -[001] Installation -________________________________________________________________________________ - -+------------------------------------------------------------------------------+ -| | -| $ kiss b firefox | -| | -+------------------------------------------------------------------------------+ - - ---[002] Runtime Dependencies --------------------------------------------------- - - Firefox needs a few additional things to be fully functional. One is an icon - theme and the other is a font. If you have already installed the fonts and - icon theme of your choosing, this step can be skipped. - - +----------------------------------------------------------------------------+ - | | - | $ kiss b [hicolor-icon-theme|adwaita-icon-theme] | - | $ kiss b ttf-croscore | - | | - +----------------------------------------------------------------------------+ - - ---[003] Privacy Package -------------------------------------------------------- - - Provided is also an optional privacy package which makes Firefox perform zero - unsolicited network requests. More information can be found in the - documentation (@/firefox-privacy) Expect some website breakage when using this - privacy package YMMV. - - +----------------------------------------------------------------------------+ - | | - | $ kiss b firefox-privacy | - | | - +----------------------------------------------------------------------------+ - - -[004] Setup -________________________________________________________________________________ - -As of Firefox 91. There is no need to set special environment variables to -enable Wayland support (in a Wayland only environment like ours). The browser -should start with no further configuration. - - ---[005] Enable VAAPI Acceleration ---------------------------------------------- - -Make sure that the following are set in your about:config page. - -+------------------------------------------------------------------------------+ -| | -| about:config | -| | -| gfx.webrender.all=true | -| media.av1.enabled=false | -| media.ffmpeg.dmabuf-textures.disabled=false | -| media.ffmpeg.vaapi.enabled=true | -| media.ffvpx.enabled=false | -| | -+------------------------------------------------------------------------------+ - -If using AMDGPU, the following kernel option must be enabled. [1] - -+------------------------------------------------------------------------------+ -| | -| .config | -| | -| CONFIG_CHECKPOINT_RESTORE=y | -| | -+------------------------------------------------------------------------------+ - -You may also need to set the following environment variable. - -+------------------------------------------------------------------------------+ -| | -| .profile | -| | -| export MOZ_WAYLAND_DRM_DEVICE=/dev/dri/renderD128 | -| | -+------------------------------------------------------------------------------+ - -To verify that VAAPI is working, launch Firefox with the following argument and -attempt to watch a video. Pay attention for errors in the output. - -+------------------------------------------------------------------------------+ -| | -| $ firefox --MOZ_LOG=PlatformDecoderModule:4 | -| | -+------------------------------------------------------------------------------+ - - -[006] Usage -________________________________________________________________________________ - -Refer to the browser's help output and online documentation for further -information. - - -[007] References -________________________________________________________________________________ - -[0] https://en.wikipedia.org/wiki/Firefox - diff --git a/testing/firefox/build b/testing/firefox/build deleted file mode 100755 index cc2923cb..00000000 --- a/testing/firefox/build +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/sh -e - -for p in *.patch; do - patch -p1 < "$p" -done - -# X11-less webrtc patch from bugzilla. Very large so a URL is used. -patch -p1 < attachment.cgi\?id=9202429 - -# Build autoconf 2.13 for Firefox's sole use. -# See: https://bugzilla.mozilla.org/show_bug.cgi?id=104642 -( - cd autoconf2.13 - - ./configure \ - --prefix="$PWD/../junk" \ - --program-suffix=-2.13 - - make - make install -) - -# Build yasm for Firefox's sole use. Firefox is the only package which needs it -# and upstream is kinda dead. -( - cd yasm - - ./configure \ - --prefix=/ - - make - make DESTDIR="$PWD/../junk" install -) - -# Build zip/unzip for Firefox's sole use. -for f in zip unzip; do ( - cd "$f" - - make \ - CC="$CC $CFLAGS $CXXFLAGS" \ - -f unix/Makefile generic - - make \ - prefix="$PWD/../junk" \ - -f unix/Makefile install -) done - -export PATH="$PWD/junk/bin:$PATH" - -# If using libc++, CXXSTDLIB needs to be set manually. -case $("$CC" -print-file-name=libc++.so) in */*) - export CXXSTDLIB=c++ -esac - -# Instruct the compiler to trim absolute paths in resulting binaries and instead -# change them to relative paths ($PWD/... ./...). -export RUSTFLAGS="$RUSTFLAGS --remap-path-prefix=$PWD=." - -export LDFLAGS="$LDFLAGS -Wl,-rpath=/usr/lib/firefox,--enable-new-dtags" -export RUSTFLAGS="$RUSTFLAGS -Cdebuginfo=0" -export MACH_USE_SYSTEM_PYTHON=1 -export MOZ_DEBUG_FLAGS=-g0 -export MOZBUILD_STATE_PATH=$PWD/state -export MOZ_NOSPAM=1 - -cat > .mozconfig << EOF -ac_add_options --enable-default-toolkit=cairo-gtk3-wayland -ac_add_options --prefix=/usr -ac_add_options --libdir=/usr/lib -ac_add_options --enable-alsa -ac_add_options --enable-strip -ac_add_options --enable-release -ac_add_options --enable-rust-simd -ac_add_options --enable-install-strip -ac_add_options --enable-official-branding -ac_add_options --enable-application=browser -ac_add_options --enable-optimize="${CFLAGS:-} -w" -ac_add_options --with-system-libvpx -ac_add_options --with-system-ffi -ac_add_options --with-system-png -ac_add_options --with-system-jpeg -ac_add_options --with-system-zlib -ac_add_options --with-system-pixman -ac_add_options --without-system-nss -ac_add_options --without-system-nspr -ac_add_options --disable-eme -ac_add_options --disable-dbus -ac_add_options --disable-gold -ac_add_options --disable-tests -ac_add_options --disable-vtune -ac_add_options --disable-updater -ac_add_options --disable-jemalloc -ac_add_options --disable-elf-hack -ac_add_options --disable-callgrind -ac_add_options --disable-profiling -ac_add_options --disable-necko-wifi -ac_add_options --disable-crashreporter -ac_add_options --disable-pulseaudio -ac_add_options --disable-accessibility -ac_add_options --disable-debug -ac_add_options --disable-debug-symbols -ac_add_options --disable-parental-controls -ac_add_options --disable-system-extension-dirs -EOF - -./mach build -./mach install - -# Remove a lot of uneeded "stuff". -rm -rf \ - "$1/usr/include" \ - "$1/usr/lib/firefox-devel" \ - "$1/usr/share/idl" \ - "$1/usr/lib/firefox/browser/features/fxmonitor@mozilla.org.xpi" \ - "$1/usr/lib/firefox/browser/features/screenshots@mozilla.org.xpi" \ - "$1/usr/lib/firefox/browser/features/webcompat-reporter@mozilla.org.xpi" \ - "$1/usr/lib/firefox/browser/features/webcompat@mozilla.org.xpi" \ - "$1/usr/lib/firefox/browser/features/doh-rollout@mozilla.org.xpi" - diff --git a/testing/firefox/checksums b/testing/firefox/checksums deleted file mode 100644 index f993c71e..00000000 --- a/testing/firefox/checksums +++ /dev/null @@ -1,10 +0,0 @@ -b7bb8c5fcc74a74e9d2b55d1e9415b891305fe86520fb854cec25024d7e5de67 -f0611136bee505811e9ca11ca7ac188ef5323a8e2ef19cffd3edb3cf08fd791e -3dce6601b495f5b3d45b59f7d2492a340ee7e84b5beca17e48f862502bd5603f -f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369 -036d96991646d0449ed0aa952e4fbe21b476ce994abc276e49d30e686708bd37 -42b3c7a29e61905be0e7425b8786870eb1d1c9e0f74c3f0909521b2ac52ac702 -2b5732c15e7eade2a01ad9794de372f25fbb75e4e2f53bce089548bcbbba20d1 -4b06181475f667ae2851540552ade56d5257a03cd21da588e2eb1e538bbc8176 -bb20235914fd82976508eb72bf4810b467d3ba1d47a1031e00f7995b9933ae56 -47d30d0b73d3174f8ebbb6d686892fa5435beb3355ddacded70194ef0249ba51 diff --git a/testing/firefox/depends b/testing/firefox/depends deleted file mode 100644 index 377f447e..00000000 --- a/testing/firefox/depends +++ /dev/null @@ -1,32 +0,0 @@ -alsa-lib -atk -bzip2 -cairo -cbindgen make -clang make -expat -ffmpeg -fontconfig -freetype-harfbuzz -gdk-pixbuf -glib -gtk+3 -libdrm -libffi -libjpeg-turbo -libpng -libvpx -llvm make -m4 make -mesa -nasm make -nodejs make -pango -perl make -pixman -pkgconf make -python make -rust make -wayland -wayland-protocols make -zlib diff --git a/testing/firefox/patches/fix-clang-as.patch b/testing/firefox/patches/fix-clang-as.patch deleted file mode 100644 index bb7c2557..00000000 --- a/testing/firefox/patches/fix-clang-as.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff --git a/security/nss/lib/freebl/Makefile b/security/nss/lib/freebl/Makefile -index 0b8c6f4..e9668e1 100644 ---- a/security/nss/lib/freebl/Makefile -+++ b/security/nss/lib/freebl/Makefile -@@ -753,7 +753,6 @@ $(OBJDIR)/$(PROG_PREFIX)intel-gcm-wrap$(OBJ_SUFFIX): CFLAGS += -mssse3 - # .set Htbl, %rdi - # So we can't use Clang's integrated assembler with intel-gcm.s. - ifdef CC_IS_CLANG --$(OBJDIR)/$(PROG_PREFIX)intel-gcm$(OBJ_SUFFIX): CFLAGS += -no-integrated-as - endif - endif - -diff --git a/security/nss/lib/freebl/freebl.gyp b/security/nss/lib/freebl/freebl.gyp -index e7703ba..3ee3435 100644 ---- a/security/nss/lib/freebl/freebl.gyp -+++ b/security/nss/lib/freebl/freebl.gyp -@@ -19,13 +19,10 @@ - 'conditions': [ - [ 'cc_is_clang==1', { - 'cflags': [ -- '-no-integrated-as', - ], - 'cflags_mozilla': [ -- '-no-integrated-as', - ], - 'asflags_mozilla': [ -- '-no-integrated-as', - ], - }], - ], -diff --git a/security/nss/lib/freebl/freebl_base.gypi b/security/nss/lib/freebl/freebl_base.gypi -index afbffac..795bbd8 100644 ---- a/security/nss/lib/freebl/freebl_base.gypi -+++ b/security/nss/lib/freebl/freebl_base.gypi -@@ -74,13 +74,10 @@ - 'conditions': [ - [ 'cc_is_clang==1 and fuzz!=1 and coverage!=1', { - 'cflags': [ -- '-no-integrated-as', - ], - 'cflags_mozilla': [ -- '-no-integrated-as', - ], - 'asflags_mozilla': [ -- '-no-integrated-as', - ], - }], - ], diff --git a/testing/firefox/patches/fix-linux-header.patch b/testing/firefox/patches/fix-linux-header.patch deleted file mode 100644 index 02fc5022..00000000 --- a/testing/firefox/patches/fix-linux-header.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c b/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c -index 73e85c6..9eca548 100644 ---- a/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c -+++ b/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c -@@ -31,6 +31,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - #if defined(LINUX) -+#include - #include "addrs-netlink.h" - #include - #include diff --git a/testing/firefox/patches/no-fribidi.patch b/testing/firefox/patches/no-fribidi.patch deleted file mode 100644 index e8d1fc44..00000000 --- a/testing/firefox/patches/no-fribidi.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild -index 6e017df..7659b8e 100644 ---- a/config/system-headers.mozbuild -+++ b/config/system-headers.mozbuild -@@ -267,7 +267,6 @@ system_headers = [ - 'freetype/t1tables.h', - 'freetype/ttnameid.h', - 'freetype/tttables.h', -- 'fribidi/fribidi.h', - 'FSp_fopen.h', - 'fstream', - 'fstream.h', diff --git a/testing/firefox/patches/no-x11.patch b/testing/firefox/patches/no-x11.patch deleted file mode 100644 index 1c4ac398..00000000 --- a/testing/firefox/patches/no-x11.patch +++ /dev/null @@ -1,1446 +0,0 @@ -diff --git a/gfx/angle/checkout/include/EGL/eglplatform.h b/gfx/angle/checkout/include/EGL/eglplatform.h -index 9ebaf00a9b..f1cc658219 100644 ---- a/gfx/angle/checkout/include/EGL/eglplatform.h -+++ b/gfx/angle/checkout/include/EGL/eglplatform.h -@@ -115,7 +115,8 @@ typedef void *EGLNativeDisplayType; - typedef khronos_uintptr_t EGLNativePixmapType; - typedef khronos_uintptr_t EGLNativeWindowType; - --#elif defined(__unix__) || defined(USE_X11) -+#elif defined(__unix__) -+#if defined(USE_X11) - - /* X11 (tentative) */ - #include -@@ -124,6 +125,11 @@ typedef khronos_uintptr_t EGLNativeWindowType; - typedef Display *EGLNativeDisplayType; - typedef Pixmap EGLNativePixmapType; - typedef Window EGLNativeWindowType; -+#else -+typedef void *EGLNativeDisplayType; -+typedef khronos_uintptr_t EGLNativePixmapType; -+typedef khronos_uintptr_t EGLNativeWindowType; -+#endif - - #elif defined(__APPLE__) - -diff --git a/gfx/cairo/cairo/src/cairo-features.h b/gfx/cairo/cairo/src/cairo-features.h -index cfed9d9a2f..fd1eb869d3 100644 ---- a/gfx/cairo/cairo/src/cairo-features.h -+++ b/gfx/cairo/cairo/src/cairo-features.h -@@ -55,8 +55,8 @@ - #define CAIRO_HAS_PDF_SURFACE 1 - #endif - --#ifdef MOZ_X11 - #define CAIRO_HAS_PS_SURFACE 1 -+#ifdef MOZ_X11 - #define CAIRO_HAS_XLIB_XRENDER_SURFACE 0 - #define CAIRO_HAS_XLIB_SURFACE 1 - #endif -diff --git a/gfx/gl/GLContextProvider.h b/gfx/gl/GLContextProvider.h -index 12d1a497b9..bec4cd17f0 100644 ---- a/gfx/gl/GLContextProvider.h -+++ b/gfx/gl/GLContextProvider.h -@@ -55,17 +55,17 @@ namespace gl { - # define GL_CONTEXT_PROVIDER_NAME GLContextProviderX11 - # include "GLContextProviderImpl.h" - # undef GL_CONTEXT_PROVIDER_NAME --# if defined(MOZ_WAYLAND) --# define GL_CONTEXT_PROVIDER_NAME GLContextProviderWayland --# include "GLContextProviderImpl.h" --# undef GL_CONTEXT_PROVIDER_NAME --# define GL_CONTEXT_PROVIDER_DEFAULT GLContextProviderWayland --# endif - # ifndef GL_CONTEXT_PROVIDER_DEFAULT - # define GL_CONTEXT_PROVIDER_DEFAULT GLContextProviderX11 - # endif - #endif - -+#if defined(MOZ_WAYLAND) -+# define GL_CONTEXT_PROVIDER_NAME GLContextProviderWayland -+# include "GLContextProviderImpl.h" -+# undef GL_CONTEXT_PROVIDER_NAME -+# define GL_CONTEXT_PROVIDER_DEFAULT GLContextProviderWayland -+#endif - #ifndef GL_CONTEXT_PROVIDER_DEFAULT - # define GL_CONTEXT_PROVIDER_DEFAULT GLContextProviderEGL - #endif -diff --git a/gfx/gl/GLContextProviderWayland.cpp b/gfx/gl/GLContextProviderWayland.cpp -index 3f1f926cd9..cd49dc5f17 100644 ---- a/gfx/gl/GLContextProviderWayland.cpp -+++ b/gfx/gl/GLContextProviderWayland.cpp -@@ -14,7 +14,6 @@ namespace mozilla::gl { - using namespace mozilla::gfx; - using namespace mozilla::widget; - --static class GLContextProviderX11 sGLContextProviderX11; - static class GLContextProviderEGL sGLContextProviderEGL; - - // Note that if there is no GTK display, `GdkIsX11Display` and -@@ -30,41 +29,24 @@ static class GLContextProviderEGL sGLContextProviderEGL; - already_AddRefed GLContextProviderWayland::CreateForCompositorWidget( - CompositorWidget* aCompositorWidget, bool aHardwareWebRender, - bool aForceAccelerated) { -- if (GdkIsWaylandDisplay()) { - return sGLContextProviderEGL.CreateForCompositorWidget( - aCompositorWidget, aHardwareWebRender, aForceAccelerated); -- } else { -- return sGLContextProviderX11.CreateForCompositorWidget( -- aCompositorWidget, aHardwareWebRender, aForceAccelerated); -- } - } - - /*static*/ - already_AddRefed GLContextProviderWayland::CreateHeadless( - const GLContextCreateDesc& desc, nsACString* const out_failureId) { -- if (GdkIsWaylandDisplay()) { - return sGLContextProviderEGL.CreateHeadless(desc, out_failureId); -- } else { -- return sGLContextProviderX11.CreateHeadless(desc, out_failureId); -- } - } - - /*static*/ - GLContext* GLContextProviderWayland::GetGlobalContext() { -- if (GdkIsWaylandDisplay()) { - return sGLContextProviderEGL.GetGlobalContext(); -- } else { -- return sGLContextProviderX11.GetGlobalContext(); -- } - } - - /*static*/ - void GLContextProviderWayland::Shutdown() { -- if (GdkIsWaylandDisplay()) { - sGLContextProviderEGL.Shutdown(); -- } else { -- sGLContextProviderX11.Shutdown(); -- } - } - - } // namespace mozilla::gl -diff --git a/gfx/gl/moz.build b/gfx/gl/moz.build -index 7ac6b0753a..a817a6fb08 100644 ---- a/gfx/gl/moz.build -+++ b/gfx/gl/moz.build -@@ -13,7 +13,7 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa": - elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "uikit": - gl_provider = "EAGL" - elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": -- if CONFIG["MOZ_EGL_XRENDER_COMPOSITE"]: -+ if CONFIG["MOZ_EGL_XRENDER_COMPOSITE"] or CONFIG["MOZ_WAYLAND"]: - gl_provider = "EGL" - else: - gl_provider = "GLX" -diff --git a/gfx/layers/AnimationHelper.h b/gfx/layers/AnimationHelper.h -index f5a57b9c4d..72091c3a4f 100644 ---- a/gfx/layers/AnimationHelper.h -+++ b/gfx/layers/AnimationHelper.h -@@ -7,6 +7,7 @@ - #ifndef mozilla_layers_AnimationHelper_h - #define mozilla_layers_AnimationHelper_h - -+#include "X11UndefineNone.h" - #include "mozilla/dom/Nullable.h" - #include "mozilla/ComputedTimingFunction.h" // for ComputedTimingFunction - #include "mozilla/layers/AnimationStorageData.h" -@@ -15,7 +16,6 @@ - #include "mozilla/TimeStamp.h" // for TimeStamp - #include "mozilla/TimingParams.h" - #include "mozilla/Types.h" // for SideBits --#include "X11UndefineNone.h" - #include - - namespace mozilla { -diff --git a/gfx/thebes/gfxPlatformGtk.cpp b/gfx/thebes/gfxPlatformGtk.cpp -index 197d33b85f..0d3cd3d7f2 100644 ---- a/gfx/thebes/gfxPlatformGtk.cpp -+++ b/gfx/thebes/gfxPlatformGtk.cpp -@@ -31,7 +31,9 @@ - #include "mozilla/FontPropertyTypes.h" - #include "mozilla/gfx/2D.h" - #include "mozilla/gfx/Logging.h" -+#ifdef MOZ_X11 - #include "mozilla/gfx/XlibDisplay.h" -+#endif - #include "mozilla/Monitor.h" - #include "mozilla/Preferences.h" - #include "mozilla/StaticPrefs_gfx.h" -@@ -63,6 +65,9 @@ - # include "mozilla/widget/nsWaylandDisplay.h" - # include "mozilla/widget/DMABufLibWrapper.h" - # include "mozilla/StaticPrefs_widget.h" -+# ifdef MOZ_WIDGET_GTK -+# include "mozilla/WidgetUtilsGtk.h" -+# endif - #endif - - #define GDK_PIXMAP_SIZE_MAX 32767 -@@ -98,7 +103,11 @@ gfxPlatformGtk::gfxPlatformGtk() { - } - - mMaxGenericSubstitutions = UNINITIALIZED_VALUE; -+#ifdef MOZ_X11 - mIsX11Display = gfxPlatform::IsHeadless() ? false : GdkIsX11Display(); -+#else -+ mIsX11Display = false; -+#endif - if (XRE_IsParentProcess()) { - InitX11EGLConfig(); - if (IsWaylandDisplay() || gfxConfig::IsEnabled(Feature::X11_EGL)) { -@@ -125,7 +134,7 @@ gfxPlatformGtk::gfxPlatformGtk() { - - // Bug 1714483: Force disable FXAA Antialiasing on NV drivers. This is a - // temporary workaround for a driver bug. -- PR_SetEnv("__GL_ALLOW_FXAA_USAGE=0"); -+ // PR_SetEnv("__GL_ALLOW_FXAA_USAGE=0"); - } - - gfxPlatformGtk::~gfxPlatformGtk() { -diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build -index 3f483d180e..c3ef71a71c 100644 ---- a/gfx/thebes/moz.build -+++ b/gfx/thebes/moz.build -@@ -116,7 +116,6 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": - ] - EXPORTS.mozilla.gfx += [ - "PrintTargetPDF.h", -- "PrintTargetPS.h", - ] - SOURCES += [ - "gfxFcPlatformFontList.cpp", -@@ -124,12 +123,12 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": - "gfxFT2Utils.cpp", - "gfxPlatformGtk.cpp", - "PrintTargetPDF.cpp", -- "PrintTargetPS.cpp", - ] - - if CONFIG["MOZ_X11"]: - EXPORTS += [ - "gfxXlibSurface.h", -+ "PrintTargetPS.h", - ] - EXPORTS.mozilla.gfx += [ - "XlibDisplay.h", -@@ -137,6 +136,7 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": - SOURCES += [ - "gfxXlibSurface.cpp", - "XlibDisplay.cpp", -+ "PrintTargetPS.cpp", - ] - - elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows": -diff --git a/gfx/webrender_bindings/RenderCompositorOGLSWGL.cpp b/gfx/webrender_bindings/RenderCompositorOGLSWGL.cpp -index cf3fc3c2ca..2748887361 100644 ---- a/gfx/webrender_bindings/RenderCompositorOGLSWGL.cpp -+++ b/gfx/webrender_bindings/RenderCompositorOGLSWGL.cpp -@@ -27,7 +27,9 @@ - #ifdef MOZ_WIDGET_GTK - # include "mozilla/widget/GtkCompositorWidget.h" - # include -+# ifdef MOZ_X11 - # include -+# endif - #endif - - namespace mozilla { -diff --git a/toolkit/components/remote/moz.build b/toolkit/components/remote/moz.build -index c1853a9f4d..b407dce197 100644 ---- a/toolkit/components/remote/moz.build -+++ b/toolkit/components/remote/moz.build -@@ -16,6 +16,12 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": - "nsUnixRemoteServer.cpp", - "RemoteUtils.cpp", - ] -+ if CONFIG["MOZ_X11"]: -+ SOURCES += [ -+ "nsGTKRemoteServer.cpp", -+ "nsXRemoteClient.cpp", -+ "nsXRemoteServer.cpp", -+ ] - if CONFIG["MOZ_ENABLE_DBUS"]: - SOURCES += [ - "nsDBusRemoteClient.cpp", -@@ -26,12 +32,6 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": - "nsUnixRemoteServer.h", - "RemoteUtils.h", - ] -- else: -- SOURCES += [ -- "nsGTKRemoteServer.cpp", -- "nsXRemoteClient.cpp", -- "nsXRemoteServer.cpp", -- ] - CXXFLAGS += CONFIG["TK_CFLAGS"] - - if CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows": -diff --git a/toolkit/components/remote/nsRemoteService.cpp b/toolkit/components/remote/nsRemoteService.cpp -index b2499d8191..5448b8f4b4 100644 ---- a/toolkit/components/remote/nsRemoteService.cpp -+++ b/toolkit/components/remote/nsRemoteService.cpp -@@ -12,12 +12,17 @@ - - #ifdef MOZ_WIDGET_GTK - # include "mozilla/WidgetUtilsGtk.h" --# include "nsGTKRemoteServer.h" -+# ifdef MOZ_X11 -+# include "nsGTKRemoteServer.h" -+# include "nsXRemoteClient.h" -+# endif - # ifdef MOZ_ENABLE_DBUS - # include "nsDBusRemoteServer.h" - # include "nsDBusRemoteClient.h" --# else --# include "nsXRemoteClient.h" -+# endif -+# ifdef MOZ_WAYLAND -+# include -+# include "nsRemoteClient.h" - # endif - #elif defined(XP_WIN) - # include "nsWinRemoteServer.h" -@@ -99,10 +104,11 @@ RemoteResult nsRemoteService::StartClient(const char* aDesktopStartupID) { - } - - UniquePtr client; -+ return REMOTE_NOT_FOUND; - #ifdef MOZ_WIDGET_GTK - # if defined(MOZ_ENABLE_DBUS) - client = MakeUnique(); --# else -+# elif defined(MOZ_X11) - client = MakeUnique(); - # endif - #elif defined(XP_WIN) -@@ -143,10 +149,11 @@ void nsRemoteService::StartupServer() { - return; - } - -+ return; - #ifdef MOZ_WIDGET_GTK - # if defined(MOZ_ENABLE_DBUS) - mRemoteServer = MakeUnique(); --# else -+# elif defined(MOZ_X11) - mRemoteServer = MakeUnique(); - # endif - #elif defined(XP_WIN) -diff --git a/toolkit/moz.configure b/toolkit/moz.configure -index f63780b892..deadf892d6 100644 ---- a/toolkit/moz.configure -+++ b/toolkit/moz.configure -@@ -1170,34 +1170,6 @@ set_define("MOZ_RAW", depends_if("--enable-raw")(lambda _: True)) - - # X11 - # ============================================================== --set_config("MOZ_X11", True, when=toolkit_gtk) --set_define("MOZ_X11", True, when=toolkit_gtk) -- -- --@depends(webrtc, when=toolkit_gtk) --def x11_libs(webrtc): -- libs = [ -- "x11", -- "xcb", -- "xcb-shm", -- "x11-xcb", -- "xext", -- "xrandr >= 1.4.0", -- ] -- if webrtc: -- # third_party/libwebrtc/webrtc/webrtc_gn/moz.build adds those -- # manually, ensure they're available. -- libs += [ -- "xcomposite", -- "xcursor", -- "xdamage", -- "xfixes", -- "xi", -- ] -- return " ".join(libs) -- -- --pkg_check_modules("MOZ_X11", x11_libs, when=toolkit_gtk) - - - # ASan Reporter Addon -diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp -index 332f340179..070f3128e0 100644 ---- a/toolkit/xre/nsAppRunner.cpp -+++ b/toolkit/xre/nsAppRunner.cpp -@@ -321,6 +321,7 @@ nsString gProcessStartupShortcut; - # endif - # ifdef MOZ_X11 - # include -+# undef None - # endif /* MOZ_X11 */ - # include - #endif -@@ -345,7 +346,6 @@ void XRE_LibFuzzerSetDriver(LibFuzzerDriver aDriver) { - #endif // FUZZING - - // Undo X11/X.h's definition of None --#undef None - - namespace mozilla { - int (*RunGTest)(int*, char**) = 0; -diff --git a/toolkit/xre/nsGDKErrorHandler.cpp b/toolkit/xre/nsGDKErrorHandler.cpp -index 421abdf12f..9335d2422c 100644 ---- a/toolkit/xre/nsGDKErrorHandler.cpp -+++ b/toolkit/xre/nsGDKErrorHandler.cpp -@@ -6,14 +6,21 @@ - #include "nsGDKErrorHandler.h" - - #include -+#ifdef MOZ_X11 - #include -+#endif -+#ifdef MOZ_WAYLAND -+#include -+#endif - #include - #include - #include - - #include "nsDebug.h" - #include "nsString.h" -+#ifdef MOZ_X11 - #include "nsX11ErrorHandler.h" -+#endif - - #include "prenv.h" - -@@ -26,6 +33,7 @@ - */ - static void GdkErrorHandler(const gchar* log_domain, GLogLevelFlags log_level, - const gchar* message, gpointer user_data) { -+#ifdef MOZ_X11 - if (strstr(message, "X Window System error")) { - XErrorEvent event; - nsDependentCString buffer(message); -@@ -93,9 +101,12 @@ static void GdkErrorHandler(const gchar* log_domain, GLogLevelFlags log_level, - - X11Error(event.display, &event); - } else { -+#endif - g_log_default_handler(log_domain, log_level, message, user_data); - MOZ_CRASH_UNSAFE(message); -+#ifdef MOZ_X11 - } -+#endif - } - - void InstallGdkErrorHandler() { -@@ -103,7 +114,9 @@ void InstallGdkErrorHandler() { - (GLogLevelFlags)(G_LOG_LEVEL_ERROR | G_LOG_FLAG_FATAL | - G_LOG_FLAG_RECURSION), - GdkErrorHandler, nullptr); -+#ifdef MOZ_X11 - if (PR_GetEnv("MOZ_X_SYNC")) { - XSynchronize(GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), X11True); - } -+#endif - } -diff --git a/widget/CompositorWidget.h b/widget/CompositorWidget.h -index 20eb3634f3..10fb94a99f 100644 ---- a/widget/CompositorWidget.h -+++ b/widget/CompositorWidget.h -@@ -62,7 +62,7 @@ class CompositorWidgetDelegate { - }; - - // Platforms that support out-of-process widgets. --#if defined(XP_WIN) || defined(MOZ_X11) -+#if defined(XP_WIN) || defined(MOZ_X11) || defined(MOZ_WAYLAND) - // CompositorWidgetParent should implement CompositorWidget and - // PCompositorWidgetParent. - class CompositorWidgetParent; -diff --git a/widget/gtk/MozContainer.cpp b/widget/gtk/MozContainer.cpp -index 95832dc03d..a21d2d2b40 100644 ---- a/widget/gtk/MozContainer.cpp -+++ b/widget/gtk/MozContainer.cpp -@@ -9,7 +9,9 @@ - - #include - #include -+#ifdef MOZ_X11 - #include -+#endif - #include - #include "mozilla/WidgetUtilsGtk.h" - -diff --git a/widget/gtk/components.conf b/widget/gtk/components.conf -index 38c07bd812..a125d8d275 100644 ---- a/widget/gtk/components.conf -+++ b/widget/gtk/components.conf -@@ -78,7 +78,7 @@ Classes = [ - }, - ] - --if defined('MOZ_X11'): -+if defined('MOZ_X11') or defined('MOZ_WAYLAND'): - Classes += [ - { - 'js_name': 'clipboard', -diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build -index 291e3a78c8..7955b84d0c 100644 ---- a/widget/gtk/moz.build -+++ b/widget/gtk/moz.build -@@ -101,22 +101,26 @@ if CONFIG["MOZ_WAYLAND"]: - - if CONFIG["MOZ_X11"]: - UNIFIED_SOURCES += [ -- "CompositorWidgetChild.cpp", -- "CompositorWidgetParent.cpp", -- "InProcessGtkCompositorWidget.cpp", - "nsClipboardX11.cpp", - "nsShmImage.cpp", -- "nsUserIdleServiceGTK.cpp", - "WindowSurfaceX11.cpp", - "WindowSurfaceX11Image.cpp", - "WindowSurfaceX11SHM.cpp", - ] -- EXPORTS.mozilla.widget += [ -- "CompositorWidgetChild.h", -- "CompositorWidgetParent.h", -- "GtkCompositorWidget.h", -- "InProcessGtkCompositorWidget.h", -- ] -+ -+UNIFIED_SOURCES += [ -+ "CompositorWidgetChild.cpp", -+ "CompositorWidgetParent.cpp", -+ "InProcessGtkCompositorWidget.cpp", -+ "nsUserIdleServiceGTK.cpp", -+] -+ -+EXPORTS.mozilla.widget += [ -+ "CompositorWidgetChild.h", -+ "CompositorWidgetParent.h", -+ "GtkCompositorWidget.h", -+ "InProcessGtkCompositorWidget.h", -+] - - if CONFIG["NS_PRINTING"]: - UNIFIED_SOURCES += [ -@@ -145,7 +149,7 @@ LOCAL_INCLUDES += [ - "/widget/headless", - ] - --if CONFIG["MOZ_X11"]: -+if CONFIG["MOZ_X11"] or CONFIG["MOZ_WAYLAND"]: - LOCAL_INCLUDES += [ - "/widget/x11", - ] -diff --git a/widget/gtk/mozgtk/mozgtk.c b/widget/gtk/mozgtk/mozgtk.c -index 677f9b3561..b8cb7de58e 100644 ---- a/widget/gtk/mozgtk/mozgtk.c -+++ b/widget/gtk/mozgtk/mozgtk.c -@@ -6,6 +6,7 @@ - - #include "mozilla/Types.h" - -+#if defined(MOZ_X11) - #include - // Bug 1271100 - // We need to trick system Cairo into not using the XShm extension due to -@@ -19,3 +20,4 @@ - // ever can remove this workaround for system Cairo, we'll need something - // to replace it for that purpose. - MOZ_EXPORT Bool XShmQueryExtension(Display* aDisplay) { return False; } -+#endif -diff --git a/widget/gtk/nsClipboard.cpp b/widget/gtk/nsClipboard.cpp -index 48160b39a4..5b99ba942a 100644 ---- a/widget/gtk/nsClipboard.cpp -+++ b/widget/gtk/nsClipboard.cpp -@@ -9,7 +9,9 @@ - - #include "nsArrayUtils.h" - #include "nsClipboard.h" -+#if defined(MOZ_X11) - #include "nsClipboardX11.h" -+#endif - #if defined(MOZ_WAYLAND) - # include "nsClipboardWayland.h" - # include "nsClipboardWaylandAsync.h" -@@ -33,7 +35,9 @@ - #include "imgIContainer.h" - - #include -+#ifdef MOZ_X11 - #include -+#endif - - #include "mozilla/Encoding.h" - -@@ -102,16 +106,12 @@ nsClipboard::~nsClipboard() { - NS_IMPL_ISUPPORTS(nsClipboard, nsIClipboard, nsIObserver) - - nsresult nsClipboard::Init(void) { -- if (widget::GdkIsX11Display()) { -- mContext = new nsRetrievalContextX11(); --#if defined(MOZ_WAYLAND) -- } else if (widget::GdkIsWaylandDisplay()) { -+ if (widget::GdkIsWaylandDisplay()) { - if (StaticPrefs::widget_wayland_async_clipboard_enabled_AtStartup()) { - mContext = new nsRetrievalContextWaylandAsync(); - } else { - mContext = new nsRetrievalContextWayland(); - } --#endif - } else { - NS_WARNING("Missing nsRetrievalContext for nsClipboard!"); - return NS_OK; -@@ -347,14 +347,6 @@ nsClipboard::GetData(nsITransferable* aTransferable, int32_t aWhichClipboard) { - } - #endif - -- // Filter out MIME types on X11 to prevent unwanted conversions, -- // see Bug 1611407 -- if (widget::GdkIsX11Display()) { -- if (!FilterImportedFlavors(aWhichClipboard, flavors)) { -- return NS_OK; -- } -- } -- - for (uint32_t i = 0; i < flavors.Length(); i++) { - nsCString& flavorStr = flavors[i]; - -diff --git a/widget/gtk/nsDeviceContextSpecG.cpp b/widget/gtk/nsDeviceContextSpecG.cpp -index 3948c15cc5..968252b896 100644 ---- a/widget/gtk/nsDeviceContextSpecG.cpp -+++ b/widget/gtk/nsDeviceContextSpecG.cpp -@@ -6,7 +6,9 @@ - #include "nsDeviceContextSpecG.h" - - #include "mozilla/gfx/PrintTargetPDF.h" -+#ifdef MOZ_X11 - #include "mozilla/gfx/PrintTargetPS.h" -+#endif - #include "mozilla/Logging.h" - #include "mozilla/Services.h" - -@@ -46,7 +48,9 @@ using namespace mozilla; - using mozilla::gfx::IntSize; - using mozilla::gfx::PrintTarget; - using mozilla::gfx::PrintTargetPDF; -+#ifdef MOZ_X11 - using mozilla::gfx::PrintTargetPS; -+#endif - - nsDeviceContextSpecGTK::nsDeviceContextSpecGTK() - : mGtkPrintSettings(nullptr), mGtkPageSetup(nullptr) {} -@@ -119,12 +123,15 @@ already_AddRefed nsDeviceContextSpecGTK::MakePrintTarget() { - return PrintTargetPDF::CreateOrNull(stream, size); - } - -+#ifdef MOZ_X11 - int32_t orientation = mPrintSettings->GetSheetOrientation(); - return PrintTargetPS::CreateOrNull( - stream, size, - orientation == nsIPrintSettings::kPortraitOrientation - ? PrintTargetPS::PORTRAIT - : PrintTargetPS::LANDSCAPE); -+#endif -+ return nullptr; - } - - #define DECLARE_KNOWN_MONOCHROME_SETTING(key_, value_) {"cups-" key_, value_}, -diff --git a/widget/gtk/nsDragService.cpp b/widget/gtk/nsDragService.cpp -index fcd4236261..659c06260c 100644 ---- a/widget/gtk/nsDragService.cpp -+++ b/widget/gtk/nsDragService.cpp -@@ -23,7 +23,11 @@ - #include "prthread.h" - #include - #include -+#ifdef MOZ_X11 - #include -+#else -+#include -+#endif - #include "nsCRT.h" - #include "mozilla/BasicEvents.h" - #include "mozilla/Services.h" -@@ -34,7 +38,6 @@ - #include "mozilla/WidgetUtilsGtk.h" - #include "GRefPtr.h" - --#include "gfxXlibSurface.h" - #include "gfxContext.h" - #include "nsImageToPixbuf.h" - #include "nsPresContext.h" -@@ -52,6 +55,8 @@ - #ifdef MOZ_WAYLAND - # include "nsClipboardWayland.h" - # include "gfxPlatformGtk.h" -+#else -+#include "gfxXlibSurface.h" - #endif - - using namespace mozilla; -diff --git a/widget/gtk/nsGtkKeyUtils.cpp b/widget/gtk/nsGtkKeyUtils.cpp -index f4c7030a37..a54d14988f 100644 ---- a/widget/gtk/nsGtkKeyUtils.cpp -+++ b/widget/gtk/nsGtkKeyUtils.cpp -@@ -12,10 +12,12 @@ - #include - #include - #include --#include - #include - #include -+#ifdef MOZ_X11 -+#include - #include -+#endif - #include "X11UndefineNone.h" - #include "IMContextWrapper.h" - #include "WidgetUtils.h" -@@ -51,7 +53,7 @@ LazyLogModule gKeymapWrapperLog("KeymapWrapperWidgets"); - - KeymapWrapper* KeymapWrapper::sInstance = nullptr; - guint KeymapWrapper::sLastRepeatableHardwareKeyCode = 0; --Time KeymapWrapper::sLastRepeatableKeyTime = 0; -+GTime KeymapWrapper::sLastRepeatableKeyTime = 0; - KeymapWrapper::RepeatState KeymapWrapper::sRepeatState = - KeymapWrapper::NOT_PRESSED; - -@@ -346,9 +348,11 @@ KeymapWrapper::KeymapWrapper() - - g_object_ref(mGdkKeymap); - -+#ifdef MOZ_X11 - if (GdkIsX11Display()) { - InitXKBExtension(); - } -+#endif - - Init(); - } -@@ -365,16 +369,19 @@ void KeymapWrapper::Init() { - mModifierKeys.Clear(); - memset(mModifierMasks, 0, sizeof(mModifierMasks)); - -+#ifdef MOZ_X11 - if (GdkIsX11Display()) { - InitBySystemSettingsX11(); -- } -+ } else { -+#endif - #ifdef MOZ_WAYLAND -- else { - InitBySystemSettingsWayland(); -- } - #endif - -+#ifdef MOZ_X11 -+ } - gdk_window_add_filter(nullptr, FilterEvents, this); -+#endif - - MOZ_LOG(gKeymapWrapperLog, LogLevel::Info, - ("%p Init, CapsLock=0x%X, NumLock=0x%X, " -@@ -387,6 +394,7 @@ void KeymapWrapper::Init() { - GetModifierMask(SUPER), GetModifierMask(HYPER))); - } - -+#ifdef MOZ_X11 - void KeymapWrapper::InitXKBExtension() { - PodZero(&mKeyboardState); - -@@ -619,6 +627,7 @@ void KeymapWrapper::InitBySystemSettingsX11() { - XFreeModifiermap(xmodmap); - XFree(xkeymap); - } -+#endif - - #ifdef MOZ_WAYLAND - void KeymapWrapper::SetModifierMask(xkb_keymap* aKeymap, -@@ -776,7 +785,9 @@ void KeymapWrapper::InitBySystemSettingsWayland() { - #endif - - KeymapWrapper::~KeymapWrapper() { -+#ifdef MOZ_X11 - gdk_window_remove_filter(nullptr, FilterEvents, this); -+#endif - if (mOnKeysChangedSignalHandle) { - g_signal_handler_disconnect(mGdkKeymap, mOnKeysChangedSignalHandle); - } -@@ -787,6 +798,7 @@ KeymapWrapper::~KeymapWrapper() { - MOZ_LOG(gKeymapWrapperLog, LogLevel::Info, ("%p Destructor", this)); - } - -+#ifdef MOZ_X11 - /* static */ - GdkFilterReturn KeymapWrapper::FilterEvents(GdkXEvent* aXEvent, - GdkEvent* aGdkEvent, -@@ -900,6 +912,7 @@ GdkFilterReturn KeymapWrapper::FilterEvents(GdkXEvent* aXEvent, - - return GDK_FILTER_CONTINUE; - } -+#endif - - static void ResetBidiKeyboard() { - // Reset the bidi keyboard settings for the new GdkKeymap -@@ -1760,6 +1773,7 @@ void KeymapWrapper::InitKeyEvent(WidgetKeyboardEvent& aKeyEvent, - // state. It means if there're some pending modifier key press or - // key release events, the result isn't what we want. - guint modifierState = aGdkKeyEvent->state; -+#ifdef MOZ_X11 - GdkDisplay* gdkDisplay = gdk_display_get_default(); - if (aGdkKeyEvent->is_modifier && GdkIsX11Display(gdkDisplay)) { - Display* display = gdk_x11_display_get_xdisplay(gdkDisplay); -@@ -1777,6 +1791,7 @@ void KeymapWrapper::InitKeyEvent(WidgetKeyboardEvent& aKeyEvent, - } - } - } -+#endif - InitInputEvent(aKeyEvent, modifierState); - - switch (aGdkKeyEvent->keyval) { -@@ -2023,6 +2038,7 @@ bool KeymapWrapper::IsLatinGroup(guint8 aGroup) { - return result; - } - -+#ifdef MOZ_X11 - bool KeymapWrapper::IsAutoRepeatableKey(guint aHardwareKeyCode) { - uint8_t indexOfArray = aHardwareKeyCode / 8; - MOZ_ASSERT(indexOfArray < ArrayLength(mKeyboardState.auto_repeats), -@@ -2030,6 +2046,7 @@ bool KeymapWrapper::IsAutoRepeatableKey(guint aHardwareKeyCode) { - char bitMask = 1 << (aHardwareKeyCode % 8); - return (mKeyboardState.auto_repeats[indexOfArray] & bitMask) != 0; - } -+#endif - - /* static */ - bool KeymapWrapper::IsBasicLatinLetterOrNumeral(uint32_t aCharCode) { -diff --git a/widget/gtk/nsGtkKeyUtils.h b/widget/gtk/nsGtkKeyUtils.h -index 07d60c27a6..43df8095fd 100644 ---- a/widget/gtk/nsGtkKeyUtils.h -+++ b/widget/gtk/nsGtkKeyUtils.h -@@ -13,7 +13,9 @@ - #include "nsTArray.h" - - #include -+#ifdef MOZ_X11 - #include -+#endif - #ifdef MOZ_WAYLAND - # include - # include -@@ -315,7 +317,9 @@ class KeymapWrapper { - * See a call of XkbSelectEventDetails() with XkbControlsNotify in - * InitXKBExtension(). - */ -+#ifdef MOZ_X11 - XKeyboardState mKeyboardState; -+#endif - - /** - * Pointer of the singleton instance. -@@ -326,7 +330,7 @@ class KeymapWrapper { - * Auto key repeat management. - */ - static guint sLastRepeatableHardwareKeyCode; -- static Time sLastRepeatableKeyTime; -+ static GTime sLastRepeatableKeyTime; - enum RepeatState { NOT_PRESSED, FIRST_PRESS, REPEATING }; - static RepeatState sRepeatState; - -diff --git a/widget/gtk/nsPrintDialogGTK.cpp b/widget/gtk/nsPrintDialogGTK.cpp -index 0050af3af3..c2c02e59ff 100644 ---- a/widget/gtk/nsPrintDialogGTK.cpp -+++ b/widget/gtk/nsPrintDialogGTK.cpp -@@ -26,7 +26,11 @@ - #include "nsIObserverService.h" - - // for gdk_x11_window_get_xid -+#ifdef MOZ_X11 - #include -+#else -+#include -+#endif - #include - #include - #include -@@ -525,6 +529,7 @@ static void wayland_window_handle_exported(GdkWindow* window, - static gboolean window_export_handle(GtkWindow* window, - GtkWindowHandleExported callback, - gpointer user_data) { -+#ifdef MOZ_X11 - if (GdkIsX11Display()) { - GdkWindow* gdk_window = gtk_widget_get_window(GTK_WIDGET(window)); - char* handle_str; -@@ -535,8 +540,9 @@ static gboolean window_export_handle(GtkWindow* window, - g_free(handle_str); - return true; - } -+#endif - #ifdef MOZ_WAYLAND -- else if (GdkIsWaylandDisplay()) { -+ if (GdkIsWaylandDisplay()) { - GdkWindow* gdk_window = gtk_widget_get_window(GTK_WIDGET(window)); - WaylandWindowHandleExportedData* data; - -diff --git a/widget/gtk/nsUserIdleServiceGTK.cpp b/widget/gtk/nsUserIdleServiceGTK.cpp -index 884d52a6ca..89bdc16b1a 100644 ---- a/widget/gtk/nsUserIdleServiceGTK.cpp -+++ b/widget/gtk/nsUserIdleServiceGTK.cpp -@@ -17,6 +17,7 @@ using mozilla::LogLevel; - - static mozilla::LazyLogModule sIdleLog("nsIUserIdleService"); - -+#ifdef MOZ_X11 - typedef bool (*_XScreenSaverQueryExtension_fn)(Display* dpy, int* event_base, - int* error_base); - -@@ -25,12 +26,14 @@ typedef XScreenSaverInfo* (*_XScreenSaverAllocInfo_fn)(void); - typedef void (*_XScreenSaverQueryInfo_fn)(Display* dpy, Drawable drw, - XScreenSaverInfo* info); - --static bool sInitialized = false; - static _XScreenSaverQueryExtension_fn _XSSQueryExtension = nullptr; - static _XScreenSaverAllocInfo_fn _XSSAllocInfo = nullptr; - static _XScreenSaverQueryInfo_fn _XSSQueryInfo = nullptr; -+#endif -+static bool sInitialized = false; - - static void Initialize() { -+#ifdef MOZ_X11 - if (!mozilla::widget::GdkIsX11Display()) { - return; - } -@@ -58,15 +61,22 @@ static void Initialize() { - if (!_XSSQueryInfo) - MOZ_LOG(sIdleLog, LogLevel::Warning, ("Failed to get XSSQueryInfo!\n")); - -+#endif - sInitialized = true; - } - --nsUserIdleServiceGTK::nsUserIdleServiceGTK() : mXssInfo(nullptr) { -+nsUserIdleServiceGTK::nsUserIdleServiceGTK() -+#ifdef MOZ_X11 -+: mXssInfo(nullptr) -+#endif -+{ - Initialize(); - } - - nsUserIdleServiceGTK::~nsUserIdleServiceGTK() { -+#ifdef MOZ_X11 - if (mXssInfo) XFree(mXssInfo); -+#endif - - // It is not safe to unload libXScrnSaver until each display is closed because - // the library registers callbacks through XESetCloseDisplay (Bug 397607). -@@ -88,6 +98,7 @@ bool nsUserIdleServiceGTK::PollIdleTime(uint32_t* aIdleTime) { - // Ask xscreensaver about idle time: - *aIdleTime = 0; - -+#ifdef MOZ_X11 - // We might not have a display (cf. in xpcshell) - Display* dplay = GDK_DISPLAY_XDISPLAY(gdk_display_get_default()); - if (!dplay) { -@@ -107,6 +118,7 @@ bool nsUserIdleServiceGTK::PollIdleTime(uint32_t* aIdleTime) { - *aIdleTime = mXssInfo->idle; - return true; - } -+#endif - // If we get here, we couldn't get to XScreenSaver: - MOZ_LOG(sIdleLog, LogLevel::Warning, ("XSSQueryExtension returned false!\n")); - return false; -diff --git a/widget/gtk/nsUserIdleServiceGTK.h b/widget/gtk/nsUserIdleServiceGTK.h -index 9b9ba31846..8f83aee584 100644 ---- a/widget/gtk/nsUserIdleServiceGTK.h -+++ b/widget/gtk/nsUserIdleServiceGTK.h -@@ -9,6 +9,7 @@ - #define nsUserIdleServiceGTK_h__ - - #include "nsUserIdleService.h" -+#ifdef MOZ_X11 - #include - #include - #include -@@ -21,6 +22,7 @@ typedef struct { - unsigned long idle; // milliseconds idle - unsigned long event_mask; // event stuff - } XScreenSaverInfo; -+#endif - - class nsUserIdleServiceGTK : public nsUserIdleService { - public: -@@ -40,7 +42,9 @@ class nsUserIdleServiceGTK : public nsUserIdleService { - - private: - ~nsUserIdleServiceGTK(); -+#ifdef MOZ_X11 - XScreenSaverInfo* mXssInfo; -+#endif - - protected: - nsUserIdleServiceGTK(); -diff --git a/widget/gtk/nsWidgetFactory.cpp b/widget/gtk/nsWidgetFactory.cpp -index d649c7e0bf..70b47d5124 100644 ---- a/widget/gtk/nsWidgetFactory.cpp -+++ b/widget/gtk/nsWidgetFactory.cpp -@@ -20,9 +20,7 @@ - #include "nsHTMLFormatConverter.h" - #include "HeadlessClipboard.h" - #include "IMContextWrapper.h" --#ifdef MOZ_X11 --# include "nsClipboard.h" --#endif -+#include "nsClipboard.h" - #include "TaskbarProgress.h" - #include "nsFilePicker.h" - #include "nsSound.h" -@@ -36,7 +34,6 @@ - using namespace mozilla; - using namespace mozilla::widget; - --#ifdef MOZ_X11 - NS_IMPL_COMPONENT_FACTORY(nsIClipboard) { - nsCOMPtr inst; - if (gfxPlatform::IsHeadless()) { -@@ -51,7 +48,6 @@ NS_IMPL_COMPONENT_FACTORY(nsIClipboard) { - - return inst.forget().downcast(); - } --#endif - - nsresult nsWidgetGtk2ModuleCtor() { return nsAppShellInit(); } - -diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp -index aec5588fae..2df8558a4f 100644 ---- a/widget/gtk/nsWindow.cpp -+++ b/widget/gtk/nsWindow.cpp -@@ -58,7 +58,6 @@ - #include "mozilla/UniquePtrExtensions.h" - #include "mozilla/WidgetUtils.h" - #include "mozilla/WritingModes.h" --#include "mozilla/X11Util.h" - #include "mozilla/XREAppData.h" - #include "NativeKeyBindings.h" - #include "nsAppDirectoryServiceDefs.h" -@@ -90,7 +89,6 @@ - #include "ScreenHelperGTK.h" - #include "SystemTimeConverter.h" - #include "WidgetUtilsGtk.h" --#include "mozilla/X11Util.h" - - #ifdef ACCESSIBILITY - # include "mozilla/a11y/LocalAccessible.h" -@@ -98,18 +96,22 @@ - # include "nsAccessibilityService.h" - #endif - -+#include "GLContextEGL.h" -+#include "GtkCompositorWidget.h" - #ifdef MOZ_X11 -+# include "mozilla/X11Util.h" - # include - # include - # include - # include - # include "gfxXlibSurface.h" - # include "GLContextGLX.h" // for GLContextGLX::FindVisual() --# include "GLContextEGL.h" // for GLContextEGL::FindVisual() - # include "WindowSurfaceX11Image.h" - # include "WindowSurfaceX11SHM.h" - #endif - #ifdef MOZ_WAYLAND -+# include -+# include - # include "nsIClipboard.h" - # include "nsView.h" - #endif -@@ -119,7 +121,9 @@ using namespace mozilla::gfx; - using namespace mozilla::layers; - using namespace mozilla::widget; - using mozilla::gl::GLContextEGL; -+#ifdef MOZ_X11 - using mozilla::gl::GLContextGLX; -+#endif - - // Don't put more than this many rects in the dirty region, just fluff - // out to the bounding-box if there are more -@@ -278,6 +282,7 @@ bool nsWindow::sTransparentMainWindow = false; - - namespace mozilla { - -+#ifdef MOZ_X11 - class CurrentX11TimeGetter { - public: - explicit CurrentX11TimeGetter(GdkWindow* aWindow) -@@ -325,6 +330,7 @@ class CurrentX11TimeGetter { - GdkWindow* mWindow; - TimeStamp mAsyncUpdateStart; - }; -+#endif - - } // namespace mozilla - -@@ -934,16 +940,20 @@ bool nsWindow::WidgetTypeSupportsAcceleration() { - if (mWindowType == eWindowType_popup) { - // See Bug 1731125. NVIDIA drivers does not provide transparent - // visual on X11/EGL. -+#ifdef MOZ_X11 - if (GdkIsX11Display() && gfxVars::UseEGL()) { - return false; - } -+#endif - return HasRemoteContent() && mCompositedScreen; - } - // Workaround for Bug 1730822 -+#ifdef MOZ_X11 - if (mWindowType == eWindowType_child && GdkIsX11Display() && - gfxVars::UseEGL()) { - return false; - } -+#endif - - return true; - } -@@ -2479,11 +2489,13 @@ void nsWindow::NativeMove() { - - LOG(("nsWindow::NativeMove [%p] %d %d\n", (void*)this, point.x, point.y)); - -+#ifdef MOZ_X11 - if (GdkIsX11Display() && IsPopup() && - !gtk_widget_get_visible(GTK_WIDGET(mShell))) { - mHiddenPopupPositioned = true; - mPopupPosition = point; - } -+#endif - - if (IsWaylandPopup()) { - GdkRectangle size = DevicePixelsToGdkSizeRoundUp(mBounds.Size()); -@@ -2567,6 +2579,7 @@ void nsWindow::SetSizeMode(nsSizeMode aMode) { - } - - static bool GetWindowManagerName(GdkWindow* gdk_window, nsACString& wmName) { -+#ifdef MOZ_X11 - if (!GdkIsX11Display()) { - return false; - } -@@ -2633,6 +2646,7 @@ static bool GetWindowManagerName(GdkWindow* gdk_window, nsACString& wmName) { - } - - wmName = reinterpret_cast(prop_return); -+#endif - return true; - } - -@@ -2690,6 +2704,7 @@ void nsWindow::GetWorkspaceID(nsAString& workspaceID) { - if (!GdkIsX11Display() || !mShell) { - return; - } -+#ifdef MOZ_X11 - // Get the gdk window for this widget. - GdkWindow* gdk_window = gtk_widget_get_window(mShell); - if (!gdk_window) { -@@ -2718,9 +2733,11 @@ void nsWindow::GetWorkspaceID(nsAString& workspaceID) { - - workspaceID.AppendInt((int32_t)wm_desktop[0]); - g_free(wm_desktop); -+#endif - } - - void nsWindow::MoveToWorkspace(const nsAString& workspaceIDStr) { -+#ifdef MOZ_X11 - nsresult rv = NS_OK; - int32_t workspaceID = workspaceIDStr.ToInteger(&rv); - if (NS_FAILED(rv) || !workspaceID || !GdkIsX11Display() || !mShell) { -@@ -2760,6 +2777,7 @@ void nsWindow::MoveToWorkspace(const nsAString& workspaceIDStr) { - SubstructureNotifyMask | SubstructureRedirectMask, &xevent); - - XFlush(xdisplay); -+#endif - } - - using SetUserTimeFunc = void (*)(GdkWindow*, guint32); -@@ -2800,9 +2818,13 @@ guint32 nsWindow::GetLastUserInputTime() { - // button and key releases. Therefore use the most recent of - // gdk_x11_display_get_user_time and the last time that we have seen. - GdkDisplay* gdkDisplay = gdk_display_get_default(); -+#ifdef MOZ_X11 - guint32 timestamp = GdkIsX11Display(gdkDisplay) - ? gdk_x11_display_get_user_time(gdkDisplay) - : gtk_get_current_event_time(); -+#else -+ guint32 timestamp = gtk_get_current_event_time(); -+#endif - - if (sLastUserInputTime != GDK_CURRENT_TIME && - TimestampIsNewerThan(sLastUserInputTime, timestamp)) { -@@ -2960,6 +2982,7 @@ void nsWindow::UpdateClientOffsetFromFrameExtents() { - return; - } - -+#ifdef MOZ_X11 - GdkAtom cardinal_atom = gdk_x11_xatom_to_atom(XA_CARDINAL); - - GdkAtom type_returned; -@@ -2985,6 +3008,7 @@ void nsWindow::UpdateClientOffsetFromFrameExtents() { - - mClientOffset = nsIntPoint(left, top); - } -+#endif - - // Send a WindowMoved notification. This ensures that BrowserParent - // picks up the new client offset and sends it to the child process -@@ -3003,6 +3027,7 @@ LayoutDeviceIntPoint nsWindow::GetClientOffset() { - - gboolean nsWindow::OnPropertyNotifyEvent(GtkWidget* aWidget, - GdkEventProperty* aEvent) { -+#ifdef MOZ_X11 - if (aEvent->atom == gdk_atom_intern("_NET_FRAME_EXTENTS", FALSE)) { - UpdateClientOffsetFromFrameExtents(); - return FALSE; -@@ -3012,6 +3037,7 @@ gboolean nsWindow::OnPropertyNotifyEvent(GtkWidget* aWidget, - return TRUE; - } - -+#endif - return FALSE; - } - -@@ -3149,9 +3175,11 @@ void* nsWindow::GetNativeData(uint32_t aDataType) { - return GetToplevelWidget(); - - case NS_NATIVE_WINDOW_WEBRTC_DEVICE_ID: -+#ifdef MOZ_X11 - if (GdkIsX11Display()) { - return (void*)GDK_WINDOW_XID(gdk_window_get_toplevel(mGdkWindow)); - } -+#endif - NS_WARNING( - "nsWindow::GetNativeData(): NS_NATIVE_WINDOW_WEBRTC_DEVICE_ID is not " - "handled on Wayland!"); -@@ -3171,9 +3199,11 @@ void* nsWindow::GetNativeData(uint32_t aDataType) { - case NS_NATIVE_OPENGL_CONTEXT: - return nullptr; - case NS_NATIVE_EGL_WINDOW: { -+#ifdef MOZ_X11 - if (GdkIsX11Display()) { - return mGdkWindow ? (void*)GDK_WINDOW_XID(mGdkWindow) : nullptr; - } -+#endif - #ifdef MOZ_WAYLAND - if (mContainer) { - return moz_container_wayland_get_egl_window(mContainer, -@@ -3497,7 +3527,7 @@ gboolean nsWindow::OnExposeEvent(cairo_t* cr) { - if (!listener) return FALSE; - - LOG(("received expose event [%p] %p 0x%lx (rects follow):\n", this, -- mGdkWindow, GdkIsX11Display() ? gdk_x11_window_get_xid(mGdkWindow) : 0)); -+ mGdkWindow, 0)); - LayoutDeviceIntRegion exposeRegion; - if (!ExtractExposeRegion(exposeRegion, cr)) { - return FALSE; -@@ -4041,6 +4071,7 @@ void nsWindow::OnMotionNotifyEvent(GdkEventMotion* aEvent) { - MOZ_ASSERT(gdk_window, "gdk_window_get_toplevel should not return null"); - - bool canDrag = true; -+#ifdef MOZ_X11 - if (GdkIsX11Display()) { - // Workaround for https://bugzilla.gnome.org/show_bug.cgi?id=789054 - // To avoid crashes disable double-click on WM without _NET_WM_MOVERESIZE. -@@ -4051,6 +4082,7 @@ void nsWindow::OnMotionNotifyEvent(GdkEventMotion* aEvent) { - canDrag = false; - } - } -+#endif - - if (canDrag) { - gdk_window_begin_move_drag(gdk_window, 1, aEvent->x_root, aEvent->y_root, -@@ -4499,16 +4531,20 @@ TimeStamp nsWindow::GetEventTimeStamp(guint32 aEventTime) { - int64_t tick = - BaseTimeDurationPlatformUtils::TicksFromMilliseconds(timestampTime); - eventTimeStamp = TimeStamp::FromSystemTime(tick); -- } else { -+ } -+#ifdef MOZ_X11 -+ else { - CurrentX11TimeGetter* getCurrentTime = GetCurrentTimeGetter(); - MOZ_ASSERT(getCurrentTime, - "Null current time getter despite having a window"); - eventTimeStamp = - TimeConverter().GetTimeStampFromSystemTime(aEventTime, *getCurrentTime); - } -+#endif - return eventTimeStamp; - } - -+#ifdef MOZ_X11 - mozilla::CurrentX11TimeGetter* nsWindow::GetCurrentTimeGetter() { - MOZ_ASSERT(mGdkWindow, "Expected mGdkWindow to be set"); - if (MOZ_UNLIKELY(!mCurrentTimeGetter)) { -@@ -4516,6 +4552,7 @@ mozilla::CurrentX11TimeGetter* nsWindow::GetCurrentTimeGetter() { - } - return mCurrentTimeGetter.get(); - } -+#endif - - gboolean nsWindow::OnKeyPressEvent(GdkEventKey* aEvent) { - LOG(("OnKeyPressEvent [%p]\n", (void*)this)); -@@ -5100,6 +5137,7 @@ static GdkWindow* CreateGdkWindow(GdkWindow* parent, GtkWidget* widget) { - return window; - } - -+#ifdef MOZ_X11 - // Configure GL visual on X11. We add alpha silently - // if we use WebRender to workaround NVIDIA specific Bug 1663273. - bool nsWindow::ConfigureX11GLVisual(bool aUseAlpha) { -@@ -5156,6 +5194,7 @@ bool nsWindow::ConfigureX11GLVisual(bool aUseAlpha) { - - return true; - } -+#endif - - nsCString nsWindow::GetWindowNodeName() { - nsCString nodeName("Unknown"); -@@ -5740,7 +5779,7 @@ nsresult nsWindow::Create(nsIWidget* aParent, nsNativeWidget aNativeParent, - if (mShell) { - LOG(("\tmShell %p mContainer %p mGdkWindow %p XID 0x%lx\n", mShell, - mContainer, mGdkWindow, -- GdkIsX11Display() ? gdk_x11_window_get_xid(mGdkWindow) : 0)); -+ 0)); - } else if (mContainer) { - LOG(("\tmContainer %p mGdkWindow %p\n", mContainer, mGdkWindow)); - } else if (mGdkWindow) { -@@ -6812,6 +6851,7 @@ void nsWindow::UpdateTitlebarTransparencyBitmap() { - cairo_surface_destroy(surface); - } - -+#ifdef MOZ_X11 - if (!mNeedsShow) { - Display* xDisplay = GDK_WINDOW_XDISPLAY(mGdkWindow); - Window xDrawable = GDK_WINDOW_XID(mGdkWindow); -@@ -6834,6 +6874,7 @@ void nsWindow::UpdateTitlebarTransparencyBitmap() { - - XFreePixmap(xDisplay, maskPixmap); - } -+#endif - } - - void nsWindow::GrabPointer(guint32 aTime) { -@@ -7116,7 +7157,7 @@ static bool IsFullscreenSupported(GtkWidget* aShell) { - GdkScreen* screen = gtk_widget_get_screen(aShell); - GdkAtom atom = gdk_atom_intern("_NET_WM_STATE_FULLSCREEN", FALSE); - return gdk_x11_screen_supports_net_wm_hint(screen, atom); --#elif -+#else - return true; - #endif - } -@@ -8396,6 +8437,7 @@ bool nsWindow::GetDragInfo(WidgetMouseEvent* aMouseEvent, GdkWindow** aWindow, - return false; - } - -+#ifdef MOZ_X11 - if (GdkIsX11Display()) { - // Workaround for https://bugzilla.gnome.org/show_bug.cgi?id=789054 - // To avoid crashes disable double-click on WM without _NET_WM_MOVERESIZE. -@@ -8411,6 +8453,7 @@ bool nsWindow::GetDragInfo(WidgetMouseEvent* aMouseEvent, GdkWindow** aWindow, - } - } - } -+#endif - - // FIXME: It would be nice to have the widget position at the time - // of the event, but it's relatively unlikely that the widget has -@@ -9131,6 +9174,7 @@ void nsWindow::GetCompositorWidgetInitData( - mozilla::widget::CompositorWidgetInitData* aInitData) { - nsCString displayName; - -+#ifdef MOZ_X11 - if (GdkIsX11Display() && mXWindow != X11None) { - // Make sure the window XID is propagated to X server, we can fail otherwise - // in GPU process (Bug 1401634). -@@ -9144,6 +9188,10 @@ void nsWindow::GetCompositorWidgetInitData( - *aInitData = mozilla::widget::GtkCompositorWidgetInitData( - (mXWindow != X11None) ? mXWindow : (uintptr_t) nullptr, displayName, - isShaped, GdkIsX11Display(), GetClientSize()); -+#else -+ *aInitData = mozilla::widget::GtkCompositorWidgetInitData( -+ (uintptr_t) nullptr, nsCString(), 0, 0, GetClientSize()); -+#endif - } - - #ifdef MOZ_X11 -diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h -index 4b524a0795..2479298799 100644 ---- a/widget/gtk/nsWindow.h -+++ b/widget/gtk/nsWindow.h -@@ -93,7 +93,9 @@ typedef struct _GdkEventTouchpadPinch GdkEventTouchpadPinch; - - namespace mozilla { - class TimeStamp; -+#ifdef MOZ_X11 - class CurrentX11TimeGetter; -+#endif - - } // namespace mozilla - -@@ -274,7 +276,9 @@ class nsWindow final : public nsBaseWidget { - - WidgetEventTime GetWidgetEventTime(guint32 aEventTime); - mozilla::TimeStamp GetEventTimeStamp(guint32 aEventTime); -+#ifdef MOZ_X11 - mozilla::CurrentX11TimeGetter* GetCurrentTimeGetter(); -+#endif - - virtual void SetInputContext(const InputContext& aContext, - const InputContextAction& aAction) override; -@@ -806,7 +810,9 @@ class nsWindow final : public nsBaseWidget { - */ - RefPtr mIMContext; - -+#ifdef MOZ_X11 - mozilla::UniquePtr mCurrentTimeGetter; -+#endif - static GtkWindowDecoration sGtkWindowDecoration; - - static bool sTransparentMainWindow; -@@ -857,6 +863,7 @@ class nsWindow final : public nsBaseWidget { - void DispatchRestoreEventAccessible(); - #endif - -+mozilla::widget::WindowSurfaceProvider mSurfaceProvider; - #ifdef MOZ_X11 - typedef enum {GTK_WIDGET_COMPOSIDED_DEFAULT = 0, - GTK_WIDGET_COMPOSIDED_DISABLED = 1, -@@ -866,7 +873,6 @@ class nsWindow final : public nsBaseWidget { - Window mXWindow; - Visual* mXVisual; - int mXDepth; -- mozilla::widget::WindowSurfaceProvider mSurfaceProvider; - - bool ConfigureX11GLVisual(bool aUseAlpha); - #endif -diff --git a/widget/moz.build b/widget/moz.build -index f5f28d2214..969ab5d003 100644 ---- a/widget/moz.build -+++ b/widget/moz.build -@@ -258,7 +258,7 @@ if CONFIG["MOZ_INSTRUMENT_EVENT_LOOP"]: - - EXPORTS.ipc = ["nsGUIEventIPC.h"] - --if CONFIG["MOZ_X11"]: -+if CONFIG["MOZ_X11"] or CONFIG["MOZ_WAYLAND"]: - DIRS += ["x11"] - - if toolkit in ("cocoa", "windows"): -@@ -305,7 +305,7 @@ if toolkit == "windows": - "windows/PCompositorWidget.ipdl", - "windows/PlatformWidgetTypes.ipdlh", - ] --elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk" and CONFIG["MOZ_X11"]: -+elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": - IPDL_SOURCES = [ - "gtk/PCompositorWidget.ipdl", - "gtk/PlatformWidgetTypes.ipdlh", diff --git a/testing/firefox/post-install b/testing/firefox/post-install deleted file mode 100755 index 2f40c517..00000000 --- a/testing/firefox/post-install +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -cat <