Bug 1440461 - Disable titlebar rendering for Linux/Firefox 59, r?glandium draft
authorMartin Stransky <stransky@redhat.com>
Thu, 22 Feb 2018 21:56:58 +0100
changeset 761741 0ecfb58d81e59362114f0dc224a3d2fecab32dfb
parent 761740 a330f1d4d12a7c144797f3686f35a99c37b0755e
push id100982
push userstransky@redhat.com
push dateThu, 01 Mar 2018 09:41:46 +0000
reviewersglandium
bugs1440461
milestone59.0
Bug 1440461 - Disable titlebar rendering for Linux/Firefox 59, r?glandium The titlebar rendering on Linux/Gtk+ is recently enabled at Beta59 but with many bugs fixed at Nightly. Let's disable this feature for Beta / Release 59 and ship it at Firefox 60 where majority of the issues are fixed. MozReview-Commit-ID: FQL7tNhcvUG
browser/base/moz.build
toolkit/modules/moz.build
widget/gtk/nsWindow.cpp
--- a/browser/base/moz.build
+++ b/browser/base/moz.build
@@ -55,15 +55,15 @@ BROWSER_CHROME_MANIFESTS += [
 DEFINES['MOZ_APP_VERSION'] = CONFIG['MOZ_APP_VERSION']
 DEFINES['MOZ_APP_VERSION_DISPLAY'] = CONFIG['MOZ_APP_VERSION_DISPLAY']
 
 DEFINES['APP_LICENSE_BLOCK'] = '%s/content/overrides/app-license.html' % SRCDIR
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'gtk3', 'cocoa'):
     DEFINES['CONTEXT_COPY_IMAGE_CONTENTS'] = 1
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'cocoa', 'gtk3'):
+if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'cocoa'):
     DEFINES['CAN_DRAW_IN_TITLEBAR'] = 1
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'gtk3'):
     DEFINES['MENUBAR_CAN_AUTOHIDE'] = 1
 
 JAR_MANIFESTS += ['jar.mn']
--- a/toolkit/modules/moz.build
+++ b/toolkit/modules/moz.build
@@ -260,17 +260,17 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
 
 EXTRA_JS_MODULES.third_party.jsesc += ['third_party/jsesc/jsesc.js']
 EXTRA_JS_MODULES.sessionstore += [
     'sessionstore/PrivacyLevel.jsm',
     'sessionstore/SessionHistory.jsm',
     'sessionstore/Utils.jsm',
 ]
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'cocoa', 'gtk3'):
+if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'cocoa'):
     DEFINES['CAN_DRAW_IN_TITLEBAR'] = 1
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'gtk3'):
     DEFINES['MENUBAR_CAN_AUTOHIDE'] = 1
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'gtk3', 'cocoa'):
     DEFINES['HAVE_SHELL_SERVICE'] = 1
 
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -6852,72 +6852,19 @@ nsWindow::DoDrawTitlebar() const
     return mIsCSDEnabled && mSizeState == nsSizeMode_Normal;
 }
 
 nsWindow::CSDSupportLevel
 nsWindow::GetCSDSupportLevel() {
     if (sCSDSupportLevel != CSD_SUPPORT_UNKNOWN) {
         return sCSDSupportLevel;
     }
-
-    const char* currentDesktop = getenv("XDG_CURRENT_DESKTOP");
-    if (currentDesktop) {
-        if (strstr(currentDesktop, "GNOME") != nullptr) {
-            sCSDSupportLevel = CSD_SUPPORT_FULL;
-        } else if (strstr(currentDesktop, "XFCE") != nullptr) {
-            sCSDSupportLevel = CSD_SUPPORT_FLAT;
-        } else if (strstr(currentDesktop, "X-Cinnamon") != nullptr) {
-            sCSDSupportLevel = CSD_SUPPORT_FULL;
-        } else if (strstr(currentDesktop, "KDE") != nullptr) {
-            sCSDSupportLevel = CSD_SUPPORT_FLAT;
-        } else if (strstr(currentDesktop, "LXDE") != nullptr) {
-            sCSDSupportLevel = CSD_SUPPORT_FLAT;
-        } else if (strstr(currentDesktop, "openbox") != nullptr) {
-            sCSDSupportLevel = CSD_SUPPORT_FLAT;
-        } else if (strstr(currentDesktop, "i3") != nullptr) {
-            sCSDSupportLevel = CSD_SUPPORT_NONE;
-        } else if (strstr(currentDesktop, "MATE") != nullptr) {
-            sCSDSupportLevel = CSD_SUPPORT_FLAT;
-        } else if (strstr(currentDesktop, "Unity") != nullptr) {
-            sCSDSupportLevel = CSD_SUPPORT_FLAT;
-        } else if (strstr(currentDesktop, "Pantheon") != nullptr) {
-            sCSDSupportLevel = CSD_SUPPORT_FULL;
-        } else if (strstr(currentDesktop, "LXQt") != nullptr) {
-            sCSDSupportLevel = CSD_SUPPORT_FULL;
-        } else {
-// Release or beta builds are not supposed to be broken
-// so disable titlebar rendering on untested/unknown systems.
-#if defined(RELEASE_OR_BETA)
-            sCSDSupportLevel = CSD_SUPPORT_NONE;
-#else
-            sCSDSupportLevel = CSD_SUPPORT_FLAT;
-#endif
-        }
-    } else {
-        sCSDSupportLevel = CSD_SUPPORT_NONE;
-    }
-
-    // We don't support CSD_SUPPORT_FULL on Wayland
-    if (!GDK_IS_X11_DISPLAY(gdk_display_get_default()) &&
-        sCSDSupportLevel == CSD_SUPPORT_FULL) {
-        sCSDSupportLevel = CSD_SUPPORT_FLAT;
-    }
-
-    // Allow MOZ_GTK_TITLEBAR_DECORATION to override our heuristics
-    const char* decorationOverride = getenv("MOZ_GTK_TITLEBAR_DECORATION");
-    if (decorationOverride) {
-        if (strcmp(decorationOverride, "none") == 0) {
-            sCSDSupportLevel = CSD_SUPPORT_NONE;
-        } else if (strcmp(decorationOverride, "client") == 0) {
-            sCSDSupportLevel = CSD_SUPPORT_FLAT;
-        } else if (strcmp(decorationOverride, "system") == 0) {
-            sCSDSupportLevel = CSD_SUPPORT_FULL;
-        }
-    }
-
+            
+    // Disabled due to Bug 1440461
+    sCSDSupportLevel = CSD_SUPPORT_NONE;
     return sCSDSupportLevel;
 }
 
 int32_t
 nsWindow::RoundsWidgetCoordinatesTo()
 {
     return GdkScaleFactor();
 }