Bug 1349703 - (part 2) Fix intermittent TPS failures caused by failing cleanup by waiting longer before starting r?kitcambridge draft
authorThom Chiovoloni <tchiovoloni@mozilla.com>
Thu, 23 Mar 2017 16:34:04 -0400
changeset 551910 be89e71076bbd0e6815597312e5a1cbf21d4b3d0
parent 551909 ff1dacc44cc91bac8824d59fecfd22be0c8f6bd9
child 551911 628409ee5975695d9d2fc5606a99385384bda827
push id51196
push userbmo:tchiovoloni@mozilla.com
push dateMon, 27 Mar 2017 17:35:45 +0000
reviewerskitcambridge
bugs1349703
milestone55.0a1
Bug 1349703 - (part 2) Fix intermittent TPS failures caused by failing cleanup by waiting longer before starting r?kitcambridge MozReview-Commit-ID: D07eRgqHVOu
services/sync/tps/extensions/tps/resource/tps.jsm
--- a/services/sync/tps/extensions/tps/resource/tps.jsm
+++ b/services/sync/tps/extensions/tps/resource/tps.jsm
@@ -15,16 +15,17 @@ var module = this;
 
 // Global modules
 Cu.import("resource://gre/modules/Log.jsm");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/AppConstants.jsm");
 Cu.import("resource://gre/modules/PlacesUtils.jsm");
 Cu.import("resource://gre/modules/FileUtils.jsm");
+Cu.import("resource://gre/modules/Timer.jsm");
 Cu.import("resource://services-common/async.js");
 Cu.import("resource://services-sync/constants.js");
 Cu.import("resource://services-sync/main.js");
 Cu.import("resource://services-sync/util.js");
 Cu.import("resource://services-sync/telemetry.js");
 Cu.import("resource://services-sync/bookmark_validator.js");
 Cu.import("resource://services-sync/engines/passwords.js");
 Cu.import("resource://services-sync/engines/forms.js");
@@ -169,17 +170,24 @@ var TPS = {
             Services.obs.removeObserver(this, topic);
           }, this);
 
           Logger.close();
 
           break;
 
         case "sessionstore-windows-restored":
-          Utils.nextTick(this.RunNextTestAction, this);
+          // This is a terrible hack, but fixes cases where tps (usually cleanup)
+          // fails because of sessionstore restoring windows before tps is able
+          // to initialize. This used to take only 1 tick, but at some point
+          // session store started restoring windows sooner, or tps started
+          // initializing later.
+          setTimeout(() => {
+            this.RunNextTestAction();
+          }, 1000);
           break;
 
         case "weave:service:setup-complete":
           this._setupComplete = true;
 
           if (this._syncWipeAction) {
             Weave.Svc.Prefs.set("firstSync", this._syncWipeAction);
             this._syncWipeAction = null;