From caf7590a104a60edf612b42c99b3a30a976cf828 Mon Sep 17 00:00:00 2001 From: Moonchild Date: Wed, 7 Feb 2024 12:58:57 +0100 Subject: [PATCH] [Pale-Moon] Issue #1959 - Add error handling to MIME type processing in prefs. --- .../components/preferences/applications.js | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/application/palemoon/components/preferences/applications.js b/application/palemoon/components/preferences/applications.js index c17894d449..b92307add1 100644 --- a/application/palemoon/components/preferences/applications.js +++ b/application/palemoon/components/preferences/applications.js @@ -1066,11 +1066,26 @@ var gApplicationsPane = { if (mimeType.type in this._handledTypes) { handlerInfoWrapper = this._handledTypes[mimeType.type]; } else { - let wrappedHandlerInfo = - this._mimeSvc.getFromTypeAndExtension(mimeType.type, null); - handlerInfoWrapper = new HandlerInfoWrapper(mimeType.type, wrappedHandlerInfo); - handlerInfoWrapper.handledOnlyByPlugin = true; - this._handledTypes[mimeType.type] = handlerInfoWrapper; + if (mimeType.type == '') { + // If an incorrect empty MIME type is present, don't break. + continue; + } + try { + let wrappedHandlerInfo = + this._mimeSvc.getFromTypeAndExtension(mimeType.type, null); + handlerInfoWrapper = new HandlerInfoWrapper(mimeType.type, wrappedHandlerInfo); + handlerInfoWrapper.handledOnlyByPlugin = true; + this._handledTypes[mimeType.type] = handlerInfoWrapper; +#ifdef DEBUG + console.log("Enumerate MIME type: " + mimeType.type); +#endif + } catch(e) { +#ifdef DEBUG + console.log("Error fetching MIME type info for " + mimeType.type); + console.log(e); +#endif + continue; + } } handlerInfoWrapper.pluginName = mimeType.enabledPlugin.name; }