mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-14 13:55:43 +00:00
Provide a fake service for platforms that don't have the service like Private Browsing (for Fennec/Seamonkey).
This commit is contained in:
parent
4e72f0165b
commit
9bd57f2170
@ -321,15 +321,29 @@ let Utils = {
|
|||||||
lazySvc: function Weave_lazySvc(dest, prop, cid, iface) {
|
lazySvc: function Weave_lazySvc(dest, prop, cid, iface) {
|
||||||
let getter = function() {
|
let getter = function() {
|
||||||
delete dest[prop];
|
delete dest[prop];
|
||||||
|
let svc = null;
|
||||||
|
|
||||||
|
// Try creating a fake service if we can handle that
|
||||||
if (!Cc[cid]) {
|
if (!Cc[cid]) {
|
||||||
|
switch (cid) {
|
||||||
|
case "@mozilla.org/privatebrowsing;1":
|
||||||
|
svc = {
|
||||||
|
autoStarted: false,
|
||||||
|
privateBrowsingEnabled: false
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
let log = Log4Moz.repository.getLogger("Service.Util");
|
let log = Log4Moz.repository.getLogger("Service.Util");
|
||||||
log.warn("Component " + cid + " requested, but doesn't exist on "
|
if (svc == null)
|
||||||
+ "this platform.");
|
log.warn("Component " + cid + " doesn't exist on this platform.");
|
||||||
return null;
|
else
|
||||||
} else{
|
log.debug("Using a fake svc object for " + cid);
|
||||||
dest[prop] = Cc[cid].getService(iface);
|
|
||||||
return dest[prop];
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
svc = Cc[cid].getService(iface);
|
||||||
|
|
||||||
|
return dest[prop] = svc;
|
||||||
};
|
};
|
||||||
dest.__defineGetter__(prop, getter);
|
dest.__defineGetter__(prop, getter);
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user