diff --git a/extra/firefox/build b/extra/firefox/build
index dbf944dc..9eb13b8c 100755
--- a/extra/firefox/build
+++ b/extra/firefox/build
@@ -1,8 +1,6 @@
 #!/bin/sh -e
 
-for patch in *.patch; do
-    patch -p1 < "$patch"
-done
+patch -p1 < no-gtk2.patch
 
 # Remove libc header which conflicts with 7 or so Linux
 # kernel headers. See: https://github.com/kisslinux/repo/issues/207
@@ -36,64 +34,62 @@ sed -i '/net\/if/d' \
 )
 export PATH="$PWD/junk/bin:$PATH"
 
-mkdir -p build
-cd build
-
-# Bypass 'ccache' as it's totally useless when building
-# Firefox and only slows things down.
-export CC="${CC:-/usr/bin/cc}"
-export CXX="${CXX:-/usr/bin/c++}"
+# Force clang for builds.
+export CC="${CC:-clang}"
+export CXX="${CXX:-clang++}"
 
 export LDFLAGS="$LDFLAGS -Wl,-rpath=/usr/lib/firefox"
 export RUSTFLAGS="$RUSTFLAGS -Cdebuginfo=0"
+export MACH_USE_SYSTEM_PYTHON=1
 export MOZ_DEBUG_FLAGS=-g0
 export MOZ_NOSPAM=1
 
-../configure \
-    --prefix=/usr \
-    --libdir=/usr/lib \
-    --enable-official-branding \
-    --enable-optimize="$CFLAGS -w" \
-    --enable-install-strip \
-    --enable-strip \
-    --enable-rust-simd \
-    --enable-application=browser \
-    --enable-release \
-    --enable-alsa \
-    --without-system-nspr \
-    --without-system-nss \
-    --with-system-jpeg \
-    --with-system-zlib \
-    --with-system-png \
-    --without-system-libvpx \
-    --with-system-pixman \
-    --with-system-ffi \
-    --disable-profiling \
-    --disable-accessibility \
-    --disable-tests \
-    --disable-system-extension-dirs \
-    --disable-parental-controls \
-    --disable-debug-symbols \
-    --disable-callgrind \
-    --disable-vtune \
-    --disable-elf-hack \
-    --disable-gold \
-    --disable-jemalloc \
-    --disable-pulseaudio \
-    --disable-crashreporter \
-    --disable-updater \
-    --disable-dbus \
-    --disable-eme \
-    --disable-necko-wifi
+cat > .mozconfig << EOF
+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-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 --without-system-libvpx
+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
 
-make
-make DESTDIR="$1" install
+./mach build
+DESTDIR="$1" ./mach install
 
 # Remove a lot of uneeded "stuff".
 rm -rf "$1/usr/include"
 rm -rf "$1/usr/lib/firefox-devel"
 rm -rf "$1/usr/share/idl"
-rm -rf "$1/usr/lib/firefox/gtk2" # Drop GTK+2 runtime dependency.
 rm -f  "$1/usr/lib/firefox/browser/features/fxmonitor@mozilla.org.xpi"
 rm -f  "$1/usr/lib/firefox/browser/features/screenshots@mozilla.org.xpi"
 rm -f  "$1/usr/lib/firefox/browser/features/webcompat-reporter@mozilla.org.xpi"
diff --git a/extra/firefox/checksums b/extra/firefox/checksums
index fc87291a..d541e03f 100644
--- a/extra/firefox/checksums
+++ b/extra/firefox/checksums
@@ -1,4 +1,4 @@
-d69e84e8b8449f828683d274c24e03095858362bfed21b08bdd7fe715eea5398
+3225f583c5e36bdf52ad16f71a2c359deb0c765c38205acdeb6b7b6520ac5494
 f0611136bee505811e9ca11ca7ac188ef5323a8e2ef19cffd3edb3cf08fd791e
 3dce6601b495f5b3d45b59f7d2492a340ee7e84b5beca17e48f862502bd5603f
-59b8b435d2986e213cb6833e143987451e3f20edeb810bb941df69c4a730bb7b
+f18d00475ab9d7c4e8bd2dfcda00dc7ff4a1f930e3ffcee420aeadf636469cef
diff --git a/extra/firefox/patches/no-gtk2.patch b/extra/firefox/patches/no-gtk2.patch
index 0bf249ec..568f777e 100644
--- a/extra/firefox/patches/no-gtk2.patch
+++ b/extra/firefox/patches/no-gtk2.patch
@@ -1,12 +1,5 @@
-Removes the GTK2 build requirement. A little sloppy in places,
-will be cleaned up over the next couple of weeks. Based on a
-patch posted to Bugzilla here:
-
-https://bugzilla.mozilla.org/show_bug.cgi?id=1663588
-
----
 diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
-index 75c79a7168..ee9cd18fe8 100644
+index 566e643..cb1e0dd 100644
 --- a/browser/installer/package-manifest.in
 +++ b/browser/installer/package-manifest.in
 @@ -107,7 +107,6 @@
@@ -18,1261 +11,61 @@ index 75c79a7168..ee9cd18fe8 100644
  @BINPATH@/@DLL_PREFIX@mozwayland@DLL_SUFFIX@
  #endif
 diff --git a/dom/moz.build b/dom/moz.build
-index d34d8a7f75..4e5648089b 100644
+index 9989f50..8c8167e 100644
 --- a/dom/moz.build
 +++ b/dom/moz.build
-@@ -119,7 +119,7 @@ TEST_DIRS += [
-     'imptests',
+@@ -120,7 +120,7 @@ TEST_DIRS += [
+     "imptests",
  ]
-
--if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk', 'cocoa', 'windows'):
-+if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('cocoa', 'windows'):
-     TEST_DIRS += ['plugins/test']
-
- SPHINX_TREES['/dom'] = 'docs'
-diff --git a/dom/plugins/base/npapi.h b/dom/plugins/base/npapi.h
-index d6b189baef..adc98f975c 100644
---- a/dom/plugins/base/npapi.h
-+++ b/dom/plugins/base/npapi.h
-@@ -41,9 +41,9 @@
- #  endif
- #endif
-
--#if defined(XP_UNIX)
-+#if defined(MOZ_X11)
- #  include <stdio.h>
--#  if defined(MOZ_X11)
-+#  if 0
- #    include <X11/Xlib.h>
- #    include <X11/Xutil.h>
- #    include "X11UndefineNone.h"
-@@ -211,7 +211,7 @@ typedef struct _NPAsyncSurface {
- /* Exact meaning must be spec'd in event model. */
- #  define kNPEventStartIME 2
-
--#  if defined(XP_UNIX)
-+#  if 0
- /*
-  * Unix specific structures and definitions
-  */
-@@ -229,7 +229,7 @@ typedef struct {
-
- typedef struct {
-   int32_t type;
--#    if defined(MOZ_X11)
-+#    if 0
-   Display* display;
-   Visual* visual;
-   Colormap colormap;
-@@ -291,7 +291,7 @@ typedef enum {
-   ,
-   NPDrawingModelSyncWin = 5
- #  endif
--#  if defined(MOZ_X11)
-+#  if 0
-   ,
-   NPDrawingModelSyncX = 6
- #  endif
-@@ -330,7 +330,7 @@ typedef enum {
-  *   gcc 3.x generated vtables on UNIX and OSX are incompatible with
-  *   previous compilers.
-  */
--#  if (defined(XP_UNIX) && defined(__GNUC__) && (__GNUC__ >= 3))
-+#  if 0
- #    define _NP_ABI_MIXIN_FOR_GCC3 NP_ABI_GCC3_MASK
- #  else
- #    define _NP_ABI_MIXIN_FOR_GCC3 0
-@@ -530,7 +530,7 @@ typedef struct _NPWindow {
-   uint32_t width; /* Maximum window size */
-   uint32_t height;
-   NPRect clipRect; /* Clipping rectangle in port coordinates */
--#  if (defined(XP_UNIX) || defined(XP_SYMBIAN)) && !defined(XP_MACOSX)
-+#  if (defined(XP_SYMBIAN)) && !defined(XP_MACOSX)
-   void* ws_info;     /* Platform-dependent additional data */
- #  endif             /* XP_UNIX */
-   NPWindowType type; /* Is this a window or a drawable? */
-@@ -583,7 +583,7 @@ typedef struct _NPEvent {
-   uintptr_t wParam;
-   intptr_t lParam;
- } NPEvent;
--#  elif defined(XP_UNIX) && defined(MOZ_X11)
-+#  elif 0
- typedef XEvent NPEvent;
- #  else
- typedef void* NPEvent;
-@@ -597,7 +597,7 @@ typedef RgnHandle NPQDRegion;
- typedef CGPathRef NPCGRegion;
- #  elif defined(XP_WIN)
- typedef HRGN NPRegion;
--#  elif defined(XP_UNIX) && defined(MOZ_X11)
-+#  elif 0
- typedef Region NPRegion;
- #  elif defined(XP_SYMBIAN)
- typedef QRegion* NPRegion;
-@@ -828,7 +828,7 @@ extern "C" {
-
- /* NPP_* functions are provided by the plugin and called by the navigator. */
-
--#  if defined(XP_UNIX)
-+#  if 0
- const char* NPP_GetMIMEDescription(void);
- #  endif
-
-diff --git a/dom/plugins/base/nsNPAPIPlugin.cpp b/dom/plugins/base/nsNPAPIPlugin.cpp
-index 829db86079..9870c6a487 100644
---- a/dom/plugins/base/nsNPAPIPlugin.cpp
-+++ b/dom/plugins/base/nsNPAPIPlugin.cpp
-@@ -55,7 +55,7 @@
- #endif
-
- // needed for nppdf plugin
--#if (MOZ_WIDGET_GTK)
-+#if 0
- #  include <gdk/gdk.h>
- #  include <gdk/gdkx.h>
- #endif
-@@ -74,7 +74,7 @@ using mozilla::PluginLibrary;
- using mozilla::plugins::PluginModuleChromeParent;
- using mozilla::plugins::PluginModuleContentParent;
-
--#ifdef MOZ_X11
-+#if 0
- #  include "mozilla/X11Util.h"
- #endif
-
-@@ -1224,9 +1224,9 @@ NPError _getvalue(NPP npp, NPNVariable variable, void* result) {
-   // Cast NPNVariable enum to int to avoid warnings about including switch
-   // cases for android_npapi.h's non-standard ANPInterface values.
-   switch (static_cast<int>(variable)) {
--#if defined(XP_UNIX) && !defined(XP_MACOSX)
-+#if 0
-     case NPNVxDisplay: {
--#  if defined(MOZ_X11)
-+#  if 0
-       if (npp) {
-         nsNPAPIPluginInstance* inst = (nsNPAPIPluginInstance*)npp->ndata;
-         bool windowless = false;
-@@ -1260,7 +1260,7 @@ NPError _getvalue(NPP npp, NPNVariable variable, void* result) {
-       return NPERR_GENERIC_ERROR;
- #endif
-
--#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK)
-+#if defined(XP_WIN)
-     case NPNVnetscapeWindow: {
-       if (!npp || !npp->ndata) return NPERR_INVALID_INSTANCE_ERROR;
-
-@@ -1302,7 +1302,7 @@ NPError _getvalue(NPP npp, NPNVariable variable, void* result) {
-     }
-
-     case NPNVToolkit: {
--#ifdef MOZ_WIDGET_GTK
-+#if 0
-       *((NPNToolkitType*)result) = NPNVGtk2;
- #endif
-
-@@ -1312,7 +1312,7 @@ NPError _getvalue(NPP npp, NPNVariable variable, void* result) {
-     }
-
-     case NPNVSupportsXEmbedBool: {
--#ifdef MOZ_WIDGET_GTK
-+#if 0
-       *(NPBool*)result = true;
- #else
-       *(NPBool*)result = false;
-@@ -1333,8 +1333,7 @@ NPError _getvalue(NPP npp, NPNVariable variable, void* result) {
-     }
-
-     case NPNVSupportsWindowless: {
--#if defined(XP_WIN) || defined(XP_MACOSX) || \
--    (defined(MOZ_X11) && defined(MOZ_WIDGET_GTK))
-+#if defined(XP_WIN) || defined(XP_MACOSX)
-       *(NPBool*)result = true;
- #else
-       *(NPBool*)result = false;
-diff --git a/dom/plugins/base/nsNPAPIPluginInstance.cpp b/dom/plugins/base/nsNPAPIPluginInstance.cpp
-index c011cd038d..1d5224a45d 100644
---- a/dom/plugins/base/nsNPAPIPluginInstance.cpp
-+++ b/dom/plugins/base/nsNPAPIPluginInstance.cpp
-@@ -316,7 +316,7 @@ nsresult nsNPAPIPluginInstance::SetWindow(NPWindow* window) {
-   // NPAPI plugins don't want a SetWindow(nullptr).
-   if (!window || RUNNING != mRunning) return NS_OK;
-
--#if MOZ_WIDGET_GTK
-+#if 0
-   // bug 108347, flash plugin on linux doesn't like window->width <= 0
-   return NS_OK;
- #endif
-diff --git a/dom/plugins/base/nsNPAPIPluginInstance.h b/dom/plugins/base/nsNPAPIPluginInstance.h
-index 1ca2569ae8..2977f96902 100644
---- a/dom/plugins/base/nsNPAPIPluginInstance.h
-+++ b/dom/plugins/base/nsNPAPIPluginInstance.h
-@@ -38,7 +38,7 @@ class Element;
-
- #if defined(OS_WIN)
- const NPDrawingModel kDefaultDrawingModel = NPDrawingModelSyncWin;
--#elif defined(MOZ_X11)
-+#elif 0
- const NPDrawingModel kDefaultDrawingModel = NPDrawingModelSyncX;
- #elif defined(XP_MACOSX)
- #  ifndef NP_NO_QUICKDRAW
-diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp
-index 8edea3aa14..66dd9a1973 100644
---- a/dom/plugins/base/nsPluginHost.cpp
-+++ b/dom/plugins/base/nsPluginHost.cpp
-@@ -85,7 +85,7 @@
- #  include "windows.h"
- #  include "winbase.h"
- #endif
--#if (MOZ_WIDGET_GTK)
-+#if 0
- #  include <gdk/gdk.h>
- #  include <gdk/gdkx.h>
- #endif
-@@ -278,7 +278,7 @@ nsPluginHost::nsPluginHost()
-   }
-
-   bool waylandBackend = false;
--#if MOZ_WIDGET_GTK
-+#if 0
-   GdkDisplay* display = gdk_display_get_default();
-   if (display) {
-     waylandBackend = !GDK_IS_X11_DISPLAY(display);
-diff --git a/dom/plugins/base/nsPluginInstanceOwner.cpp b/dom/plugins/base/nsPluginInstanceOwner.cpp
-index 23053888d4..0e6376e758 100644
---- a/dom/plugins/base/nsPluginInstanceOwner.cpp
-+++ b/dom/plugins/base/nsPluginInstanceOwner.cpp
-@@ -4,7 +4,7 @@
-  * License, v. 2.0. If a copy of the MPL was not distributed with this
-  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
--#ifdef MOZ_X11
-+#if 0
- #  include <cairo-xlib.h>
- #  include "gfxXlibSurface.h"
- /* X headers suck */
-@@ -75,7 +75,7 @@ static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID);
- #  include "ComplexTextInputPanel.h"
- #endif
-
--#ifdef MOZ_WIDGET_GTK
-+#if 0
- #  include <gdk/gdk.h>
- #  include <gtk/gtk.h>
- #endif
-@@ -621,7 +621,7 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetNetscapeWindow(void* value) {
-   }
-
-   return NS_OK;
--#elif defined(MOZ_WIDGET_GTK) && defined(MOZ_X11)
-+#elif 0
-   // X11 window managers want the toplevel window for WM_TRANSIENT_FOR.
-   nsIWidget* win = mPluginFrame->GetNearestWidget();
-   if (!win) return NS_ERROR_FAILURE;
-@@ -1743,7 +1743,7 @@ nsresult nsPluginInstanceOwner::HandleEvent(Event* aEvent) {
-   return NS_OK;
- }
-
--#ifdef MOZ_X11
-+#if 0
- static unsigned int XInputEventState(const WidgetInputEvent& anEvent) {
-   unsigned int state = 0;
-   if (anEvent.IsShift()) state |= ShiftMask;
-@@ -2224,7 +2224,7 @@ nsEventStatus nsPluginInstanceOwner::ProcessEvent(
-   }
- #endif
-
--#ifdef MOZ_X11
-+#if 0
-   // this code supports windowless plugins
-   nsIWidget* widget = anEvent.mWidget;
-   XEvent pluginEvent = XEvent();
-@@ -2255,7 +2255,7 @@ nsEventStatus nsPluginInstanceOwner::ProcessEvent(
-       if (widget) {
-         rootPoint = anEvent.mRefPoint + widget->WidgetToScreenOffset();
-       }
--#  ifdef MOZ_WIDGET_GTK
-+#  if 0
-       Window root = GDK_ROOT_WINDOW();
- #  else
-       Window root = X11None;  // Could XQueryTree, but this is not important.
-@@ -2333,7 +2333,7 @@ nsEventStatus nsPluginInstanceOwner::ProcessEvent(
-     case eKeyboardEventClass:
-       if (anEvent.mPluginEvent) {
-         XKeyEvent& event = pluginEvent.xkey;
--#  ifdef MOZ_WIDGET_GTK
-+#  if 0
-         event.root = GDK_ROOT_WINDOW();
-         event.time = anEvent.mTime;
-         const GdkEventKey* gdkEvent =
-@@ -2517,7 +2517,7 @@ void nsPluginInstanceOwner::Paint(const RECT& aDirty, HDC aDC) {
- }
- #endif
-
--#if defined(MOZ_X11)
-+#if 0
- void nsPluginInstanceOwner::Paint(gfxContext* aContext,
-                                   const gfxRect& aFrameRect,
-                                   const gfxRect& aDirtyRect) {
-@@ -2651,7 +2651,7 @@ nsresult nsPluginInstanceOwner::Renderer::DrawWithXlib(
-
-   NPSetWindowCallbackStruct* ws_info =
-       static_cast<NPSetWindowCallbackStruct*>(mWindow->ws_info);
--#  ifdef MOZ_X11
-+#  if 0
-   if (ws_info->visual != visual || ws_info->colormap != colormap) {
-     ws_info->visual = visual;
-     ws_info->colormap = colormap;
-@@ -2863,7 +2863,7 @@ NS_IMETHODIMP nsPluginInstanceOwner::CreateWidget(void) {
-     // passing HDC till paint event when it is really
-     // needed. Change spec?
-     mPluginWindow->window = nullptr;
--#ifdef MOZ_X11
-+#if 0
-     // Fill in the display field.
-     NPSetWindowCallbackStruct* ws_info =
-         static_cast<NPSetWindowCallbackStruct*>(mPluginWindow->ws_info);
-diff --git a/dom/plugins/base/nsPluginInstanceOwner.h b/dom/plugins/base/nsPluginInstanceOwner.h
-index fbb87b6113..e5e4b86159 100644
---- a/dom/plugins/base/nsPluginInstanceOwner.h
-+++ b/dom/plugins/base/nsPluginInstanceOwner.h
-@@ -31,7 +31,7 @@ class nsPluginDOMContextMenuListener;
- class nsPluginFrame;
- class nsDisplayListBuilder;
-
--#if defined(MOZ_X11)
-+#if 0
- class gfxContext;
- #endif
-
-@@ -48,7 +48,7 @@ class PuppetWidget;
-
- using mozilla::widget::PuppetWidget;
-
--#ifdef MOZ_X11
-+#if 0
- #  include "gfxXlibNativeRenderer.h"
- #endif
-
-@@ -112,7 +112,7 @@ class nsPluginInstanceOwner final : public nsIPluginInstanceOwner,
-   void Paint(const gfxRect& aDirtyRect, CGContextRef cgContext);
-   void RenderCoreAnimation(CGContextRef aCGContext, int aWidth, int aHeight);
-   void DoCocoaEventDrawRect(const gfxRect& aDrawRect, CGContextRef cgContext);
--#elif defined(MOZ_X11)
-+#elif 0
-   void Paint(gfxContext* aContext, const gfxRect& aFrameRect,
-              const gfxRect& aDirtyRect);
- #endif
-@@ -193,7 +193,7 @@ class nsPluginInstanceOwner final : public nsIPluginInstanceOwner,
-     return "";
-   }
-
--#ifdef MOZ_X11
-+#if 0
-   void GetPluginDescription(nsACString& aDescription) {
-     aDescription.Truncate();
-     if (mInstance && mPluginHost) {
-@@ -214,7 +214,7 @@ class nsPluginInstanceOwner final : public nsIPluginInstanceOwner,
-     return mPluginWindow->type == NPWindowTypeDrawable &&
-            (MatchPluginName("Shockwave Flash") ||
-             MatchPluginName("Test Plug-in"));
--#elif defined(MOZ_X11) || defined(XP_MACOSX)
-+#elif defined(XP_MACOSX)
-     return true;
- #else
-     return false;
-@@ -325,7 +325,7 @@ class nsPluginInstanceOwner final : public nsIPluginInstanceOwner,
-   uint32_t mLastEventloopNestingLevel;
-   bool mContentFocused;
-   bool mWidgetVisible;  // used on Mac to store our widget's visible state
--#ifdef MOZ_X11
-+#if 0
-   // Used with windowless plugins only, initialized in CreateWidget().
-   bool mFlash10Quirks;
- #endif
-@@ -371,7 +371,7 @@ class nsPluginInstanceOwner final : public nsIPluginInstanceOwner,
-
-   int mLastMouseDownButtonType;
-
--#ifdef MOZ_X11
-+#if 0
-   class Renderer : public gfxXlibNativeRenderer {
-    public:
-     Renderer(NPWindow* aWindow, nsPluginInstanceOwner* aInstanceOwner,
-diff --git a/dom/plugins/base/nsPluginNativeWindow.cpp b/dom/plugins/base/nsPluginNativeWindow.cpp
-index 6aea8d28fc..f4f2ac36b7 100644
---- a/dom/plugins/base/nsPluginNativeWindow.cpp
-+++ b/dom/plugins/base/nsPluginNativeWindow.cpp
-@@ -17,7 +17,7 @@ class nsPluginNativeWindowImpl : public nsPluginNativeWindow {
-   nsPluginNativeWindowImpl();
-   virtual ~nsPluginNativeWindowImpl();
-
--#ifdef MOZ_WIDGET_GTK
-+#if 0
-   NPSetWindowCallbackStruct mWsInfo;
- #endif
- };
-@@ -32,14 +32,14 @@ nsPluginNativeWindowImpl::nsPluginNativeWindowImpl() : nsPluginNativeWindow() {
-   memset(&clipRect, 0, sizeof(clipRect));
-   type = NPWindowTypeWindow;
-
--#ifdef MOZ_WIDGET_GTK
-+#if 0
-   ws_info = &mWsInfo;
-   mWsInfo.type = 0;
-   mWsInfo.display = nullptr;
-   mWsInfo.visual = nullptr;
-   mWsInfo.colormap = 0;
-   mWsInfo.depth = 0;
--#elif defined(XP_UNIX) && !defined(XP_MACOSX)
-+#elif 0
-   ws_info = nullptr;
- #endif
- }
-diff --git a/dom/plugins/ipc/NPEventUnix.h b/dom/plugins/ipc/NPEventUnix.h
-index 55494b4d8c..822d3b88e3 100644
---- a/dom/plugins/ipc/NPEventUnix.h
-+++ b/dom/plugins/ipc/NPEventUnix.h
-@@ -9,7 +9,7 @@
-
- #include "npapi.h"
-
--#ifdef MOZ_X11
-+#if 0
- #  include "mozilla/X11Util.h"
- #endif
-
-@@ -59,7 +59,7 @@ struct ParamTraits<mozilla::plugins::NPRemoteEvent>  // synonym for XEvent
-       return false;
-     }
-
--#ifdef MOZ_X11
-+#if 0
-     SetXDisplay(aResult->event);
- #endif
-     return true;
-@@ -70,7 +70,7 @@ struct ParamTraits<mozilla::plugins::NPRemoteEvent>  // synonym for XEvent
-     aLog->append(L"(XEvent)");
-   }
-
--#ifdef MOZ_X11
-+#if 0
-  private:
-   static void SetXDisplay(XEvent& ev) {
-     Display* display = mozilla::DefaultXDisplay();
-diff --git a/dom/plugins/ipc/PluginInstanceChild.cpp b/dom/plugins/ipc/PluginInstanceChild.cpp
-index 9d6c04dced..b163c4c548 100644
---- a/dom/plugins/ipc/PluginInstanceChild.cpp
-+++ b/dom/plugins/ipc/PluginInstanceChild.cpp
-@@ -15,7 +15,7 @@
- #include "gfx2DGlue.h"
- #include "nsNPAPIPluginInstance.h"
- #include "mozilla/gfx/2D.h"
--#ifdef MOZ_X11
-+#if 0
- #  include "gfxXlibSurface.h"
- #endif
- #ifdef XP_WIN
-@@ -44,7 +44,7 @@ using namespace mozilla::layers;
- using namespace mozilla::gfx;
- using namespace mozilla::widget;
-
--#ifdef MOZ_WIDGET_GTK
-+#if 0
-
- #  include <gtk/gtk.h>
- #  include <gdk/gdkx.h>
-@@ -188,10 +188,10 @@ PluginInstanceChild::PluginInstanceChild(const NPPluginFuncs* aPluginIface,
-   mWindow.type = NPWindowTypeWindow;
-   mData.ndata = (void*)this;
-   mData.pdata = nullptr;
--#if defined(MOZ_X11) && defined(XP_UNIX) && !defined(XP_MACOSX)
-+#if 0
-   mWindow.ws_info = &mWsInfo;
-   memset(&mWsInfo, 0, sizeof(mWsInfo));
--#  ifdef MOZ_WIDGET_GTK
-+#  if 1
-   mWsInfo.display = nullptr;
- #  else
-   mWsInfo.display = DefaultXDisplay();
-@@ -356,7 +356,7 @@ NPError PluginInstanceChild::NPN_GetValue(NPNVariable aVar, void* aValue) {
-   AutoStackHelper guard(this);
-
-   switch (aVar) {
--#if defined(MOZ_X11)
-+#if 0
-     case NPNVToolkit:
-       *((NPNToolkitType*)aValue) = NPNVGtk2;
-       return NPERR_NO_ERROR;
-@@ -428,7 +428,7 @@ NPError PluginInstanceChild::NPN_GetValue(NPNVariable aVar, void* aValue) {
-         *static_cast<HWND*>(aValue) = mPluginWindowHWND;
-         return NPERR_NO_ERROR;
-       }
--#elif defined(MOZ_X11)
-+#elif 0
-       NPError result;
-       CallNPN_GetValue_NPNVnetscapeWindow(static_cast<XID*>(aValue), &result);
-       return result;
-@@ -842,7 +842,7 @@ mozilla::ipc::IPCResult PluginInstanceChild::AnswerNPP_HandleEvent(
-   AssertPluginThread();
-   AutoStackHelper guard(this);
-
--#if defined(MOZ_X11) && defined(DEBUG)
-+#if 0
-   if (GraphicsExpose == event.event.type)
-     PLUGIN_LOG_DEBUG(
-         ("  received drawable 0x%lx\n", event.event.xgraphicsexpose.drawable));
-@@ -899,7 +899,7 @@ mozilla::ipc::IPCResult PluginInstanceChild::AnswerNPP_HandleEvent(
-   }
- #endif
-
--#ifdef MOZ_X11
-+#if 0
-   if (GraphicsExpose == event.event.type) {
-     // Make sure the X server completes the drawing before the parent
-     // draws on top and destroys the Drawable.
-@@ -1154,7 +1154,7 @@ mozilla::ipc::IPCResult PluginInstanceChild::AnswerNPP_SetWindow(
-   AssertPluginThread();
-   AutoStackHelper guard(this);
-
--#if defined(MOZ_X11) && defined(XP_UNIX) && !defined(XP_MACOSX)
-+#if 0
-   NS_ASSERTION(mWsInfo.display, "We should have a valid display!");
-
-   // The minimum info is sent over IPC to allow this
-@@ -1250,14 +1250,14 @@ mozilla::ipc::IPCResult PluginInstanceChild::AnswerNPP_SetWindow(
- #elif defined(MOZ_WIDGET_UIKIT)
-   // Don't care
- #else
--#  error Implement me for your OS
-+//#  error Implement me for your OS
- #endif
-
-   return IPC_OK();
- }
-
- bool PluginInstanceChild::Initialize() {
--#ifdef MOZ_WIDGET_GTK
-+#if 0
-   if (mWsInfo.display) {
-     // Already initialized
-     return true;
-@@ -2870,7 +2870,7 @@ bool PluginInstanceChild::CreateOptSurface(void) {
-                               ? SurfaceFormat::A8R8G8B8_UINT32
-                               : SurfaceFormat::X8R8G8B8_UINT32;
-
--#ifdef MOZ_X11
-+#if 0
-   Display* dpy = mWsInfo.display;
-   Screen* screen = DefaultScreenOfDisplay(dpy);
-   if (format == SurfaceFormat::X8R8G8B8_UINT32 &&
-@@ -2926,7 +2926,7 @@ bool PluginInstanceChild::MaybeCreatePlatformHelperSurface(void) {
-     return false;
-   }
-
--#ifdef MOZ_X11
-+#if 0
-   bool supportNonDefaultVisual = false;
-   Screen* screen = DefaultScreenOfDisplay(mWsInfo.display);
-   Visual* defaultVisual = DefaultVisualOfScreen(screen);
-@@ -3078,12 +3078,12 @@ bool PluginInstanceChild::EnsureCurrentBuffer(void) {
- }
-
- void PluginInstanceChild::UpdateWindowAttributes(bool aForceSetWindow) {
--#if defined(MOZ_X11) || defined(XP_WIN)
-+#if 0
-   RefPtr<gfxASurface> curSurface =
-       mHelperSurface ? mHelperSurface : mCurrentSurface;
- #endif  // Only used within MOZ_X11 or XP_WIN blocks. Unused variable otherwise
-   bool needWindowUpdate = aForceSetWindow;
--#ifdef MOZ_X11
-+#if 0
-   Visual* visual = nullptr;
-   Colormap colormap = 0;
-   if (curSurface && curSurface->GetType() == gfxSurfaceType::Xlib) {
-@@ -3182,7 +3182,7 @@ void PluginInstanceChild::PaintRectToPlatformSurface(const nsIntRect& aRect,
-   // We should not send an async surface if we're using direct rendering.
-   MOZ_ASSERT(!IsUsingDirectDrawing());
-
--#ifdef MOZ_X11
-+#if 0
-   {
-     NS_ASSERTION(aSurface->GetType() == gfxSurfaceType::Xlib,
-                  "Non supported platform surface type");
-@@ -3230,7 +3230,7 @@ void PluginInstanceChild::PaintRectToSurface(const nsIntRect& aRect,
-   // Render using temporary X surface, with copy to image surface
-   nsIntRect plPaintRect(aRect);
-   RefPtr<gfxASurface> renderSurface = aSurface;
--#ifdef MOZ_X11
-+#if 0
-   if (mIsTransparent && (GetQuirks() & QUIRK_FLASH_EXPOSE_COORD_TRANSLATION)) {
-     // Work around a bug in Flash up to 10.1 d51 at least, where expose event
-     // top left coordinates within the plugin-rect and not at the drawable
-@@ -3573,7 +3573,7 @@ bool PluginInstanceChild::ShowPluginFrame() {
-   NPRect r = {(uint16_t)rect.y, (uint16_t)rect.x, (uint16_t)rect.YMost(),
-               (uint16_t)rect.XMost()};
-   SurfaceDescriptor currSurf;
--#ifdef MOZ_X11
-+#if 0
-   if (mCurrentSurface->GetType() == gfxSurfaceType::Xlib) {
-     gfxXlibSurface* xsurf = static_cast<gfxXlibSurface*>(mCurrentSurface.get());
-     currSurf = SurfaceDescriptorX11(xsurf);
-@@ -3621,7 +3621,7 @@ bool PluginInstanceChild::ReadbackDifferenceRect(const nsIntRect& rect) {
-
-     // We can read safely from XSurface,SharedDIBSurface and Unsafe
-     // SharedMemory, because PluginHost is not able to modify that surface
--#if defined(MOZ_X11)
-+#if 0
-   if (mBackSurface->GetType() != gfxSurfaceType::Xlib &&
-       !gfxSharedImageSurface::IsSharedImage(mBackSurface))
-     return false;
-@@ -3629,7 +3629,7 @@ bool PluginInstanceChild::ReadbackDifferenceRect(const nsIntRect& rect) {
-   if (!SharedDIBSurface::IsSharedDIBSurface(mBackSurface)) return false;
- #endif
-
--#if defined(MOZ_X11) || defined(XP_WIN)
-+#if 0
-   if (mCurrentSurface->GetContentType() != mBackSurface->GetContentType())
-     return false;
-
-@@ -3747,7 +3747,7 @@ mozilla::ipc::IPCResult PluginInstanceChild::RecvUpdateBackground(
-   if (!mBackground) {
-     // XXX refactor me
-     switch (aBackground.type()) {
--#ifdef MOZ_X11
-+#if 0
-       case SurfaceDescriptor::TSurfaceDescriptorX11: {
-         mBackground = aBackground.get_SurfaceDescriptorX11().OpenForeign();
-         break;
-diff --git a/dom/plugins/ipc/PluginInstanceChild.h b/dom/plugins/ipc/PluginInstanceChild.h
-index 479c060f91..a00c1229aa 100644
---- a/dom/plugins/ipc/PluginInstanceChild.h
-+++ b/dom/plugins/ipc/PluginInstanceChild.h
-@@ -363,7 +363,7 @@ class PluginInstanceChild : public PPluginInstanceChild {
-   PluginScriptableObjectChild* mCachedWindowActor;
-   PluginScriptableObjectChild* mCachedElementActor;
-
--#if defined(MOZ_X11) && defined(XP_UNIX) && !defined(XP_MACOSX)
-+#if 0
-   NPSetWindowCallbackStruct mWsInfo;
- #elif defined(OS_WIN)
-   HWND mPluginWindowHWND;
-diff --git a/dom/plugins/ipc/PluginInstanceParent.cpp b/dom/plugins/ipc/PluginInstanceParent.cpp
-index 802bba769a..a11b7497e3 100644
---- a/dom/plugins/ipc/PluginInstanceParent.cpp
-+++ b/dom/plugins/ipc/PluginInstanceParent.cpp
-@@ -25,7 +25,7 @@
- #include "nsNPAPIPluginInstance.h"
- #include "nsPluginInstanceOwner.h"
- #include "nsFocusManager.h"
--#ifdef MOZ_X11
-+#if 0
- #  include "gfxXlibSurface.h"
- #endif
- #include "gfxUtils.h"
-@@ -61,7 +61,7 @@
- #  include "GPUVideoImage.h"
- #  include "mozilla/layers/SynchronousTask.h"
- extern const wchar_t* kFlashFullscreenClass;
--#elif defined(MOZ_WIDGET_GTK)
-+#elif 0
- #  include "mozilla/dom/ContentChild.h"
- #  include <gdk/gdk.h>
- #elif defined(XP_MACOSX)
-@@ -182,7 +182,7 @@ void PluginInstanceParent::ActorDestroy(ActorDestroyReason why) {
-     if (mImageContainer) {
-       mImageContainer->ClearAllImages();
-     }
--#ifdef MOZ_X11
-+#if 0
-     FinishX(DefaultXDisplay());
- #endif
-   }
-@@ -227,7 +227,7 @@ PluginInstanceParent::AnswerNPN_GetValue_NPNVnetscapeWindow(
- #ifdef XP_WIN
-   HWND id;
- #elif defined(MOZ_X11)
--  XID id;
-+  int id;
- #elif defined(XP_DARWIN)
-   intptr_t id;
- #elif defined(ANDROID)
-@@ -405,7 +405,7 @@ PluginInstanceParent::AnswerNPN_SetValue_NPPVpluginDrawingModel(
-     case NPDrawingModelAsyncWindowsDXGISurface:
-       allowed = SupportsPluginDirectDXGISurfaceDrawing();
-       break;
--#elif defined(MOZ_X11)
-+#elif 0
-     case NPDrawingModelSyncX:
-       allowed = true;
-       break;
-@@ -968,7 +968,7 @@ mozilla::ipc::IPCResult PluginInstanceParent::RecvShow(
-     return IPC_OK();
-   }
- #endif
--#ifdef MOZ_X11
-+#if 0
-   else if (newSurface.type() == SurfaceDescriptor::TSurfaceDescriptorX11) {
-     surface = newSurface.get_SurfaceDescriptorX11().OpenForeign();
-   }
-@@ -985,7 +985,7 @@ mozilla::ipc::IPCResult PluginInstanceParent::RecvShow(
-     // This is the "old front buffer" we're about to hand back to
-     // the plugin.  We might still have drawing operations
-     // referencing it.
--#ifdef MOZ_X11
-+#if 0
-     if (mFrontSurface->GetType() == gfxSurfaceType::Xlib) {
-       // Finish with the surface and XSync here to ensure the server has
-       // finished operations on the surface before the plugin starts
-@@ -1224,7 +1224,7 @@ nsresult PluginInstanceParent::EndUpdateBackground(const nsIntRect& aRect) {
-       ("[InstanceParent][%p] EndUpdateBackground for <x=%d,y=%d, w=%d,h=%d>",
-        this, aRect.x, aRect.y, aRect.width, aRect.height));
-
--#ifdef MOZ_X11
-+#if 0
-   // Have to XSync here to avoid the plugin trying to draw with this
-   // surface racing with its creation in the X server.  We also want
-   // to avoid the plugin drawing onto stale pixels, then handing us
-@@ -1270,7 +1270,7 @@ bool PluginInstanceParent::CreateBackground(const nsIntSize& aSize) {
-
-   // XXX refactor me
-
--#if defined(MOZ_X11)
-+#if 0
-   Screen* screen = DefaultScreenOfDisplay(DefaultXDisplay());
-   Visual* visual = DefaultVisualOfScreen(screen);
-   mBackground = gfxXlibSurface::Create(
-@@ -1310,7 +1310,7 @@ PluginInstanceParent::BackgroundDescriptor() {
-
-   // XXX refactor me
-
--#ifdef MOZ_X11
-+#if 0
-   gfxXlibSurface* xsurf = static_cast<gfxXlibSurface*>(mBackground.get());
-   return SurfaceDescriptorX11(xsurf);
- #endif
-@@ -1427,7 +1427,7 @@ NPError PluginInstanceParent::NPP_SetWindow(const NPWindow* aWindow) {
-   }
- #endif
-
--#if defined(MOZ_X11) && defined(XP_UNIX) && !defined(XP_MACOSX)
-+#if 0
-   const NPSetWindowCallbackStruct* ws_info =
-       static_cast<NPSetWindowCallbackStruct*>(aWindow->ws_info);
-   window.visualID = ws_info->visual ? ws_info->visual->visualid : 0;
-@@ -1621,7 +1621,7 @@ int16_t PluginInstanceParent::NPP_HandleEvent(void* event) {
-   }
- #endif
-
--#if defined(MOZ_X11)
-+#if 0
-   switch (npevent->type) {
-     case GraphicsExpose:
-       PLUGIN_LOG_DEBUG(("  schlepping drawable 0x%lx across the pipe\n",
-@@ -1641,7 +1641,7 @@ int16_t PluginInstanceParent::NPP_HandleEvent(void* event) {
-       // Release any active pointer grab so that the plugin X client can
-       // grab the pointer if it wishes.
-       Display* dpy = DefaultXDisplay();
--#  ifdef MOZ_WIDGET_GTK
-+#  if 0
-       // GDK attempts to (asynchronously) track whether there is an active
-       // grab so ungrab through GDK.
-       //
-diff --git a/dom/plugins/ipc/PluginMessageUtils.cpp b/dom/plugins/ipc/PluginMessageUtils.cpp
-index e77d3721f5..0ddcc98330 100644
---- a/dom/plugins/ipc/PluginMessageUtils.cpp
-+++ b/dom/plugins/ipc/PluginMessageUtils.cpp
-@@ -50,7 +50,7 @@ NPRemoteWindow::NPRemoteWindow()
-       width(0),
-       height(0),
-       type(NPWindowTypeDrawable)
--#if defined(MOZ_X11) && defined(XP_UNIX) && !defined(XP_MACOSX)
-+#if 0
-       ,
-       visualID(0),
-       colormap(0)
-@@ -82,7 +82,7 @@ ipc::RacyInterruptPolicy MediateRace(const MessageChannel::MessageInfo& parent,
-   }
- }
-
--#if defined(OS_LINUX) || defined(OS_SOLARIS)
-+#if defined(OS_SOLARIS)
- static string ReplaceAll(const string& haystack, const string& needle,
-                          const string& with) {
-   string munged = haystack;
-@@ -98,7 +98,7 @@ static string ReplaceAll(const string& haystack, const string& needle,
- #endif
-
- string MungePluginDsoPath(const string& path) {
--#if defined(OS_LINUX) || defined(OS_SOLARIS)
-+#if defined(OS_SOLARIS)
-   // https://bugzilla.mozilla.org/show_bug.cgi?id=519601
-   return ReplaceAll(path, "netscape", "netsc@pe");
- #else
-@@ -107,7 +107,7 @@ string MungePluginDsoPath(const string& path) {
- }
-
- string UnmungePluginDsoPath(const string& munged) {
--#if defined(OS_LINUX) || defined(OS_SOLARIS)
-+#if defined(OS_SOLARIS)
-   return ReplaceAll(munged, "netsc@pe", "netscape");
- #else
-   return munged;
-diff --git a/dom/plugins/ipc/PluginMessageUtils.h b/dom/plugins/ipc/PluginMessageUtils.h
-index 87747b115b..0d33a9a5af 100644
---- a/dom/plugins/ipc/PluginMessageUtils.h
-+++ b/dom/plugins/ipc/PluginMessageUtils.h
-@@ -87,7 +87,7 @@ struct NPRemoteWindow {
-   uint32_t height;
-   NPRect clipRect;
-   NPWindowType type;
--#if defined(MOZ_X11) && defined(XP_UNIX) && !defined(XP_MACOSX)
-+#if 0
-   VisualID visualID;
-   Colormap colormap;
- #endif /* XP_UNIX */
-@@ -113,9 +113,9 @@ struct NPAudioDeviceStateChangedIPC {
-
- #ifdef XP_WIN
- typedef HWND NativeWindowHandle;
--#elif defined(MOZ_X11)
-+#elif 0
- typedef XID NativeWindowHandle;
--#elif defined(XP_DARWIN) || defined(ANDROID)
-+#elif defined(XP_DARWIN) || defined(ANDROID) || defined(MOZ_X11)
- typedef intptr_t NativeWindowHandle;  // never actually used, will always be 0
- #else
- #  error Need NativeWindowHandle for this platform
-@@ -323,7 +323,7 @@ struct ParamTraits<mozilla::plugins::NPRemoteWindow> {
-     WriteParam(aMsg, aParam.height);
-     WriteParam(aMsg, aParam.clipRect);
-     WriteParam(aMsg, aParam.type);
--#if defined(MOZ_X11) && defined(XP_UNIX) && !defined(XP_MACOSX)
-+#if 0
-     aMsg->WriteULong(aParam.visualID);
-     aMsg->WriteULong(aParam.colormap);
- #endif
-@@ -345,7 +345,7 @@ struct ParamTraits<mozilla::plugins::NPRemoteWindow> {
-           ReadParam(aMsg, aIter, &clipRect) && ReadParam(aMsg, aIter, &type)))
-       return false;
-
--#if defined(MOZ_X11) && defined(XP_UNIX) && !defined(XP_MACOSX)
-+#if 0
-     unsigned long visualID;
-     unsigned long colormap;
-     if (!(aMsg->ReadULong(aIter, &visualID) &&
-@@ -365,7 +365,7 @@ struct ParamTraits<mozilla::plugins::NPRemoteWindow> {
-     aResult->height = height;
-     aResult->clipRect = clipRect;
-     aResult->type = type;
--#if defined(MOZ_X11) && defined(XP_UNIX) && !defined(XP_MACOSX)
-+#if 0
-     aResult->visualID = visualID;
-     aResult->colormap = colormap;
- #endif
-diff --git a/dom/plugins/ipc/PluginModuleChild.cpp b/dom/plugins/ipc/PluginModuleChild.cpp
-index 2e811ceaeb..a66eb54a4e 100644
---- a/dom/plugins/ipc/PluginModuleChild.cpp
-+++ b/dom/plugins/ipc/PluginModuleChild.cpp
-@@ -12,7 +12,7 @@
-
- #include "mozilla/ipc/MessageChannel.h"
-
--#ifdef MOZ_WIDGET_GTK
-+#if 0
- #  include <gtk/gtk.h>
- #  include <gdk/gdkx.h>
- #endif
-@@ -25,7 +25,7 @@
- #include "nsPluginsDir.h"
- #include "nsXULAppAPI.h"
-
--#ifdef MOZ_X11
-+#if 0
- #  include "nsX11ErrorHandler.h"
- #  include "mozilla/X11Util.h"
- #endif
-@@ -100,7 +100,7 @@ PluginModuleChild::PluginModuleChild(bool aIsChrome)
- #if defined(OS_WIN) || defined(OS_MACOSX)
-       ,
-       mGetEntryPointsFunc(0)
--#elif defined(MOZ_WIDGET_GTK)
-+#elif 0
-       ,
-       mNestedLoopTimerId(0)
- #endif
-@@ -254,7 +254,7 @@ bool PluginModuleChild::InitForChrome(const std::string& aPluginFilename,
-   // XXX quirks isn't initialized yet
-   mAsyncRenderSupport = info.fSupportsAsyncRender;
- #endif
--#if defined(MOZ_X11)
-+#if 0
-   constexpr auto flash10Head = "Shockwave Flash 10."_ns;
-   if (StringBeginsWith(nsDependentCString(info.fDescription), flash10Head)) {
-     AddQuirk(QUIRK_FLASH_EXPOSE_COORD_TRANSLATION);
-@@ -267,7 +267,7 @@ bool PluginModuleChild::InitForChrome(const std::string& aPluginFilename,
-   mozilla::plugins::PluginUtilsOSX::SetProcessName(nameBuffer);
- #endif
-   pluginFile.FreePluginInfo(info);
--#if defined(MOZ_X11) || defined(XP_MACOSX)
-+#if 0
-   if (!mLibrary)
- #endif
-   {
-@@ -330,7 +330,7 @@ bool PluginModuleChild::InitForChrome(const std::string& aPluginFilename,
-   return true;
- }
-
--#if defined(MOZ_WIDGET_GTK)
-+#if 0
-
- typedef void (*GObjectDisposeFn)(GObject*);
- typedef gboolean (*GtkWidgetScrollEventFn)(GtkWidget*, GdkEventScroll*);
-@@ -550,7 +550,7 @@ bool PluginModuleChild::ShouldContinueFromReplyTimeout() {
- }
-
- bool PluginModuleChild::InitGraphics() {
--#if defined(MOZ_WIDGET_GTK)
-+#if 0
-   // Work around plugins that don't interact well with GDK
-   // client-side windows.
-   PR_SetEnv("GDK_NATIVE_WINDOWS=1");
-@@ -588,7 +588,7 @@ bool PluginModuleChild::InitGraphics() {
- #else
-   // may not be necessary on all platforms
- #endif
--#ifdef MOZ_X11
-+#if 0
-   // Do this after initializing GDK, or GDK will install its own handler.
-   InstallX11ErrorHandler();
- #endif
-@@ -596,7 +596,7 @@ bool PluginModuleChild::InitGraphics() {
- }
-
- void PluginModuleChild::DeinitGraphics() {
--#if defined(MOZ_X11) && defined(NS_FREE_PERMANENT_DATA)
-+#if 0
-   // We free some data off of XDisplay close hooks, ensure they're
-   // run.  Closing the display is pretty scary, so we only do it to
-   // silence leak checkers.
-@@ -1000,7 +1000,7 @@ NPError _getvalue(NPP aNPP, NPNVariable aVariable, void* aValue) {
-   switch (aVariable) {
-     // Copied from nsNPAPIPlugin.cpp
-     case NPNVToolkit:
--#if defined(MOZ_WIDGET_GTK)
-+#if 0
-       *static_cast<NPNToolkitType*>(aValue) = NPNVGtk2;
-       return NPERR_NO_ERROR;
- #endif
-@@ -1026,7 +1026,7 @@ NPError _getvalue(NPP aNPP, NPNVariable aVariable, void* aValue) {
-     case NPNVSupportsWindowless:
-       *(NPBool*)aValue = true;
-       return NPERR_NO_ERROR;
--#if defined(MOZ_WIDGET_GTK)
-+#if 0
-     case NPNVxDisplay: {
-       if (!aNPP) {
-         return NPERR_INVALID_INSTANCE_ERROR;
-@@ -1556,8 +1556,8 @@ NPError PluginModuleChild::DoNP_Initialize(const PluginSettings& aSettings) {
-   SetEventHooks();
- #endif
-
--#ifdef MOZ_X11
--#  ifdef MOZ_WIDGET_GTK
-+#if 0
-+#  if 0
-   if (!GDK_IS_X11_DISPLAY(gdk_display_get_default())) {
-     // We don't support NPAPI plugins on Wayland.
-     return NPERR_GENERIC_ERROR;
-diff --git a/dom/plugins/ipc/PluginModuleChild.h b/dom/plugins/ipc/PluginModuleChild.h
-index 84df35e5d8..4caf4c54bd 100644
---- a/dom/plugins/ipc/PluginModuleChild.h
-+++ b/dom/plugins/ipc/PluginModuleChild.h
-@@ -206,7 +206,7 @@ class PluginModuleChild : public PPluginModuleChild {
-   bool InitGraphics();
-   void DeinitGraphics();
-
--#if defined(MOZ_WIDGET_GTK)
-+#if 0
-   static gboolean DetectNestedEventLoop(gpointer data);
-   static gboolean ProcessBrowserEvents(gpointer data);
-
-@@ -238,7 +238,7 @@ class PluginModuleChild : public PPluginModuleChild {
-
-   PluginSettings mCachedSettings;
-
--#if defined(MOZ_WIDGET_GTK)
-+#if 0
-   // If a plugin spins a nested glib event loop in response to a
-   // synchronous IPC message from the browser, the loop might break
-   // only after the browser responds to a request sent by the
-diff --git a/dom/plugins/ipc/PluginModuleParent.cpp b/dom/plugins/ipc/PluginModuleParent.cpp
-index c495097caf..085545376f 100644
---- a/dom/plugins/ipc/PluginModuleParent.cpp
-+++ b/dom/plugins/ipc/PluginModuleParent.cpp
-@@ -50,7 +50,7 @@
- #  include "PluginUtilsWin.h"
- #endif
-
--#ifdef MOZ_WIDGET_GTK
-+#if 0
- #  include <glib.h>
- #elif XP_MACOSX
- #  include "PluginInterposeOSX.h"
-@@ -1591,7 +1591,7 @@ mozilla::ipc::IPCResult PluginModuleChromeParent::
-
- mozilla::ipc::IPCResult PluginModuleParent::RecvBackUpXResources(
-     const FileDescriptor& aXSocketFd) {
--#ifndef MOZ_X11
-+#if 1
-   MOZ_CRASH("This message only makes sense on X11 platforms");
- #else
-   MOZ_ASSERT(0 > mPluginXSocketFdDup.get(), "Already backed up X resources??");
-@@ -1777,7 +1777,7 @@ void PluginModuleChromeParent::CachedSettingChanged(const char* aPref,
-   module->CachedSettingChanged();
- }
-
--#if defined(XP_UNIX) && !defined(XP_MACOSX)
-+#if 0
- nsresult PluginModuleParent::NP_Initialize(NPNetscapeFuncs* bFuncs,
-                                            NPPluginFuncs* pFuncs,
-                                            NPError* error) {
-@@ -1832,6 +1832,22 @@ nsresult PluginModuleChromeParent::NP_Initialize(NPNetscapeFuncs* bFuncs,
-
-   return NS_OK;
- }
-+#endif
-+
-+#if defined(XP_UNIX) && !defined(XP_MACOSX)
-+nsresult PluginModuleParent::NP_Initialize(NPNetscapeFuncs* bFuncs,
-+                                           NPPluginFuncs* pFuncs,
-+                                           NPError* error) {
-+*error = NPERR_GENERIC_ERROR;
-+return NS_ERROR_FAILURE;
-+}
-+
-+nsresult PluginModuleChromeParent::NP_Initialize(NPNetscapeFuncs* bFuncs,
-+                                                 NPPluginFuncs* pFuncs,
-+                                                 NPError* error) {
-+  *error = NPERR_GENERIC_ERROR;
-+  return NS_ERROR_FAILURE;
-+}
-
- #else
-
-@@ -2035,7 +2051,7 @@ class nsCaseInsensitiveUTF8StringArrayComparator {
-   }
- };
-
--#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK)
-+#if defined(XP_WIN)
- static void ForceWindowless(nsTArray<nsCString>& names,
-                             nsTArray<nsCString>& values) {
-   nsCaseInsensitiveUTF8StringArrayComparator comparator;
-@@ -2118,7 +2134,7 @@ nsresult PluginModuleParent::NPP_NewInternal(
- #  endif
-       ForceWindowless(names, values);
-     }
--#elif defined(MOZ_WIDGET_GTK)
-+#elif 0
-     // We no longer support windowed mode on Linux.
-     ForceWindowless(names, values);
- #endif
-@@ -2232,7 +2248,7 @@ mozilla::ipc::IPCResult PluginModuleParent::AnswerProcessSomeEvents() {
-   return IPC_OK();
- }
-
--#elif !defined(MOZ_WIDGET_GTK)
-+#elif 1
- mozilla::ipc::IPCResult PluginModuleParent::AnswerProcessSomeEvents() {
-   MOZ_CRASH("unreached");
- }
-diff --git a/dom/plugins/ipc/PluginModuleParent.h b/dom/plugins/ipc/PluginModuleParent.h
-index 9fd74904a2..b77279b7f5 100644
---- a/dom/plugins/ipc/PluginModuleParent.h
-+++ b/dom/plugins/ipc/PluginModuleParent.h
-@@ -288,7 +288,7 @@ class PluginModuleParent : public PPluginModuleParent,
-   int32_t mSandboxLevel;
-   bool mIsFlashPlugin;
-
--#ifdef MOZ_X11
-+#if 0
-   // Dup of plugin's X socket, used to scope its resources to this
-   // object instead of the plugin process's lifetime
-   ScopedClose mPluginXSocketFdDup;
-diff --git a/dom/plugins/ipc/moz.build b/dom/plugins/ipc/moz.build
-index 49f1e27670..e97c75d72a 100644
---- a/dom/plugins/ipc/moz.build
-+++ b/dom/plugins/ipc/moz.build
-@@ -142,9 +142,6 @@ DEFINES['FORCE_PR_LOG'] = True
-
- if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'gtk':
-     CXXFLAGS += CONFIG['TK_CFLAGS']
--else:
--    # Force build against gtk+2 for struct offsets and such.
--    CXXFLAGS += CONFIG['MOZ_GTK2_CFLAGS']
-
- CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
-
-diff --git a/dom/plugins/test/moz.build b/dom/plugins/test/moz.build
-index 032db35387..dde5c1c31b 100644
---- a/dom/plugins/test/moz.build
-+++ b/dom/plugins/test/moz.build
-@@ -8,7 +8,7 @@ DIRS += ['testplugin']
-
- XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
-
--if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk', 'cocoa', 'windows'):
-+if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('cocoa', 'windows'):
-     MOCHITEST_MANIFESTS += ['mochitest/mochitest.ini']
-     MOCHITEST_CHROME_MANIFESTS += ['mochitest/chrome.ini']
-     BROWSER_CHROME_MANIFESTS += ['mochitest/browser.ini']
-diff --git a/dom/plugins/test/testplugin/nptest.cpp b/dom/plugins/test/testplugin/nptest.cpp
-index 2a9d20cdca..02b39a27cf 100644
---- a/dom/plugins/test/testplugin/nptest.cpp
-+++ b/dom/plugins/test/testplugin/nptest.cpp
-@@ -2692,7 +2692,7 @@ bool stallPlugin(NPObject* npobj, const NPVariant* args, uint32_t argCount,
-   return true;
- }
-
--#if defined(MOZ_WIDGET_GTK)
-+#if 0
- bool getClipboardText(NPObject* npobj, const NPVariant* args, uint32_t argCount,
-                       NPVariant* result) {
-   NPP npp = static_cast<TestNPObject*>(npobj)->npp;
-diff --git a/dom/plugins/test/testplugin/testplugin.mozbuild b/dom/plugins/test/testplugin/testplugin.mozbuild
-index 2c466409ea..ad87356e15 100644
---- a/dom/plugins/test/testplugin/testplugin.mozbuild
-+++ b/dom/plugins/test/testplugin/testplugin.mozbuild
-@@ -18,11 +18,6 @@ if toolkit == 'cocoa':
-     UNIFIED_SOURCES += [
-         'nptest_macosx.mm'
-     ]
--elif toolkit == 'gtk':
--    UNIFIED_SOURCES += [
--        'nptest_gtk2.cpp',
--    ]
--elif toolkit == 'windows':
-     UNIFIED_SOURCES += [
-         'nptest_windows.cpp',
-     ]
-@@ -46,14 +41,6 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
- if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa' and CONFIG['TARGET_CPU'] == 'x86_64':
-     OS_LIBS += ['-framework Carbon']
-
--if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
--    CXXFLAGS += CONFIG['MOZ_GTK2_CFLAGS']
--    CFLAGS += CONFIG['MOZ_GTK2_CFLAGS']
--    OS_LIBS += CONFIG['MOZ_GTK2_LIBS']
--    OS_LIBS += CONFIG['XLDFLAGS']
--    OS_LIBS += CONFIG['XLIBS']
--    OS_LIBS += CONFIG['XEXT_LIBS']
--
- if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
-     FINAL_TARGET = 'dist/plugins/%s.plugin/Contents/MacOS' % cocoa_name
-     OBJDIR_FILES.dist.plugins['%s.plugin' % cocoa_name].Contents += ['%s/Info.plist' % relative_path]
+ 
+-if CONFIG["MOZ_WIDGET_TOOLKIT"] in ("gtk", "cocoa", "windows"):
++if CONFIG["MOZ_WIDGET_TOOLKIT"] in ("cocoa", "windows"):
+     TEST_DIRS += ["plugins/test"]
+ 
+ SPHINX_TREES["/dom"] = "docs"
 diff --git a/gfx/gl/GLContextProviderGLX.cpp b/gfx/gl/GLContextProviderGLX.cpp
-index 3df2834ee1..3b6d0e42a0 100644
+index 8f97256..a371581 100644
 --- a/gfx/gl/GLContextProviderGLX.cpp
 +++ b/gfx/gl/GLContextProviderGLX.cpp
-@@ -3,11 +3,11 @@
+@@ -3,7 +3,7 @@
   * License, v. 2.0. If a copy of the MPL was not distributed with this
   * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
+ 
 -#ifdef MOZ_WIDGET_GTK
 +#if 0
  #  include <gdk/gdk.h>
  #  include <gdk/gdkx.h>
  #  define GET_NATIVE_WINDOW(aWidget) \
--    GDK_WINDOW_XID((GdkWindow*)aWidget->GetNativeData(NS_NATIVE_WINDOW))
-+   GDK_WINDOW_XID((GdkWindow*)aWidget->GetNativeData(NS_NATIVE_WINDOW))
- #endif
-
- #include <X11/Xlib.h>
 @@ -42,7 +42,7 @@
-
+ 
  #include "gfxCrashReporterUtils.h"
-
+ 
 -#ifdef MOZ_WIDGET_GTK
 +#if MOZ_WIDGET_GTK
  #  include "gfxPlatformGtk.h"
  #endif
-
-diff --git a/gfx/gl/GLContextProviderWayland.cpp b/gfx/gl/GLContextProviderWayland.cpp
-index 4f7c15380c..25ee2d4354 100644
---- a/gfx/gl/GLContextProviderWayland.cpp
-+++ b/gfx/gl/GLContextProviderWayland.cpp
-@@ -3,7 +3,7 @@
-  * License, v. 2.0. If a copy of the MPL was not distributed with this
-  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
--#ifdef MOZ_WIDGET_GTK
-+#if 0
- #  include <gdk/gdk.h>
- #  include <gdk/gdkx.h>
- #endif
-@@ -21,41 +21,24 @@ static class GLContextProviderEGL sGLContextProviderEGL;
- already_AddRefed<GLContext> GLContextProviderWayland::CreateForCompositorWidget(
-     CompositorWidget* aCompositorWidget, bool aWebRender,
-     bool aForceAccelerated) {
--  if (GDK_IS_X11_DISPLAY(gdk_display_get_default())) {
--    return sGLContextProviderX11.CreateForCompositorWidget(
--        aCompositorWidget, aWebRender, aForceAccelerated);
--  } else {
-     return sGLContextProviderEGL.CreateForCompositorWidget(
-         aCompositorWidget, aWebRender, aForceAccelerated);
--  }
- }
-
- /*static*/
- already_AddRefed<GLContext> GLContextProviderWayland::CreateHeadless(
-     const GLContextCreateDesc& desc, nsACString* const out_failureId) {
--  if (GDK_IS_X11_DISPLAY(gdk_display_get_default())) {
--    return sGLContextProviderX11.CreateHeadless(desc, out_failureId);
--  } else {
-     return sGLContextProviderEGL.CreateHeadless(desc, out_failureId);
--  }
- }
-
- /*static*/
- GLContext* GLContextProviderWayland::GetGlobalContext() {
--  if (GDK_IS_X11_DISPLAY(gdk_display_get_default())) {
--    return sGLContextProviderX11.GetGlobalContext();
--  } else {
-     return sGLContextProviderEGL.GetGlobalContext();
--  }
- }
-
- /*static*/
- void GLContextProviderWayland::Shutdown() {
--  if (GDK_IS_X11_DISPLAY(gdk_display_get_default())) {
--    sGLContextProviderX11.Shutdown();
--  } else {
-     sGLContextProviderEGL.Shutdown();
--  }
- }
-
- }  // namespace mozilla::gl
+ 
 diff --git a/gfx/thebes/gfxGdkNativeRenderer.cpp b/gfx/thebes/gfxGdkNativeRenderer.cpp
-index 49f3afdb59..95760b16e4 100644
+index 49f3afd..95760b1 100644
 --- a/gfx/thebes/gfxGdkNativeRenderer.cpp
 +++ b/gfx/thebes/gfxGdkNativeRenderer.cpp
 @@ -7,7 +7,7 @@
  #include "gfxContext.h"
  #include "gfxPlatformGtk.h"
-
+ 
 -#ifdef MOZ_X11
 +#if 0
  #  include <gdk/gdkx.h>
  #  include "cairo-xlib.h"
  #  include "gfxXlibSurface.h"
 diff --git a/gfx/thebes/gfxGdkNativeRenderer.h b/gfx/thebes/gfxGdkNativeRenderer.h
-index e11a3ba5d1..1cfaf8c79e 100644
+index e11a3ba..1cfaf8c 100644
 --- a/gfx/thebes/gfxGdkNativeRenderer.h
 +++ b/gfx/thebes/gfxGdkNativeRenderer.h
 @@ -6,9 +6,9 @@
  #ifndef GFXGDKNATIVERENDER_H_
  #define GFXGDKNATIVERENDER_H_
-
+ 
 -#include <gdk/gdk.h>
 +//#include <gdk/gdk.h>
  #include "nsSize.h"
@@ -1280,111 +73,10 @@ index e11a3ba5d1..1cfaf8c79e 100644
 +#if MOZ_X11
  #  include "gfxXlibNativeRenderer.h"
  #endif
-
-diff --git a/old-configure b/old-configure
-index 62d6ff55d9..9125028319 100644
---- a/old-configure
-+++ b/old-configure
-@@ -746,7 +746,6 @@ GLIB_VERSION=2.42
- GLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_42
- GLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_42
- CAIRO_VERSION=1.10
--GTK2_VERSION=2.18.0
- GTK3_VERSION=3.14.0
- GDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_14
- W32API_VERSION=3.14
-@@ -7929,79 +7928,6 @@ cat >> confdefs.h <<EOF
- EOF
  
-   fi
--  if test "$MOZ_ENABLE_GTK"; then
--    if test "$MOZ_X11"; then
--      GDK_PACKAGES=gdk-x11-2.0
--    fi
--    cat >> confdefs.pytmp <<EOF
--    (''' GLIB_VERSION_MIN_REQUIRED ''', r''' $GLIB_VERSION_MIN_REQUIRED ''')
--EOF
--cat >> confdefs.h <<EOF
--#define GLIB_VERSION_MIN_REQUIRED $GLIB_VERSION_MIN_REQUIRED
--EOF
--
--    cat >> confdefs.pytmp <<EOF
--    (''' GLIB_VERSION_MAX_ALLOWED ''', r''' $GLIB_VERSION_MAX_ALLOWED ''')
--EOF
--cat >> confdefs.h <<EOF
--#define GLIB_VERSION_MAX_ALLOWED $GLIB_VERSION_MAX_ALLOWED
--EOF
--
--
--    succeeded=no
--
--  if test -z "$PKG_CONFIG"; then
--     echo "*** The pkg-config script could not be found. Make sure it is"
--     echo "*** in your path, or set the PKG_CONFIG environment variable"
--     echo "*** to the full path to pkg-config."
--     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
--  else
--     PKG_CONFIG_MIN_VERSION=0.9.0
--     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
--        echo $ac_n "checking for gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 gio-unix-2.0 $GDK_PACKAGES""... $ac_c" 1>&6
--echo "configure:7963: checking for gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 gio-unix-2.0 $GDK_PACKAGES" >&5
--
--        if $PKG_CONFIG --exists "gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 gio-unix-2.0 $GDK_PACKAGES" ; then
--            echo "$ac_t""yes" 1>&6
--            succeeded=yes
--
--            echo $ac_n "checking MOZ_GTK2_CFLAGS""... $ac_c" 1>&6
--echo "configure:7970: checking MOZ_GTK2_CFLAGS" >&5
--            MOZ_GTK2_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 gio-unix-2.0 $GDK_PACKAGES"`
--            echo "$ac_t""$MOZ_GTK2_CFLAGS" 1>&6
--
--            echo $ac_n "checking MOZ_GTK2_LIBS""... $ac_c" 1>&6
--echo "configure:7975: checking MOZ_GTK2_LIBS" >&5
--            ## Remove evil flags like -Wl,--export-dynamic
--            MOZ_GTK2_LIBS="`$PKG_CONFIG --libs \"gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 gio-unix-2.0 $GDK_PACKAGES\" |sed s/-Wl,--export-dynamic//g`"
--            echo "$ac_t""$MOZ_GTK2_LIBS" 1>&6
--        else
--            MOZ_GTK2_CFLAGS=""
--            MOZ_GTK2_LIBS=""
--            ## If we have a custom action on failure, don't print errors, but 
--            ## do set a variable so people can do so.
--            MOZ_GTK2_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 gio-unix-2.0 $GDK_PACKAGES"`
--            echo $MOZ_GTK2_PKG_ERRORS
--        fi
--
--        
--        
--     else
--        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
--        echo "*** See http://www.freedesktop.org/software/pkgconfig"
--     fi
--  fi
--
--  if test $succeeded = yes; then
--     :
--  else
--     if test "$COMPILE_ENVIRONMENT"; then 
--       { echo "configure: error: Library requirements (gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 gio-unix-2.0 $GDK_PACKAGES) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." 1>&2; echo "configure: error: Library requirements (gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 gio-unix-2.0 $GDK_PACKAGES) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." 1>&5; exit 1; }
--     fi
--  fi
--
--    MOZ_GTK2_CFLAGS="-I${_topsrcdir}/widget/gtk/compat $MOZ_GTK2_CFLAGS"
--  fi
- fi # COMPILE_ENVIRONMENT
- 
- 
-@@ -10619,8 +10545,6 @@ sed 's/$/,/' >> $CONFIG_STATUS <<EOF
-     (''' MOZ_ANDROID_MAX_SDK_VERSION ''', r''' $MOZ_ANDROID_MAX_SDK_VERSION ''')
-     (''' MOZ_GTK3_CFLAGS ''', list(split(r''' $MOZ_GTK3_CFLAGS ''')))
-     (''' MOZ_GTK3_LIBS ''', list(split(r''' $MOZ_GTK3_LIBS ''')))
--    (''' MOZ_GTK2_CFLAGS ''', list(split(r''' $MOZ_GTK2_CFLAGS ''')))
--    (''' MOZ_GTK2_LIBS ''', list(split(r''' $MOZ_GTK2_LIBS ''')))
-     (''' MOZ_FS_LAYOUT ''', r''' $MOZ_FS_LAYOUT ''')
-     (''' TK_CFLAGS ''', list(split(r''' $TK_CFLAGS ''')))
-     (''' TK_LIBS ''', list(split(r''' $TK_LIBS ''')))
 diff --git a/widget/gtk/mozgtk/gtk2/moz.build b/widget/gtk/mozgtk/gtk2/moz.build
 deleted file mode 100644
-index d07fd06dfd..0000000000
+index 93e43c3..0000000
 --- a/widget/gtk/mozgtk/gtk2/moz.build
 +++ /dev/null
 @@ -1,40 +0,0 @@
@@ -1395,16 +87,16 @@ index d07fd06dfd..0000000000
 -# file, You can obtain one at http://mozilla.org/MPL/2.0/.
 -
 -SOURCES += [
--    '../mozgtk.c',
+-    "../mozgtk.c",
 -]
 -
--DEFINES['GTK3_SYMBOLS'] = True
+-DEFINES["GTK3_SYMBOLS"] = True
 -
--SharedLibrary('mozgtk2')
+-SharedLibrary("mozgtk2")
 -
--SHARED_LIBRARY_NAME = 'mozgtk'
+-SHARED_LIBRARY_NAME = "mozgtk"
 -
--FINAL_TARGET = 'dist/bin/gtk2'
+-FINAL_TARGET = "dist/bin/gtk2"
 -
 -# If LDFLAGS contains -Wl,--as-needed or if it's the default for the toolchain,
 -# we need to add -Wl,--no-as-needed before the gtk libraries, otherwise the
@@ -1414,50 +106,51 @@ index d07fd06dfd..0000000000
 -# to add it unconditionally. This library is also simple enough that forcing
 -# -Wl,--as-needed after the gtk libraries is not going to make a significant
 -# difference.
--if CONFIG['GCC_USE_GNU_LD']:
--    no_as_needed = ['-Wl,--no-as-needed']
--    as_needed = ['-Wl,--as-needed']
+-if CONFIG["GCC_USE_GNU_LD"]:
+-    no_as_needed = ["-Wl,--no-as-needed"]
+-    as_needed = ["-Wl,--as-needed"]
 -else:
 -    no_as_needed = []
 -    as_needed = []
 -
--OS_LIBS += [f for f in CONFIG['MOZ_GTK2_LIBS'] if f.startswith('-L')]
+-OS_LIBS += [f for f in CONFIG["MOZ_GTK2_LIBS"] if f.startswith("-L")]
 -OS_LIBS += no_as_needed
 -OS_LIBS += [
--    'gtk-x11-2.0',
--    'gdk-x11-2.0',
+-    "gtk-x11-2.0",
+-    "gdk-x11-2.0",
 -]
 -OS_LIBS += as_needed
 diff --git a/widget/gtk/mozgtk/gtk3/moz.build b/widget/gtk/mozgtk/gtk3/moz.build
-index 4e9379565d..20b961371e 100644
+index b4ab68e..e6e4a6d 100644
 --- a/widget/gtk/mozgtk/gtk3/moz.build
 +++ b/widget/gtk/mozgtk/gtk3/moz.build
-@@ -8,7 +8,6 @@ SOURCES += [
-     '../mozgtk.c',
+@@ -8,8 +8,6 @@ SOURCES += [
+     "../mozgtk.c",
  ]
-
--DEFINES['GTK2_SYMBOLS'] = True
-
- SharedLibrary('mozgtk')
-
+ 
+-DEFINES["GTK2_SYMBOLS"] = True
+-
+ SharedLibrary("mozgtk")
+ 
+ SONAME = "mozgtk"
 diff --git a/widget/gtk/mozgtk/moz.build b/widget/gtk/mozgtk/moz.build
-index 528e2e9d0f..d32ee829e7 100644
+index 8288583..cca6db0 100644
 --- a/widget/gtk/mozgtk/moz.build
 +++ b/widget/gtk/mozgtk/moz.build
 @@ -4,4 +4,4 @@
  # License, v. 2.0. If a copy of the MPL was not distributed with this
  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
--DIRS += ['stub', 'gtk2', 'gtk3']
-+DIRS += ['stub', 'gtk3']
+ 
+-DIRS += ["stub", "gtk2", "gtk3"]
++DIRS += ["stub", "gtk3"]
 diff --git a/widget/gtk/mozgtk/mozgtk.c b/widget/gtk/mozgtk/mozgtk.c
-index 8cc4da33f6..4ba73523fc 100644
+index 0b2e3fd..0bb4ac0 100644
 --- a/widget/gtk/mozgtk/mozgtk.c
 +++ b/widget/gtk/mozgtk/mozgtk.c
-@@ -647,21 +647,6 @@ STUB(gtk_color_chooser_get_rgba)
+@@ -646,21 +646,6 @@ STUB(gtk_color_chooser_get_rgba)
  STUB(gtk_color_chooser_set_use_alpha)
  #endif
-
+ 
 -#ifdef GTK2_SYMBOLS
 -STUB(gdk_drawable_get_screen)
 -STUB(gdk_rgb_get_colormap)
@@ -1477,26 +170,26 @@ index 8cc4da33f6..4ba73523fc 100644
  // Only define the following workaround when using GTK3, which we detect
  // by checking if GTK3 stubs are not provided.
 diff --git a/widget/gtk/mozgtk/stub/moz.build b/widget/gtk/mozgtk/stub/moz.build
-index 1a8e210018..3ed3d1be48 100644
+index 8af0cc1..d523310 100644
 --- a/widget/gtk/mozgtk/stub/moz.build
 +++ b/widget/gtk/mozgtk/stub/moz.build
 @@ -8,7 +8,7 @@ SOURCES += [
-     '../mozgtk.c',
+     "../mozgtk.c",
  ]
-
--for var in ('COMMON_SYMBOLS', 'GTK2_SYMBOLS', 'GTK3_SYMBOLS'):
-+for var in ('COMMON_SYMBOLS', 'GTK3_SYMBOLS'):
+ 
+-for var in ("COMMON_SYMBOLS", "GTK2_SYMBOLS", "GTK3_SYMBOLS"):
++for var in ("COMMON_SYMBOLS", "GTK3_SYMBOLS"):
      DEFINES[var] = True
-
- SharedLibrary('mozgtk_stub')
+ 
+ SharedLibrary("mozgtk_stub")
 diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h
-index 29f40cb636..12aed01bb0 100644
+index 5bfdcd9..95caf91 100644
 --- a/widget/gtk/nsWindow.h
 +++ b/widget/gtk/nsWindow.h
 @@ -8,14 +8,14 @@
  #ifndef __nsWindow_h__
  #define __nsWindow_h__
-
+ 
 -#include <gdk/gdk.h>
 +//#include <gdk/gdk.h>
  #include <gtk/gtk.h>
@@ -1510,3 +203,165 @@ index 29f40cb636..12aed01bb0 100644
  #  include "base/thread.h"
  #  include "WaylandVsyncSource.h"
  #endif
+--- a/old-configure
++++ b/old-configure
+@@ -746,7 +746,6 @@
+ GLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_42
+ GLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_42
+ CAIRO_VERSION=1.10
+-GTK2_VERSION=2.18.0
+ GTK3_VERSION=3.14.0
+ GDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_14
+ W32API_VERSION=3.14
+@@ -7899,85 +7898,6 @@
+ EOF
+ 
+   fi
+-  if test "$MOZ_ENABLE_GTK"; then
+-    cat >> confdefs.pytmp <<EOF
+-    (''' GLIB_VERSION_MIN_REQUIRED ''', r''' $GLIB_VERSION_MIN_REQUIRED ''')
+-EOF
+-cat >> confdefs.h <<EOF
+-#define GLIB_VERSION_MIN_REQUIRED $GLIB_VERSION_MIN_REQUIRED
+-EOF
+-
+-    cat >> confdefs.pytmp <<EOF
+-    (''' GLIB_VERSION_MAX_ALLOWED ''', r''' $GLIB_VERSION_MAX_ALLOWED ''')
+-EOF
+-cat >> confdefs.h <<EOF
+-#define GLIB_VERSION_MAX_ALLOWED $GLIB_VERSION_MAX_ALLOWED
+-EOF
+-
+-
+-    if test "$MOZ_X11"; then
+-      succeeded=no
+-
+-  if test -z "$PKG_CONFIG"; then
+-     echo "*** The pkg-config script could not be found. Make sure it is"
+-     echo "*** in your path, or set the PKG_CONFIG environment variable"
+-     echo "*** to the full path to pkg-config."
+-     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+-  else
+-     PKG_CONFIG_MIN_VERSION=0.9.0
+-     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+-        echo $ac_n "checking for gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 gio-unix-2.0 gdk-x11-2.0""... $ac_c" 1>&6
+-echo "configure:7931: checking for gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 gio-unix-2.0 gdk-x11-2.0" >&5
+-
+-        if test -n "$PKG_CONFIG_SYSROOT_DIR"; then
+-            export PKG_CONFIG_SYSROOT_DIR
+-        fi
+-        if test -n "$PKG_CONFIG_LIBDIR"; then
+-            export PKG_CONFIG_LIBDIR
+-        fi
+-
+-        if $PKG_CONFIG --exists "gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 gio-unix-2.0 gdk-x11-2.0" ; then
+-            echo "$ac_t""yes" 1>&6
+-            succeeded=yes
+-
+-            echo $ac_n "checking MOZ_GTK2_CFLAGS""... $ac_c" 1>&6
+-echo "configure:7945: checking MOZ_GTK2_CFLAGS" >&5
+-            MOZ_GTK2_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 gio-unix-2.0 gdk-x11-2.0"`
+-            echo "$ac_t""$MOZ_GTK2_CFLAGS" 1>&6
+-
+-            echo $ac_n "checking MOZ_GTK2_LIBS""... $ac_c" 1>&6
+-echo "configure:7950: checking MOZ_GTK2_LIBS" >&5
+-            ## Remove evil flags like -Wl,--export-dynamic
+-            MOZ_GTK2_LIBS="`$PKG_CONFIG --libs \"gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 gio-unix-2.0 gdk-x11-2.0\" |sed s/-Wl,--export-dynamic//g`"
+-            echo "$ac_t""$MOZ_GTK2_LIBS" 1>&6
+-        else
+-            MOZ_GTK2_CFLAGS=""
+-            MOZ_GTK2_LIBS=""
+-            ## If we have a custom action on failure, don't print errors, but 
+-            ## do set a variable so people can do so.
+-            MOZ_GTK2_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 gio-unix-2.0 gdk-x11-2.0"`
+-            echo $MOZ_GTK2_PKG_ERRORS
+-        fi
+-
+-        
+-        
+-     else
+-        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+-        echo "*** See http://www.freedesktop.org/software/pkgconfig"
+-     fi
+-  fi
+-
+-  if test $succeeded = yes; then
+-     :
+-  else
+-     if test "$COMPILE_ENVIRONMENT"; then 
+-       { echo "configure: error: Library requirements (gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 gio-unix-2.0 gdk-x11-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." 1>&2; echo "configure: error: Library requirements (gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 gio-unix-2.0 gdk-x11-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." 1>&5; exit 1; }
+-     fi
+-  fi
+-
+-      MOZ_GTK2_CFLAGS="-I${_topsrcdir}/widget/gtk/compat $MOZ_GTK2_CFLAGS"
+-    fi
+-  fi
+ fi # COMPILE_ENVIRONMENT
+ 
+ 
+@@ -10633,8 +10553,6 @@
+     (''' MOZ_ANDROID_MAX_SDK_VERSION ''', r''' $MOZ_ANDROID_MAX_SDK_VERSION ''')
+     (''' MOZ_GTK3_CFLAGS ''', list(split(r''' $MOZ_GTK3_CFLAGS ''')))
+     (''' MOZ_GTK3_LIBS ''', list(split(r''' $MOZ_GTK3_LIBS ''')))
+-    (''' MOZ_GTK2_CFLAGS ''', list(split(r''' $MOZ_GTK2_CFLAGS ''')))
+-    (''' MOZ_GTK2_LIBS ''', list(split(r''' $MOZ_GTK2_LIBS ''')))
+     (''' MOZ_FS_LAYOUT ''', r''' $MOZ_FS_LAYOUT ''')
+     (''' TK_CFLAGS ''', list(split(r''' $TK_CFLAGS ''')))
+     (''' TK_LIBS ''', list(split(r''' $TK_LIBS ''')))
+--- a/gfx/gl/GLContextProviderWayland.cpp
++++ b/gfx/gl/GLContextProviderWayland.cpp
+@@ -20,13 +20,8 @@
+ already_AddRefed<GLContext> GLContextProviderWayland::CreateForCompositorWidget(
+     CompositorWidget* aCompositorWidget, bool aHardwareWebRender,
+     bool aForceAccelerated) {
+-  if (GdkIsX11Display()) {
+-    return sGLContextProviderX11.CreateForCompositorWidget(
+-        aCompositorWidget, aHardwareWebRender, aForceAccelerated);
+-  } else {
+     return sGLContextProviderEGL.CreateForCompositorWidget(
+         aCompositorWidget, aHardwareWebRender, aForceAccelerated);
+-  }
+ }
+ 
+ /*static*/
+@@ -33,10 +28,6 @@
+ already_AddRefed<GLContext> GLContextProviderWayland::CreateHeadless(
+     const GLContextCreateDesc& desc, nsACString* const out_failureId) {
+-  if (GdkIsX11Display()) {
+-    return sGLContextProviderX11.CreateHeadless(desc, out_failureId);
+-  } else {
+     return sGLContextProviderEGL.CreateHeadless(desc, out_failureId);
+-  }
+ }
+ 
+ /*static*/
+@@ -43,9 +34,5 @@
+ GLContext* GLContextProviderWayland::GetGlobalContext() {
+-  if (GdkIsX11Display()) {
+-    return sGLContextProviderX11.GetGlobalContext();
+-  } else {
+     return sGLContextProviderEGL.GetGlobalContext();
+-  }
+ }
+ 
+ /*static*/
+@@ -52,9 +39,5 @@
+ void GLContextProviderWayland::Shutdown() {
+-  if (GdkIsX11Display()) {
+-    sGLContextProviderX11.Shutdown();
+-  } else {
+     sGLContextProviderEGL.Shutdown();
+-  }
+ }
+ 
+ }  // namespace mozilla::gl
+--- a/dom/plugins/test/moz.build
++++ b/dom/plugins/test/moz.build
+@@ -4,6 +4,6 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ 
+-if CONFIG["MOZ_WIDGET_TOOLKIT"] in ("gtk", "cocoa", "windows"):
++if CONFIG["MOZ_WIDGET_TOOLKIT"] in ("cocoa", "windows"):
+     MOCHITEST_MANIFESTS += ["mochitest/mochitest.ini"]
+     BROWSER_CHROME_MANIFESTS += ["mochitest/browser.ini"]
diff --git a/extra/firefox/sources b/extra/firefox/sources
index fccfe041..12720ac3 100644
--- a/extra/firefox/sources
+++ b/extra/firefox/sources
@@ -1,4 +1,4 @@
-https://ftp.mozilla.org/pub/firefox/releases/83.0/source/firefox-83.0.source.tar.xz
+https://ftp.mozilla.org/pub/firefox/releases/89.0.2/source/firefox-89.0.2.source.tar.xz
 https://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz autoconf2.13/
 https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz yasm/
 patches/no-gtk2.patch
diff --git a/extra/firefox/version b/extra/firefox/version
index 7b835e9a..ce23661e 100644
--- a/extra/firefox/version
+++ b/extra/firefox/version
@@ -1 +1 @@
-83.0 1
+89.0.2 1