Bug 1349703 - (part 2) Fix intermittent TPS failures caused by failing cleanup by waiting longer before starting r?kitcambridge
MozReview-Commit-ID: D07eRgqHVOu
--- 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;