[Pale-Moon] Issue #1854 - Account for users disabling off-line and memory caching.

Resolves #1854
This commit is contained in:
Moonchild 2020-12-19 21:56:53 +00:00 • committed by roytam1
commit 48f962a66f
2 changed files with 45 additions and 24 deletions

View file

@ -5893,7 +5893,12 @@ var OfflineApps = {
var cacheService = Cc["@mozilla.org/network/application-cache-service;1"] var cacheService = Cc["@mozilla.org/network/application-cache-service;1"]
.getService(Ci.nsIApplicationCacheService); .getService(Ci.nsIApplicationCacheService);
if (!groups) { if (!groups) {
groups = cacheService.getGroups(); try {
groups = cacheService.getGroups();
} catch(ex) {
// Cache disabled.
return 0;
}
} }
var usage = 0; var usage = 0;

View file

@ -283,7 +283,11 @@ var gAdvancedPane = {
Components.classes["@mozilla.org/netwerk/cache-storage-service;1"] Components.classes["@mozilla.org/netwerk/cache-storage-service;1"]
.getService(Components.interfaces.nsICacheStorageService); .getService(Components.interfaces.nsICacheStorageService);
var storage = cacheService.appCacheStorage(LoadContextInfo.default, null); var storage = cacheService.appCacheStorage(LoadContextInfo.default, null);
storage.asyncVisitStorage(visitor, false); try {
storage.asyncVisitStorage(visitor, false);
} catch(ex) {
// Service unavailable: user most likely crippled the cache.
}
}, },
updateCacheSizeUI: function(smartSizeEnabled) updateCacheSizeUI: function(smartSizeEnabled)
@ -393,8 +397,14 @@ var gAdvancedPane = {
{ {
var cacheService = Components.classes["@mozilla.org/network/application-cache-service;1"]. var cacheService = Components.classes["@mozilla.org/network/application-cache-service;1"].
getService(Components.interfaces.nsIApplicationCacheService); getService(Components.interfaces.nsIApplicationCacheService);
if (!groups) if (!groups) {
groups = cacheService.getGroups(); try {
groups = cacheService.getGroups();
} catch(ex) {
// Cache disabled.
return 0;
}
}
var ios = Components.classes["@mozilla.org/network/io-service;1"]. var ios = Components.classes["@mozilla.org/network/io-service;1"].
getService(Components.interfaces.nsIIOService); getService(Components.interfaces.nsIIOService);
@ -426,27 +436,33 @@ var gAdvancedPane = {
var cacheService = Components.classes["@mozilla.org/network/application-cache-service;1"]. var cacheService = Components.classes["@mozilla.org/network/application-cache-service;1"].
getService(Components.interfaces.nsIApplicationCacheService); getService(Components.interfaces.nsIApplicationCacheService);
var groups = cacheService.getGroups();
var bundle = document.getElementById("bundlePreferences"); try {
var groups = cacheService.getGroups();
var enumerator = pm.enumerator; var bundle = document.getElementById("bundlePreferences");
while (enumerator.hasMoreElements()) {
var perm = enumerator.getNext().QueryInterface(Components.interfaces.nsIPermission); var enumerator = pm.enumerator;
if (perm.type == "offline-app" && while (enumerator.hasMoreElements()) {
perm.capability != Components.interfaces.nsIPermissionManager.DEFAULT_ACTION && var perm = enumerator.getNext().QueryInterface(Components.interfaces.nsIPermission);
perm.capability != Components.interfaces.nsIPermissionManager.DENY_ACTION) { if (perm.type == "offline-app" &&
var row = document.createElement("listitem"); perm.capability != Components.interfaces.nsIPermissionManager.DEFAULT_ACTION &&
row.id = ""; perm.capability != Components.interfaces.nsIPermissionManager.DENY_ACTION) {
row.className = "offlineapp"; var row = document.createElement("listitem");
row.setAttribute("origin", perm.principal.origin); row.id = "";
var converted = DownloadUtils. row.className = "offlineapp";
convertByteUnits(this._getOfflineAppUsage(perm, groups)); row.setAttribute("origin", perm.principal.origin);
row.setAttribute("usage", var converted = DownloadUtils.
bundle.getFormattedString("offlineAppUsage", convertByteUnits(this._getOfflineAppUsage(perm, groups));
converted)); row.setAttribute("usage",
list.appendChild(row); bundle.getFormattedString("offlineAppUsage",
converted));
list.appendChild(row);
}
} }
} catch(ex) {
// Cache service unavailable/errored, off-line app cache is disabled or 0
// Do nothing, just leave the box blank.
} }
}, },