michael@0: function test() { michael@0: var startup_info = Components.classes["@mozilla.org/toolkit/app-startup;1"].getService(Components.interfaces.nsIAppStartup).getStartupInfo(); michael@0: // No .process info on mac michael@0: michael@0: // Check if we encountered a telemetry error for the the process creation michael@0: // timestamp and turn the first test into a known failure. michael@0: var telemetry = Cc["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry); michael@0: var snapshot = telemetry.getHistogramById("STARTUP_MEASUREMENT_ERRORS") michael@0: .snapshot(); michael@0: michael@0: if (snapshot.counts[0] == 0) michael@0: ok(startup_info.process <= startup_info.main, "process created before main is run " + uneval(startup_info)); michael@0: else michael@0: todo(false, "An error occurred while recording the process creation timestamp, skipping this test"); michael@0: michael@0: // on linux firstPaint can happen after everything is loaded (especially with remote X) michael@0: if (startup_info.firstPaint) michael@0: ok(startup_info.main <= startup_info.firstPaint, "main ran before first paint " + uneval(startup_info)); michael@0: michael@0: ok(startup_info.main < startup_info.sessionRestored, "Session restored after main " + uneval(startup_info)); michael@0: }