From 3f6330cd7d4194891abe6043b0575be0cb218339 Mon Sep 17 00:00:00 2001 From: Mike Connor Date: Wed, 11 Aug 2010 21:28:27 -0400 Subject: [PATCH] Bug 586094 - Enabling Sync regresses Ts on all platforms, r=dolske, a=beltzner --- browser/base/content/browser-menubar.inc | 6 +- browser/base/content/browser-syncui.js | 91 ++++++++++++++++-------- browser/base/content/browser.xul | 2 +- browser/components/nsBrowserGlue.js | 61 +++++++++------- 4 files changed, 106 insertions(+), 54 deletions(-) diff --git a/browser/base/content/browser-menubar.inc b/browser/base/content/browser-menubar.inc index 22bb6606fa5b..d630737d2ae7 100644 --- a/browser/base/content/browser-menubar.inc +++ b/browser/base/content/browser-menubar.inc @@ -594,7 +594,11 @@ - + #ifdef MOZ_SERVICES_SYNC 0) + return; + } + + // delays are in seconds + const MAX_DELAY = 300; + let delay = 3; + let enum = Services.wm.getEnumerator("navigator:browser"); + while (enum.hasMoreElements()) { + delay += enum.getNext().gBrowser.tabs.length; + } + delay = delay <= MAX_DELAY ? delay : MAX_DELAY; + + let syncTemp = {}; + Cu.import("resource://services-sync/service.js", syncTemp); + syncTemp.Weave.Service.delayedAutoConnect(delay); + }, +#endif + // nsIObserver implementation observe: function BG_observe(subject, topic, data) { switch (topic) { @@ -165,6 +190,11 @@ BrowserGlue.prototype = { case "browser-lastwindow-close-granted": this._setPrefToSaveSession(); break; +#endif +#ifdef MOZ_SERVICES_SYNC + case "weave:service:ready": + this._setSyncAutoconnectDelay(); + break; #endif case "session-save": this._setPrefToSaveSession(true); @@ -238,6 +268,9 @@ BrowserGlue.prototype = { #ifdef OBSERVE_LASTWINDOW_CLOSE_TOPICS os.addObserver(this, "browser-lastwindow-close-requested", false); os.addObserver(this, "browser-lastwindow-close-granted", false); +#endif +#ifdef MOZ_SERVICES_SYNC + os.addObserver(this, "weave:service:ready", false); #endif os.addObserver(this, "session-save", false); os.addObserver(this, "places-init-complete", false); @@ -262,6 +295,9 @@ BrowserGlue.prototype = { #ifdef OBSERVE_LASTWINDOW_CLOSE_TOPICS os.removeObserver(this, "browser-lastwindow-close-requested"); os.removeObserver(this, "browser-lastwindow-close-granted"); +#endif +#ifdef MOZ_SERVICES_SYNC + os.removeObserver(this, "weave:service:ready", false); #endif os.removeObserver(this, "session-save"); if (this._isIdleObserver) @@ -385,29 +421,6 @@ BrowserGlue.prototype = { temp.WinTaskbarJumpList.startup(); } #endif -#endif - -#ifdef MOZ_SERVICES_SYNC - // Assume that a non-zero value for services.sync.autoconnectDelay should override - if (Services.prefs.prefHasUserValue("services.sync.autoconnectDelay")) { - let prefDelay = Services.prefs.getIntPref("services.sync.autoconnectDelay"); - - if (prefDelay > 0) - return; - } - - // delays are in seconds - const MAX_DELAY = 300; - let delay = 3; - let enum = Services.wm.getEnumerator("navigator:browser"); - while (enum.hasMoreElements()) { - delay += enum.getNext().gBrowser.tabs.length; - } - delay = delay <= MAX_DELAY ? delay : MAX_DELAY; - - let syncTemp = {}; - Cu.import("resource://services-sync/service.js", syncTemp); - syncTemp.Weave.Service.delayedAutoConnect(delay); #endif }, @@ -1387,7 +1400,7 @@ GeolocationPrompt.prototype = { chromeWin.PopupNotifications.show(browser, "geolocation", message, "geo-notification-icon", mainAction, secondaryActions); - }, + } }; var components = [BrowserGlue, GeolocationPrompt];