Bug 811088 - about:telemetry causes startup info to be gathered multiple times
authorVladan Djeric <vdjeric@mozilla.com>
Mon, 12 Nov 2012 17:01:26 -0500
changeset 113023 3d152765afe61cde82c3685270776718714d0cd1
parent 113022 0640697d6781f034ff3f30e8812eb18e94432476
child 113024 59c32eccc97d306ec2e38a5e69d9b6377bf3140d
push id23847
push userphilringnalda@gmail.com
push dateTue, 13 Nov 2012 05:07:25 +0000
treeherdermozilla-central@1b0226622e94 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs811088
milestone19.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 811088 - about:telemetry causes startup info to be gathered multiple times
toolkit/components/telemetry/TelemetryPing.js
--- a/toolkit/components/telemetry/TelemetryPing.js
+++ b/toolkit/components/telemetry/TelemetryPing.js
@@ -987,18 +987,21 @@ TelemetryPing.prototype = {
         // Notify that data should be gathered now, since ping will happen soon.
         Services.obs.notifyObservers(null, "gather-telemetry", null);
         // The ping happens at the first idle of length IDLE_TIMEOUT_SECONDS.
         idleService.addIdleObserver(this, IDLE_TIMEOUT_SECONDS);
         this._isIdleObserver = true;
       }).bind(this), Ci.nsIThread.DISPATCH_NORMAL);
       break;
     case "get-payload":
+      // This handler returns the current Telemetry payload to the caller.
+      // We only gather startup info once.
+      if (Object.keys(this._slowSQLStartup).length == 0)
+        this.gatherStartupInformation();
       this.gatherMemory();
-      this.gatherStartupInformation();
       let data = this.getCurrentSessionPayloadAndSlug("gather-payload");
 
       aSubject.QueryInterface(Ci.nsISupportsString).data = data.payload;
       break;
     case "test-save-histograms":
       this.saveHistograms(aSubject.QueryInterface(Ci.nsIFile), aData != "async");
       break;
     case "test-load-histograms":