Chromium Code Reviews| Index: net/filter/filter.cc |
| diff --git a/net/filter/filter.cc b/net/filter/filter.cc |
| index af4e55128449818c72be04a0c734ed1d1eb5096a..45952d703385c768e620b2ae54af5e6e4a291655 100644 |
| --- a/net/filter/filter.cc |
| +++ b/net/filter/filter.cc |
| @@ -24,11 +24,8 @@ |
| #include "net/filter/filter.h" |
| #include "base/files/file_path.h" |
| -#include "base/metrics/histogram_macros.h" |
| #include "base/strings/string_util.h" |
| -#include "net/base/filename_util_unsafe.h" |
| #include "net/base/io_buffer.h" |
| -#include "net/base/mime_util.h" |
| #include "net/base/sdch_net_log_params.h" |
| #include "net/filter/gzip_filter.h" |
| #include "net/filter/sdch_filter.h" |
| @@ -49,9 +46,6 @@ const char kSdch[] = "sdch"; |
| // more information, see Firefox's nsHttpChannel::ProcessNormal. |
| // Mime types: |
| -const char kApplicationXGzip[] = "application/x-gzip"; |
| -const char kApplicationGzip[] = "application/gzip"; |
| -const char kApplicationXGunzip[] = "application/x-gunzip"; |
| const char kTextHtml[] = "text/html"; |
| // Buffer size allocated when de-compressing data. |
| @@ -204,32 +198,6 @@ Filter::FilterType Filter::ConvertEncodingToType( |
| return type_id; |
| } |
| -namespace { |
| - |
| -// Result of running FixupEncodingTypes with a Content-Encoding of gzip. This |
| -// enum is used for UMA and is available in histograms.xml as |
| -// GzipEncodingFixupResult. |
| -enum GzipEncodingFixupResult { |
| - GZIP_ENCODING_LEFT_AS_IS = 0, |
| - |
| - // Cleared because a resource with a GZIP MIME type was being transferred with |
| - // a Content-Encoding of gzip. |
| - GZIP_ENCODING_CLEARED_DUE_TO_GZIP_MIME_TYPE = 1, |
| - |
| - // Cleared because the resource is known to be a download and the resulting |
| - // file had a filename that indicating that the contents are GZIP. |
| - GZIP_ENCODING_CLEARED_DUE_TO_DOWNLOAD_OF_GZIP_FILE = 2, |
| - |
| - // Cleared because the resource is not a handled MIME type (and hence will be |
| - // downloaded), and the predicted filename is one that indicates the contents |
| - // to be GZIP. |
| - GZIP_ENCODING_CLEARED_DUE_TO_UNHANDLED_GZIP_NAME = 3, |
| - |
| - GZIP_ENCODING_FIXUP_RESULT_MAX_ENTRIES |
| -}; |
| - |
| -} // namespace |
| - |
| // static |
| void Filter::FixupEncodingTypes( |
| const FilterContext& filter_context, |
| @@ -238,59 +206,13 @@ void Filter::FixupEncodingTypes( |
| bool success = filter_context.GetMimeType(&mime_type); |
| DCHECK(success || mime_type.empty()); |
| - if ((1 == encoding_types->size()) && |
| - (FILTER_TYPE_GZIP == encoding_types->front())) { |
| - GzipEncodingFixupResult fixup_result = GZIP_ENCODING_LEFT_AS_IS; |
| - if (LowerCaseEqualsASCII(mime_type, kApplicationXGzip) || |
| - LowerCaseEqualsASCII(mime_type, kApplicationGzip) || |
| - LowerCaseEqualsASCII(mime_type, kApplicationXGunzip)) { |
| - // The server has told us that it sent us gziped content with a gzip |
| - // content encoding. Sadly, Apache mistakenly sets these headers for all |
| - // .gz files. We match Firefox's nsHttpChannel::ProcessNormal and ignore |
| - // the Content-Encoding here. |
| - encoding_types->clear(); |
| - fixup_result = GZIP_ENCODING_CLEARED_DUE_TO_GZIP_MIME_TYPE; |
| - } |
| - |
| - GURL url; |
| - std::string disposition; |
| - success = filter_context.GetURL(&url); |
| - DCHECK(success); |
| - filter_context.GetContentDisposition(&disposition); |
| - // Don't supply a MIME type here, since that may cause disk IO. |
| - base::FilePath::StringType extension = |
| - GenerateFileExtensionUnsafe(url, disposition, "UTF-8", "", "", ""); |
| - |
| - if (filter_context.IsDownload()) { |
| - // We don't want to decompress gzipped files when the user explicitly |
| - // asks to download them. |
| - // For the case of svgz files, we use the extension to distinguish |
| - // between svgz files and svg files compressed with gzip by the server. |
| - // When viewing a .svgz file, we need to uncompress it, but we don't |
| - // want to do that when downloading. |
| - // See Firefox's nonDecodableExtensions in nsExternalHelperAppService.cpp |
| - if (EndsWith(extension, FILE_PATH_LITERAL(".gz"), false) || |
| - LowerCaseEqualsASCII(extension, ".tgz") || |
| - LowerCaseEqualsASCII(extension, ".svgz")) { |
| - encoding_types->clear(); |
| - fixup_result = GZIP_ENCODING_CLEARED_DUE_TO_DOWNLOAD_OF_GZIP_FILE; |
| - } |
| - } else { |
| - // When the user does not explicitly ask to download a file, if we get a |
| - // supported mime type, then we attempt to decompress in order to view it. |
| - // However, if it's not a supported mime type, then we will attempt to |
| - // download it, and in that case, don't decompress .gz/.tgz files. |
| - if ((EndsWith(extension, FILE_PATH_LITERAL(".gz"), false) || |
| - LowerCaseEqualsASCII(extension, ".tgz")) && |
| - !IsSupportedMimeType(mime_type)) { |
| - encoding_types->clear(); |
| - fixup_result = GZIP_ENCODING_CLEARED_DUE_TO_UNHANDLED_GZIP_NAME; |
| - } |
| - } |
| - |
| - UMA_HISTOGRAM_ENUMERATION("Net.GzipEncodingFixupResult", fixup_result, |
| - GZIP_ENCODING_FIXUP_RESULT_MAX_ENTRIES); |
| - } |
| + // Historical note: Once upon a time this method used to clear the encoding |
| + // types list if it only contained FILTER_TYPE_GZIP and the response was |
| + // likely to be downloaded as a file with gzipped contents. In this case, the |
| + // Content-Encoding is incorrect since there was no intention for the content |
| + // to be decompressed. UMA indicated that the number of servers that exhibit |
| + // this behavior is small, and hence we no longer ignore Content-Encoding for |
| + // downloads. |
|
Ryan Sleevi
2015/03/19 02:55:06
I'm inclined to suggest nuking this whole bit.
I
Randy Smith (Not in Mondays)
2015/03/19 15:01:06
+1 :-}.
asanka
2015/03/19 20:27:52
Cool. I removed the comment.
I thought I'd add th
|
| // If the request was for SDCH content, then we might need additional fixups. |
| if (!filter_context.SdchDictionariesAdvertised()) { |