From dc4249fef1f64491fdfe237c0d31b8453e433065 Mon Sep 17 00:00:00 2001 From: "tor%cs.brown.edu" Date: Sat, 19 Feb 2005 01:36:59 +0000 Subject: [PATCH] Bug 250936 - check that mozilla can handle the MIME type before opening a window. r=bzbarsky, sr=darin git-svn-id: svn://10.0.0.236/trunk@169463 18797224-902f-48f8-a5cc-f745e15eee43 --- .../browser/components/nsBrowserContentHandler.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/mozilla/browser/components/nsBrowserContentHandler.js b/mozilla/browser/components/nsBrowserContentHandler.js index 410b728048b..a00e514c77c 100644 --- a/mozilla/browser/components/nsBrowserContentHandler.js +++ b/mozilla/browser/components/nsBrowserContentHandler.js @@ -56,8 +56,10 @@ const nsISupportsString = Components.interfaces.nsISupportsString; const nsIWebNavigation = Components.interfaces.nsIWebNavigation; const nsIWindowMediator = Components.interfaces.nsIWindowMediator; const nsIWindowWatcher = Components.interfaces.nsIWindowWatcher; +const nsICategoryManager = Components.interfaces.nsICategoryManager; const NS_BINDING_ABORTED = 0x80020006; +const NS_ERROR_WONT_HANDLE_CONTENT = 0x805d0001; function needHomepageOverride(prefb) { var savedmstone; @@ -245,6 +247,15 @@ var nsBrowserContentHandler = { /* nsIContentHandler */ handleContent : function bch_handleContent(contentType, context, request) { + try { + var catMan = Components.classes["@mozilla.org/categorymanager;1"] + .getService(nsICategoryManager); + var entry = catMan.getCategoryEntry("Gecko-Content-Viewers", + contentType); + } catch (e) { + throw NS_ERROR_WONT_HANDLE_CONTENT; + } + var parentWin; try { parentWin = context.getInterface(nsIDOMWindow); @@ -451,7 +462,7 @@ var Module = { registerType("application/http-index-format"); var catMan = Components.classes["@mozilla.org/categorymanager;1"] - .getService(Components.interfaces.nsICategoryManager); + .getService(nsICategoryManager); catMan.addCategoryEntry("command-line-handler", "m-browser", @@ -467,7 +478,7 @@ var Module = { compReg.unregisterFactoryLocation(dch_CID, location); var catMan = Components.classes["@mozilla.org/categorymanager;1"] - .getService(Components.interfaces.nsICategoryManager); + .getService(nsICategoryManager); catMan.deleteCategoryEntry("command-line-handler", "m-browser", true);