Bug 1512023 - fixes for mochitest failures when RDD pref'd on for Win/OSX. r=drno
authorMichael Froman <mfroman@mozilla.com>
Tue, 04 Dec 2018 20:43:56 +0000
changeset 508536 da4789ed7ec046470b3662ec5c26973398f042cd
parent 508535 0b3de1c4a2ae2fcdf37817366c8557ad1861437a
child 508537 e31ab8b54aa37a2f8f6adf0f242c8c2b62e1fa55
push id1905
push userffxbld-merge
push dateMon, 21 Jan 2019 12:33:13 +0000
treeherdermozilla-release@c2fca1944d8c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdrno
bugs1512023
milestone65.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1512023 - fixes for mochitest failures when RDD pref'd on for Win/OSX. r=drno Differential Revision: https://phabricator.services.mozilla.com/D13734
dom/ipc/ContentParent.cpp
gfx/thebes/gfxPlatform.cpp
testing/mochitest/mochitest_options.py
testing/mozbase/mozleak/mozleak/leaklog.py
--- a/dom/ipc/ContentParent.cpp
+++ b/dom/ipc/ContentParent.cpp
@@ -2603,17 +2603,17 @@ void ContentParent::InitInternal(Process
   MOZ_ASSERT(opened);
 
   Unused << SendInitRendering(std::move(compositor), std::move(imageBridge),
                               std::move(vrBridge), std::move(videoManager),
                               namespaces);
 
   gpm->AddListener(this);
 
-  if (StaticPrefs::MediaRddProcessEnabled()) {
+  if (StaticPrefs::MediaRddProcessEnabled() && BrowserTabsRemoteAutostart()) {
     RDDProcessManager* rdd = RDDProcessManager::Get();
 
     Endpoint<PRemoteDecoderManagerChild> remoteManager;
     bool rddOpened = rdd->CreateContentBridge(OtherPid(), &remoteManager);
     MOZ_ASSERT(rddOpened);
 
     if (rddOpened) {
       // not using std::move here (like in SendInitRendering above) because
--- a/gfx/thebes/gfxPlatform.cpp
+++ b/gfx/thebes/gfxPlatform.cpp
@@ -914,16 +914,17 @@ void gfxPlatform::Init() {
   gPlatform->InitOMTPConfig();
 
   if (gfxConfig::IsEnabled(Feature::GPU_PROCESS)) {
     GPUProcessManager* gpu = GPUProcessManager::Get();
     gpu->LaunchGPUProcess();
   }
 
   if (XRE_IsParentProcess() &&
+      BrowserTabsRemoteAutostart() &&  // only do rdd process if e10s on
       Preferences::GetBool("media.rdd-process.enabled", false)) {
     RDDProcessManager* rdd = RDDProcessManager::Get();
     if (rdd) {
       rdd->LaunchRDDProcess();
     }
   }
 
   if (XRE_IsParentProcess() || recordreplay::IsRecordingOrReplaying()) {
--- a/testing/mochitest/mochitest_options.py
+++ b/testing/mochitest/mochitest_options.py
@@ -837,16 +837,17 @@ class MochitestArguments(ArgumentContain
         if options.nested_oop:
             options.e10s = True
 
         options.leakThresholds = {
             "default": options.defaultLeakThreshold,
             "tab": options.defaultLeakThreshold,
             # GMP rarely gets a log, but when it does, it leaks a little.
             "geckomediaplugin": 20000,
+            "rdd": 400,
         }
 
         # See the dependencies of bug 1401764.
         if mozinfo.isWin:
             options.leakThresholds["tab"] = 1000
 
         # XXX We can't normalize test_paths in the non build_obj case here,
         # because testRoot depends on the flavor, which is determined by the
--- a/testing/mozbase/mozleak/mozleak/leaklog.py
+++ b/testing/mozbase/mozleak/mozleak/leaklog.py
@@ -166,17 +166,17 @@ def process_leak_log(leak_log_file, leak
             "leakcheck | refcount logging is off, so leaks can't be detected!")
         return
 
     leakThresholds = leak_thresholds or {}
     ignoreMissingLeaks = ignore_missing_leaks or []
 
     # This list is based on kGeckoProcessTypeString. ipdlunittest processes likely
     # are not going to produce leak logs we will ever see.
-    knownProcessTypes = ["default", "plugin", "tab", "geckomediaplugin", "gpu"]
+    knownProcessTypes = ["default", "plugin", "tab", "geckomediaplugin", "gpu", "rdd"]
 
     for processType in knownProcessTypes:
         log.info("TEST-INFO | leakcheck | %s process: leak threshold set at %d bytes"
                  % (processType, leakThresholds.get(processType, 0)))
 
     for processType in leakThresholds:
         if processType not in knownProcessTypes:
             log.error("TEST-UNEXPECTED-FAIL | leakcheck | "