mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-14 05:45:37 +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) {
|
||||
let getter = function() {
|
||||
delete dest[prop];
|
||||
let svc = null;
|
||||
|
||||
// Try creating a fake service if we can handle that
|
||||
if (!Cc[cid]) {
|
||||
switch (cid) {
|
||||
case "@mozilla.org/privatebrowsing;1":
|
||||
svc = {
|
||||
autoStarted: false,
|
||||
privateBrowsingEnabled: false
|
||||
};
|
||||
break;
|
||||
}
|
||||
|
||||
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];
|
||||
if (svc == null)
|
||||
log.warn("Component " + cid + " doesn't exist on this platform.");
|
||||
else
|
||||
log.debug("Using a fake svc object for " + cid);
|
||||
}
|
||||
else
|
||||
svc = Cc[cid].getService(iface);
|
||||
|
||||
return dest[prop] = svc;
|
||||
};
|
||||
dest.__defineGetter__(prop, getter);
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user