Bug 1266213 - Temporarily block users of GTK+ 3.20+ from e10s on Beta. r=jimm
authorFelipe Gomes <felipc@gmail.com>
Fri, 22 Apr 2016 13:42:57 -0300
changeset 318262 e086812341563534fb85964abda7effdcca09e1c
parent 318261 9a49926c3edbf1bad4424cd206f3bd30424784b4
child 318263 ab85f19b67b1d093e060bfe52a672a3a9995e252
push id9480
push userjlund@mozilla.com
push dateMon, 25 Apr 2016 17:12:58 +0000
treeherdermozilla-aurora@0d6a91c76a9e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjimm
bugs1266213
milestone48.0a1
Bug 1266213 - Temporarily block users of GTK+ 3.20+ from e10s on Beta. r=jimm MozReview-Commit-ID: 56UiL3MiiUy
toolkit/xre/nsAppRunner.cpp
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -4671,16 +4671,17 @@ enum {
   kE10sDisabledByUser = 2,
   // kE10sDisabledInSafeMode = 3, was removed in bug 1172491.
   kE10sDisabledForAccessibility = 4,
   // kE10sDisabledForMacGfx = 5, was removed in bug 1068674.
   kE10sDisabledForBidi = 6,
   kE10sDisabledForAddons = 7,
   kE10sForceDisabled = 8,
   kE10sDisabledForXPAcceleration = 9,
+  kE10sDisabledForGTK320 = 10,
 };
 
 #if defined(XP_WIN) || defined(XP_MACOSX)
 const char* kAccessibilityLastRunDatePref = "accessibility.lastLoadDate";
 const char* kAccessibilityLoadedLastSessionPref = "accessibility.loadedInLastSession";
 
 static inline uint32_t
 PRTimeToSeconds(PRTime t_usec)
@@ -4757,16 +4758,25 @@ MultiprocessBlockPolicy() {
                                       Preferences::GetBool("layers.acceleration.force-enabled");
 
   if (layersAccelerationRequested && !IsVistaOrLater()) {
     gMultiprocessBlockPolicy = kE10sDisabledForXPAcceleration;
     return gMultiprocessBlockPolicy;
   }
 #endif // XP_WIN
 
+#if defined(MOZ_WIDGET_GTK) && defined(RELEASE_BUILD)
+  // Bug 1266213 - Workaround for bug 1264454
+  // Disable for users of 3.20 or higher
+  if (gtk_check_version(3, 20, 0) == nullptr) {
+    gMultiprocessBlockPolicy = kE10sDisabledForGTK320;
+    return gMultiprocessBlockPolicy;
+  }
+#endif
+
   if (disabledForA11y) {
     gMultiprocessBlockPolicy = kE10sDisabledForAccessibility;
     return gMultiprocessBlockPolicy;
   }
 
   /**
    * Avoids enabling e10s for certain locales that require bidi selection,
    * which currently doesn't work well with e10s.