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); },