Bug 1463560: Part 2: Re-add the -os-restarted arg when launching from profile manager. r=jimm draft
authorAdam Gashlin <agashlin@mozilla.com>
Sun, 27 May 2018 12:22:42 -0700
changeset 803778 ba9519fde4a6b6762a328a211a23646c435e76f8
parent 803777 7efb75b292d59b35913b4b118594e193f2ceb76f
push id112180
push userbmo:agashlin@mozilla.com
push dateMon, 04 Jun 2018 20:07:38 +0000
reviewersjimm
bugs1463560
milestone62.0a1
Bug 1463560: Part 2: Re-add the -os-restarted arg when launching from profile manager. r=jimm MozReview-Commit-ID: 85dQpYT5I9M
toolkit/xre/nsAppRunner.cpp
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -2178,16 +2178,24 @@ ShowProfileManager(nsIToolkitProfileServ
   SaveFileToEnv("XRE_PROFILE_LOCAL_PATH", profLD);
   SaveWordToEnv("XRE_PROFILE_NAME", profileName);
 
   bool offline = false;
   aProfileSvc->GetStartOffline(&offline);
   if (offline) {
     SaveToEnv("XRE_START_OFFLINE=1");
   }
+  if (gRestartedByOS) {
+    // Re-add this argument when actually starting the application.
+    char** newArgv = (char**) realloc(gRestartArgv, sizeof(char*) * (gRestartArgc + 2));
+    NS_ENSURE_TRUE(newArgv, NS_ERROR_OUT_OF_MEMORY);
+    gRestartArgv = newArgv;
+    gRestartArgv[gRestartArgc++] = const_cast<char*>("-os-restarted");
+    gRestartArgv[gRestartArgc] = nullptr;
+  }
 
   return LaunchChild(aNative);
 }
 
 /**
  * Get the currently running profile using its root directory.
  *
  * @param aProfileSvc         The profile service