[Mypal] Account for users disabling off-line and memory caching.

master
Fedor 2021-02-07 17:33:44 +02:00
parent 3571ed761a
commit dbf82508cb
2 changed files with 43 additions and 22 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) {
try {
groups = cacheService.getGroups(); groups = cacheService.getGroups();
} catch(ex) {
// Cache disabled.
return 0;
}
} }
var usage = 0; var usage = 0;

View File

@ -286,7 +286,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);
try {
storage.asyncVisitStorage(visitor, false); storage.asyncVisitStorage(visitor, false);
} catch(ex) {
// Service unavailable: user most likely crippled the cache.
}
}, },
updateCacheSizeUI: function(smartSizeEnabled) updateCacheSizeUI: function(smartSizeEnabled)
@ -396,8 +400,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) {
try {
groups = cacheService.getGroups(); 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);
@ -429,6 +439,8 @@ 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);
try {
var groups = cacheService.getGroups(); var groups = cacheService.getGroups();
var bundle = document.getElementById("bundlePreferences"); var bundle = document.getElementById("bundlePreferences");
@ -451,6 +463,10 @@ var gAdvancedPane = {
list.appendChild(row); list.appendChild(row);
} }
} }
} catch(ex) {
// Cache service unavailable/errored, off-line app cache is disabled or 0
// Do nothing, just leave the box blank.
}
}, },
offlineAppSelected: function() offlineAppSelected: function()