From f014c6bb511e47a83be0b1c3b79ed0a6617f68d7 Mon Sep 17 00:00:00 2001 From: "jonathandicarlo@jonathan-dicarlos-macbook-pro.local" Date: Tue, 10 Mar 2009 17:12:59 -0700 Subject: [PATCH] Was failing on Fennec because private browsing doesn't exist there -- now more gracefully handles missing components. --- services/sync/modules/service.js | 3 ++- services/sync/modules/util.js | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/services/sync/modules/service.js b/services/sync/modules/service.js index bbe4b7cb419a..adcd05974d4c 100644 --- a/services/sync/modules/service.js +++ b/services/sync/modules/service.js @@ -650,7 +650,8 @@ WeaveSvc.prototype = { reason = kSyncNotLoggedIn; else if (Svc.IO.offline) reason = kSyncNetworkOffline; - else if (Svc.Private.privateBrowsingEnabled) + else if (Svc.Private && Svc.Private.privateBrowsingEnabled) + // Svc.Private doesn't exist on Fennec -- don't assume it's there. reason = kSyncInPrivateBrowsing; else if (Svc.Prefs.get("schedule", 0) != 1) reason = kSyncNotScheduled; diff --git a/services/sync/modules/util.js b/services/sync/modules/util.js index 2cd9a75c7833..8370d9d6e129 100644 --- a/services/sync/modules/util.js +++ b/services/sync/modules/util.js @@ -146,8 +146,15 @@ let Utils = { lazySvc: function Weave_lazySvc(dest, prop, cid, iface) { let getter = function() { delete dest[prop]; - dest[prop] = Cc[cid].getService(iface); - return dest[prop]; + if (!Cc[cid]) { + let log = Log4Moz.repository.getLogger("Service.Util"); + log.warn("Component " + cid + " requested, but doesn't exist on " + + "this platform."); + return null; + } else{ + dest[prop] = Cc[cid].getService(iface); + return dest[prop]; + } }; dest.__defineGetter__(prop, getter); },