From d97685bf908441c78ff1bb9327039fda0b75d68e Mon Sep 17 00:00:00 2001 From: "ben%bengoodger.com" Date: Sun, 23 May 2004 09:36:18 +0000 Subject: [PATCH] 235859 - .gz file silently decompressed after download. Update contentEncodings use to UTF8 String Enumerator --- browser/base/content/contentAreaUtils.js | 29 ++++++++++++++----- .../locale/contentAreaCommands.properties | 4 +++ 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/browser/base/content/contentAreaUtils.js b/browser/base/content/contentAreaUtils.js index 284f11747965..fbc774d2f601 100644 --- a/browser/base/content/contentAreaUtils.js +++ b/browser/base/content/contentAreaUtils.js @@ -223,6 +223,8 @@ function foundHeaderInfo(aSniffer, aData, aSkipPrompt) catch (e) { var saveAsTypeResult = { rv: 0 }; file = getTargetFile(aData, aSniffer, contentType, isDocument, aSkipPrompt, saveAsTypeResult); + if (!file) + return; saveAsType = saveAsTypeResult.rv; } @@ -289,7 +291,7 @@ function foundHeaderInfo(aSniffer, aData, aSkipPrompt) function getTargetFile(aData, aSniffer, aContentType, aIsDocument, aSkipPrompt, aSaveAsTypeResult) { - aSaveAsTypeResult.rv = kSaveAsType_Complete; + aSaveAsTypeResult.rv = kSaveAsType_Complete; // Determine what the 'default' string to display in the File Picker dialog // should be. @@ -382,7 +384,7 @@ function getTargetFile(aData, aSniffer, aContentType, aIsDocument, aSkipPrompt, fp.defaultString = defaultString; if (fp.show() == Components.interfaces.nsIFilePicker.returnCancel || !fp.file) - return; + return null; var useDownloadDir = false; try { @@ -501,11 +503,9 @@ nsHeaderSniffer.prototype = { // corresponding to each encoding starting from the end, so the first // thing it returns corresponds to the outermost encoding. var encodingEnumerator = encodedChannel.contentEncodings; - if (encodingEnumerator && encodingEnumerator.hasMoreElements()) { + if (encodingEnumerator && encodingEnumerator.hasMore()) { try { - this.contentEncodingType = - encodingEnumerator.getNext(). - QueryInterface(Components.interfaces.nsISupportsCString).data; + this.contentEncodingType = encodingEnumerator.getNext(); } catch (e) { } } @@ -602,16 +602,29 @@ function appendFiltersForContentType(aFilePicker, aContentType, aFileExtension, var extEnumerator = mimeInfo.getFileExtensions(); var extString = ""; + var defaultDesc = ""; + var plural = false; while (extEnumerator.hasMore()) { + if (defaultDesc) { + defaultDesc += ", "; + plural = true; + } var extension = extEnumerator.getNext(); if (extString) extString += "; "; // If adding more than one extension, // separate by semi-colon extString += "*." + extension; + defaultDesc += extension.toUpperCase(); } if (extString) { - aFilePicker.appendFilter(mimeInfo.description, extString); + var desc = mimeInfo.Description; + if (!desc) { + var key = plural ? "unknownDescriptionFilesPluralFilter" : + "unknownDescriptionFilesFilter"; + desc = getStringBundle().formatStringFromName(key, [defaultDesc], 1); + } + aFilePicker.appendFilter(desc, extString); } else { aFilePicker.appendFilters(Components.interfaces.nsIFilePicker.filterAll); } @@ -661,7 +674,7 @@ function makeWebBrowserPersist() function makeURL(aURL) { var ioService = Components.classes["@mozilla.org/network/io-service;1"] - .getService(Components.interfaces.nsIIOService); + .getService(Components.interfaces.nsIIOService); return ioService.newURI(aURL, null, null); } diff --git a/browser/base/locale/contentAreaCommands.properties b/browser/base/locale/contentAreaCommands.properties index fae5f3ecdbf4..2bef6fc771b4 100644 --- a/browser/base/locale/contentAreaCommands.properties +++ b/browser/base/locale/contentAreaCommands.properties @@ -19,3 +19,7 @@ filesFolder=%S_files saveLinkErrorMsg=The link could not be saved. The web page might have been removed or had its name changed. saveLinkErrorTitle=Save Link + +unknownDescriptionFilesFilter=%S File +unknownDescriptionFilesPluralFilter=%S Files +