diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild
index 6e017df20f..41ec024832 100644
--- a/config/system-headers.mozbuild
+++ b/config/system-headers.mozbuild
@@ -1025,8 +1025,6 @@ if CONFIG['MOZ_X11']:
         'X11/extensions/Print.h',
         'X11/extensions/scrnsaver.h',
         'X11/extensions/shape.h',
-        'X11/extensions/Xcomposite.h',
-        'X11/extensions/Xdamage.h',
         'X11/extensions/Xfixes.h',
         'X11/extensions/Xrender.h',
         'X11/extensions/XShm.h',
diff --git a/dom/media/webrtc/third_party_build/gn-configs/x64_False_x64_linux.json b/dom/media/webrtc/third_party_build/gn-configs/x64_False_x64_linux.json
index 6c0383ef19..7f8ab25103 100644
--- a/dom/media/webrtc/third_party_build/gn-configs/x64_False_x64_linux.json
+++ b/dom/media/webrtc/third_party_build/gn-configs/x64_False_x64_linux.json
@@ -143,9 +143,7 @@
                 "X11",
                 "X11-xcb",
                 "xcb",
-                "Xcomposite",
                 "Xcursor",
-                "Xdamage",
                 "Xext",
                 "Xfixes",
                 "Xi",
@@ -10649,9 +10647,7 @@
                 "X11",
                 "X11-xcb",
                 "xcb",
-                "Xcomposite",
                 "Xcursor",
-                "Xdamage",
                 "Xext",
                 "Xfixes",
                 "Xi",
@@ -10863,9 +10859,7 @@
                 "X11",
                 "X11-xcb",
                 "xcb",
-                "Xcomposite",
                 "Xcursor",
-                "Xdamage",
                 "Xext",
                 "Xfixes",
                 "Xi",
diff --git a/dom/media/webrtc/third_party_build/gn-configs/x64_False_x86_linux.json b/dom/media/webrtc/third_party_build/gn-configs/x64_False_x86_linux.json
index 6ff93bdc25..77b9dcff7d 100644
--- a/dom/media/webrtc/third_party_build/gn-configs/x64_False_x86_linux.json
+++ b/dom/media/webrtc/third_party_build/gn-configs/x64_False_x86_linux.json
@@ -149,9 +149,7 @@
                 "X11",
                 "X11-xcb",
                 "xcb",
-                "Xcomposite",
                 "Xcursor",
-                "Xdamage",
                 "Xext",
                 "Xfixes",
                 "Xi",
@@ -11217,9 +11215,7 @@
                 "X11",
                 "X11-xcb",
                 "xcb",
-                "Xcomposite",
                 "Xcursor",
-                "Xdamage",
                 "Xext",
                 "Xfixes",
                 "Xi",
@@ -11442,9 +11438,7 @@
                 "X11",
                 "X11-xcb",
                 "xcb",
-                "Xcomposite",
                 "Xcursor",
-                "Xdamage",
                 "Xext",
                 "Xfixes",
                 "Xi",
diff --git a/dom/media/webrtc/third_party_build/gn-configs/x64_True_x64_linux.json b/dom/media/webrtc/third_party_build/gn-configs/x64_True_x64_linux.json
index 74c4825c97..c9d16401a8 100644
--- a/dom/media/webrtc/third_party_build/gn-configs/x64_True_x64_linux.json
+++ b/dom/media/webrtc/third_party_build/gn-configs/x64_True_x64_linux.json
@@ -140,9 +140,7 @@
                 "X11",
                 "X11-xcb",
                 "xcb",
-                "Xcomposite",
                 "Xcursor",
-                "Xdamage",
                 "Xext",
                 "Xfixes",
                 "Xi",
@@ -10364,9 +10362,7 @@
                 "X11",
                 "X11-xcb",
                 "xcb",
-                "Xcomposite",
                 "Xcursor",
-                "Xdamage",
                 "Xext",
                 "Xfixes",
                 "Xi",
@@ -10572,9 +10568,7 @@
                 "X11",
                 "X11-xcb",
                 "xcb",
-                "Xcomposite",
                 "Xcursor",
-                "Xdamage",
                 "Xext",
                 "Xfixes",
                 "Xi",
diff --git a/dom/media/webrtc/third_party_build/gn-configs/x64_True_x86_linux.json b/dom/media/webrtc/third_party_build/gn-configs/x64_True_x86_linux.json
index 5e09a70bd4..5509c838cb 100644
--- a/dom/media/webrtc/third_party_build/gn-configs/x64_True_x86_linux.json
+++ b/dom/media/webrtc/third_party_build/gn-configs/x64_True_x86_linux.json
@@ -146,9 +146,7 @@
                 "X11",
                 "X11-xcb",
                 "xcb",
-                "Xcomposite",
                 "Xcursor",
-                "Xdamage",
                 "Xext",
                 "Xfixes",
                 "Xi",
@@ -10932,9 +10930,7 @@
                 "X11",
                 "X11-xcb",
                 "xcb",
-                "Xcomposite",
                 "Xcursor",
-                "Xdamage",
                 "Xext",
                 "Xfixes",
                 "Xi",
@@ -11151,9 +11147,7 @@
                 "X11",
                 "X11-xcb",
                 "xcb",
-                "Xcomposite",
                 "Xcursor",
-                "Xdamage",
                 "Xext",
                 "Xfixes",
                 "Xi",
diff --git a/js/src/threading/posix/PosixThread.cpp b/js/src/threading/posix/PosixThread.cpp
index 35532e375b..db55bc1484 100644
--- a/js/src/threading/posix/PosixThread.cpp
+++ b/js/src/threading/posix/PosixThread.cpp
@@ -116,7 +116,8 @@ void ThisThread::SetName(const char* name) {
 #elif defined(__NetBSD__)
   rv = pthread_setname_np(pthread_self(), "%s", (void*)name);
 #else
-  rv = pthread_setname_np(pthread_self(), name);
+//  rv = pthread_setname_np(pthread_self(), name);
+    rv = 0;
 #endif
   MOZ_RELEASE_ASSERT(!rv);
 }
diff --git a/old-configure.in b/old-configure.in
index de2642f71d..46c8962e85 100644
--- a/old-configure.in
+++ b/old-configure.in
@@ -1694,7 +1694,7 @@ AC_SUBST(MOZ_WEBRTC_HAVE_ETHTOOL_SPEED_HI)
 
 if test -n "$MOZ_WEBRTC"; then
     if test -n "$MOZ_X11"; then
-      MOZ_WEBRTC_X11_LIBS="-lXext -lXdamage -lXfixes -lXcomposite"
+      MOZ_WEBRTC_X11_LIBS="-lXext -lXfixes"
     fi
 fi
 
diff --git a/security/sandbox/linux/SandboxFilter.cpp b/security/sandbox/linux/SandboxFilter.cpp
index 6b07186e8c..12d3d16fdc 100644
--- a/security/sandbox/linux/SandboxFilter.cpp
+++ b/security/sandbox/linux/SandboxFilter.cpp
@@ -1163,7 +1163,9 @@ class ContentSandboxPolicy : public SandboxPolicyCommon {
     switch (aCall) {
       case SYS_RECVFROM:
       case SYS_SENDTO:
+#if defined(SYS_SENDMMSG)
       case SYS_SENDMMSG:  // libresolv via libasyncns; see bug 1355274
+#endif
         return Some(Allow());
 
 #ifdef ANDROID
@@ -1795,7 +1797,9 @@ class SocketProcessSandboxPolicy final : public SandboxPolicyCommon {
 
       case SYS_RECVFROM:
       case SYS_SENDTO:
+#if defined(SYS_SENDMMSG)
       case SYS_SENDMMSG:
+#endif
         return Some(Allow());
 
       case SYS_RECV:
diff --git a/security/sandbox/linux/SandboxReporterClient.cpp b/security/sandbox/linux/SandboxReporterClient.cpp
index d869df991e..1dbeb19307 100644
--- a/security/sandbox/linux/SandboxReporterClient.cpp
+++ b/security/sandbox/linux/SandboxReporterClient.cpp
@@ -49,7 +49,7 @@ SandboxReport SandboxReporterClient::MakeReport(const void* aContext) {
   // sending uninitialized alignment padding to another process.
   PodZero(&report);
 
-  clock_gettime(CLOCK_MONOTONIC_COARSE, &report.mTime);
+  clock_gettime(CLOCK_MONOTONIC, &report.mTime);
   report.mPid = getpid();
   report.mTid = syscall(__NR_gettid);
   report.mProcType = mProcType;
diff --git a/security/sandbox/linux/reporter/SandboxReporterWrappers.cpp b/security/sandbox/linux/reporter/SandboxReporterWrappers.cpp
index d642c97930..c94455f89a 100644
--- a/security/sandbox/linux/reporter/SandboxReporterWrappers.cpp
+++ b/security/sandbox/linux/reporter/SandboxReporterWrappers.cpp
@@ -38,7 +38,7 @@ NS_IMPL_ISUPPORTS(SandboxReportWrapper, mozISandboxReport)
 /* readonly attribute uint64_t msecAgo; */
 NS_IMETHODIMP SandboxReportWrapper::GetMsecAgo(uint64_t* aMsec) {
   struct timespec then = mReport.mTime, now = {0, 0};
-  clock_gettime(CLOCK_MONOTONIC_COARSE, &now);
+  clock_gettime(CLOCK_MONOTONIC, &now);
 
   const uint64_t now_msec = uint64_t(now.tv_sec) * 1000 + now.tv_nsec / 1000000;
   const uint64_t then_msec =
diff --git a/third_party/libwebrtc/webrtc/build/config/linux/BUILD.gn b/third_party/libwebrtc/webrtc/build/config/linux/BUILD.gn
index c3eb34fcc0..3f5f637b71 100644
--- a/third_party/libwebrtc/webrtc/build/config/linux/BUILD.gn
+++ b/third_party/libwebrtc/webrtc/build/config/linux/BUILD.gn
@@ -32,9 +32,7 @@ config("x11") {
     "X11",
     "X11-xcb",
     "xcb",
-    "Xcomposite",
     "Xcursor",
-    "Xdamage",
     "Xext",
     "Xfixes",
     "Xi",
@@ -48,10 +46,6 @@ config("x11") {
   }
 }
 
-config("xcomposite") {
-  libs = [ "Xcomposite" ]
-}
-
 config("xext") {
   libs = [ "Xext" ]
 }
diff --git a/third_party/libwebrtc/webrtc/build/experimental/install-build-deps.py b/third_party/libwebrtc/webrtc/build/experimental/install-build-deps.py
index 04a26ab9d8..353e4e7ca7 100644
--- a/third_party/libwebrtc/webrtc/build/experimental/install-build-deps.py
+++ b/third_party/libwebrtc/webrtc/build/experimental/install-build-deps.py
@@ -140,9 +140,7 @@ _packages_lib = (
   'libx11-xcb1',
   'libxau6',
   'libxcb1',
-  'libxcomposite1',
   'libxcursor1',
-  'libxdamage1',
   'libxdmcp6',
   'libxext6',
   'libxfixes3',
@@ -171,9 +169,7 @@ _packages_dbg = (
   'libx11-xcb1-dbg',
   'libxau6-dbg',
   'libxcb1-dbg',
-  'libxcomposite1-dbg',
   'libxcursor1-dbg',
-  'libxdamage1-dbg',
   'libxdmcp6-dbg',
   'libxext6-dbg',
   'libxfixes3-dbg',
@@ -230,9 +226,7 @@ _packages_nacl = (
   'libtinfo-dev',
   'libtinfo-dev:i386',
   'libtool',
-  'libxcomposite1:i386',
   'libxcursor1:i386',
-  'libxdamage1:i386',
   'libxi6:i386',
   'libxrandr2:i386',
   'libxss1:i386',
diff --git a/third_party/libwebrtc/webrtc/build/install-build-deps.sh b/third_party/libwebrtc/webrtc/build/install-build-deps.sh
index c965a9b38e..6230ad13f7 100755
--- a/third_party/libwebrtc/webrtc/build/install-build-deps.sh
+++ b/third_party/libwebrtc/webrtc/build/install-build-deps.sh
@@ -249,9 +249,7 @@ lib_list="\
   libx11-xcb1
   libxau6
   libxcb1
-  libxcomposite1
   libxcursor1
-  libxdamage1
   libxdmcp6
   libxext6
   libxfixes3
@@ -282,9 +280,7 @@ dbg_list="\
   libx11-xcb1-dbg
   libxau6-dbg
   libxcb1-dbg
-  libxcomposite1-dbg
   libxcursor1-dbg
-  libxdamage1-dbg
   libxdmcp6-dbg
   libxext6-dbg
   libxi6-dbg
@@ -388,9 +384,7 @@ nacl_list="\
   libtinfo-dev
   libtinfo-dev:i386
   libtool
-  libxcomposite1:i386
   libxcursor1:i386
-  libxdamage1:i386
   libxi6:i386
   libxrandr2:i386
   libxss1:i386
diff --git a/third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_gn/moz.build b/third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_gn/moz.build
index e8e2369855..09bb8a08e5 100644
--- a/third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_gn/moz.build
+++ b/third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_gn/moz.build
@@ -63,9 +63,7 @@ if CONFIG["OS_TARGET"] == "DragonFly":
         "X11",
         "X11-xcb",
         "xcb",
-        "Xcomposite",
         "Xcursor",
-        "Xdamage",
         "Xext",
         "Xfixes",
         "Xi",
@@ -83,9 +81,7 @@ if CONFIG["OS_TARGET"] == "FreeBSD":
         "X11",
         "X11-xcb",
         "xcb",
-        "Xcomposite",
         "Xcursor",
-        "Xdamage",
         "Xext",
         "Xfixes",
         "Xi",
@@ -105,9 +101,7 @@ if CONFIG["OS_TARGET"] == "Linux":
         "X11",
         "X11-xcb",
         "xcb",
-        "Xcomposite",
         "Xcursor",
-        "Xdamage",
         "Xext",
         "Xfixes",
         "Xi",
@@ -125,9 +119,7 @@ if CONFIG["OS_TARGET"] == "NetBSD":
         "X11",
         "X11-xcb",
         "xcb",
-        "Xcomposite",
         "Xcursor",
-        "Xdamage",
         "Xext",
         "Xfixes",
         "Xi",
@@ -145,9 +137,7 @@ if CONFIG["OS_TARGET"] == "OpenBSD":
         "X11",
         "X11-xcb",
         "xcb",
-        "Xcomposite",
         "Xcursor",
-        "Xdamage",
         "Xext",
         "Xfixes",
         "Xi",
diff --git a/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_x11.cc b/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_x11.cc
index b5f0aa9247..8954c573ab 100644
--- a/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_x11.cc
+++ b/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_x11.cc
@@ -12,7 +12,6 @@
 
 #include <string.h>
 
-#include <X11/extensions/Xdamage.h>
 #include <X11/extensions/Xfixes.h>
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
@@ -40,10 +39,6 @@ ScreenCapturerX11::ScreenCapturerX11() {
 
 ScreenCapturerX11::~ScreenCapturerX11() {
   options_.x_display()->RemoveEventHandler(ConfigureNotify, this);
-  if (use_damage_) {
-    options_.x_display()->RemoveEventHandler(
-        damage_event_base_ + XDamageNotify, this);
-  }
   DeinitXlib();
 }
 
@@ -96,39 +91,7 @@ void ScreenCapturerX11::InitXDamage() {
     return;
   }
 
-  // Check for XDamage extension.
-  if (!XDamageQueryExtension(display(), &damage_event_base_,
-                             &damage_error_base_)) {
-    RTC_LOG(LS_INFO) << "X server does not support XDamage.";
-    return;
-  }
-
-  // TODO(lambroslambrou): Disable DAMAGE in situations where it is known
-  // to fail, such as when Desktop Effects are enabled, with graphics
-  // drivers (nVidia, ATI) that fail to report DAMAGE notifications
-  // properly.
-
-  // Request notifications every time the screen becomes damaged.
-  damage_handle_ = XDamageCreate(display(), root_window_,
-                                 XDamageReportNonEmpty);
-  if (!damage_handle_) {
-    RTC_LOG(LS_ERROR) << "Unable to initialize XDamage.";
-    return;
-  }
-
-  // Create an XFixes server-side region to collate damage into.
-  damage_region_ = XFixesCreateRegion(display(), 0, 0);
-  if (!damage_region_) {
-    XDamageDestroy(display(), damage_handle_);
-    RTC_LOG(LS_ERROR) << "Unable to create XFixes region.";
-    return;
-  }
-
-  options_.x_display()->AddEventHandler(
-      damage_event_base_ + XDamageNotify, this);
-
-  use_damage_ = true;
-  RTC_LOG(LS_INFO) << "Using XDamage extension.";
+  RTC_LOG(LS_INFO) << "X server does not support XDamage extension.";
 }
 
 void ScreenCapturerX11::Start(Callback* callback) {
@@ -190,14 +153,7 @@ bool ScreenCapturerX11::SelectSource(SourceId id) {
 }
 
 bool ScreenCapturerX11::HandleXEvent(const XEvent& event) {
-  if (use_damage_ && (event.type == damage_event_base_ + XDamageNotify)) {
-    const XDamageNotifyEvent* damage_event =
-        reinterpret_cast<const XDamageNotifyEvent*>(&event);
-    if (damage_event->damage != damage_handle_)
-      return false;
-    RTC_DCHECK(damage_event->level == XDamageReportNonEmpty);
-    return true;
-  } else if (event.type == ConfigureNotify) {
+  if (event.type == ConfigureNotify) {
     ScreenConfigurationChanged();
     return true;
   }
@@ -216,41 +172,11 @@ std::unique_ptr<DesktopFrame> ScreenCapturerX11::CaptureScreen() {
   // if any.  If there isn't a previous frame, that means a screen-resolution
   // change occurred, and |invalid_rects| will be updated to include the whole
   // screen.
-  if (use_damage_ && queue_.previous_frame())
-    SynchronizeFrame();
 
   DesktopRegion* updated_region = frame->mutable_updated_region();
 
   x_server_pixel_buffer_.Synchronize();
-  if (use_damage_ && queue_.previous_frame()) {
-    // Atomically fetch and clear the damage region.
-    XDamageSubtract(display(), damage_handle_, None, damage_region_);
-    int rects_num = 0;
-    XRectangle bounds;
-    XRectangle* rects = XFixesFetchRegionAndBounds(display(), damage_region_,
-                                                   &rects_num, &bounds);
-    for (int i = 0; i < rects_num; ++i) {
-      updated_region->AddRect(DesktopRect::MakeXYWH(
-          rects[i].x, rects[i].y, rects[i].width, rects[i].height));
-    }
-    XFree(rects);
-    helper_.InvalidateRegion(*updated_region);
-
-    // Capture the damaged portions of the desktop.
-    helper_.TakeInvalidRegion(updated_region);
-
-    // Clip the damaged portions to the current screen size, just in case some
-    // spurious XDamage notifications were received for a previous (larger)
-    // screen size.
-    updated_region->IntersectWith(
-        DesktopRect::MakeSize(x_server_pixel_buffer_.window_size()));
-
-    for (DesktopRegion::Iterator it(*updated_region);
-         !it.IsAtEnd(); it.Advance()) {
-      if (!x_server_pixel_buffer_.CaptureRect(it.rect(), frame.get()))
-        return nullptr;
-    }
-  } else {
+  {
     // Doing full-screen polling, or this is the first capture after a
     // screen-resolution change.  In either case, need a full-screen capture.
     DesktopRect screen_rect = DesktopRect::MakeSize(frame->size());
@@ -302,11 +228,6 @@ void ScreenCapturerX11::DeinitXlib() {
   x_server_pixel_buffer_.Release();
 
   if (display()) {
-    if (damage_handle_) {
-      XDamageDestroy(display(), damage_handle_);
-      damage_handle_ = 0;
-    }
-
     if (damage_region_) {
       XFixesDestroyRegion(display(), damage_region_);
       damage_region_ = 0;
diff --git a/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_x11.cc b/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_x11.cc
index 090027a79b..b271e6514e 100644
--- a/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_x11.cc
+++ b/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_x11.cc
@@ -10,7 +10,6 @@
 
 #include "modules/desktop_capture/linux/window_capturer_x11.h"
 
-#include <X11/extensions/Xcomposite.h>
 #include <X11/extensions/Xrender.h>
 #include <X11/Xutil.h>
 
@@ -33,15 +32,7 @@ WindowCapturerX11::WindowCapturerX11(const DesktopCaptureOptions& options)
     : x_display_(options.x_display()),
       atom_cache_(display()),
       window_finder_(&atom_cache_) {
-  int event_base, error_base, major_version, minor_version;
-  if (XCompositeQueryExtension(display(), &event_base, &error_base) &&
-      XCompositeQueryVersion(display(), &major_version, &minor_version) &&
-      // XCompositeNameWindowPixmap() requires version 0.2
-      (major_version > 0 || minor_version >= 2)) {
-    has_composite_extension_ = true;
-  } else {
-    RTC_LOG(LS_INFO) << "Xcomposite extension not available or too old.";
-  }
+  RTC_LOG(LS_INFO) << "Xcomposite extension not available or too old.";
 
   x_display_->AddEventHandler(ConfigureNotify, this);
 }
@@ -79,7 +70,7 @@ bool WindowCapturerX11::SelectSource(SourceId id) {
 
   // Redirect drawing to an offscreen buffer (ie, turn on compositing). X11
   // remembers who has requested this and will turn it off for us when we exit.
-  XCompositeRedirectWindow(display(), id, CompositeRedirectAutomatic);
+  // XCompositeRedirectWindow(display(), id, CompositeRedirectAutomatic);
 
   return true;
 }
diff --git a/third_party/libwebrtc/webrtc/webrtc_gn/moz.build b/third_party/libwebrtc/webrtc/webrtc_gn/moz.build
index 7ce0675b16..6fffa4e0f4 100644
--- a/third_party/libwebrtc/webrtc/webrtc_gn/moz.build
+++ b/third_party/libwebrtc/webrtc/webrtc_gn/moz.build
@@ -140,9 +140,7 @@ if CONFIG["OS_TARGET"] == "Linux":
         "X11",
         "X11-xcb",
         "xcb",
-        "Xcomposite",
         "Xcursor",
-        "Xdamage",
         "Xext",
         "Xfixes",
         "Xi",
diff --git a/widget/gtk/nsShmImage.h b/widget/gtk/nsShmImage.h
index 2d92c39e0d..d11a84205c 100644
--- a/widget/gtk/nsShmImage.h
+++ b/widget/gtk/nsShmImage.h
@@ -17,8 +17,10 @@
 #  include "nsIWidget.h"
 #  include "Units.h"
 
+extern "C" {
 #  include <X11/Xlib-xcb.h>
 #  include <xcb/shm.h>
+}
 
 class nsShmImage {
   // bug 1168843, compositor thread may create shared memory instances that are
diff --git a/widget/nsXPLookAndFeel.cpp b/widget/nsXPLookAndFeel.cpp
index 4e61578035..da610df411 100644
--- a/widget/nsXPLookAndFeel.cpp
+++ b/widget/nsXPLookAndFeel.cpp
@@ -422,7 +422,9 @@ void nsXPLookAndFeel::OnPrefChanged(const char* aPref, void* aClosure) {
   }
 }
 
-static constexpr struct {
+// SLE-11: Our gcc8 chokes on this and we don't really need it to be a constexpr
+// static constexpr struct {
+static struct {
   nsLiteralCString mName;
   widget::ThemeChangeKind mChangeKind =
       widget::ThemeChangeKind::MediaQueriesOnly;
