Chromium Code Reviews| Index: net/url_request/url_request_file_job.cc |
| diff --git a/net/url_request/url_request_file_job.cc b/net/url_request/url_request_file_job.cc |
| index fb224764895ea0f77d24bb488d4b4a85ad92531b..5ed21309637b8865d4fd1143f93bb2bfe3a99283 100644 |
| --- a/net/url_request/url_request_file_job.cc |
| +++ b/net/url_request/url_request_file_job.cc |
| @@ -22,6 +22,7 @@ |
| #include "base/bind.h" |
| #include "base/compiler_specific.h" |
| #include "base/files/file_util.h" |
| +#include "base/memory/ptr_util.h" |
|
mmenke
2016/07/21 18:14:09
What's this being used for?
xunjieli
2016/07/27 20:32:03
Done.
|
| #include "base/message_loop/message_loop.h" |
| #include "base/strings/string_util.h" |
| #include "base/synchronization/lock.h" |
| @@ -33,7 +34,8 @@ |
| #include "net/base/io_buffer.h" |
| #include "net/base/load_flags.h" |
| #include "net/base/mime_util.h" |
| -#include "net/filter/filter.h" |
| +#include "net/filter/gzip_stream_source.h" |
| +#include "net/filter/stream_source.h" |
| #include "net/http/http_util.h" |
| #include "net/url_request/url_request_error_job.h" |
| #include "net/url_request/url_request_file_dir_job.h" |
| @@ -145,11 +147,16 @@ bool URLRequestFileJob::IsRedirectResponse(GURL* location, |
| #endif |
| } |
| -std::unique_ptr<Filter> URLRequestFileJob::SetupFilter() const { |
| - // Bug 9936 - .svgz files needs to be decompressed. |
| - return base::LowerCaseEqualsASCII(file_path_.Extension(), ".svgz") |
| - ? Filter::GZipFactory() |
| - : nullptr; |
| +std::unique_ptr<StreamSource> URLRequestFileJob::SetupSource() { |
| + std::unique_ptr<StreamSource> source = URLRequestJob::SetupSource(); |
| + if (!base::LowerCaseEqualsASCII(file_path_.Extension(), ".svgz")) |
| + return source; |
| + |
| + std::unique_ptr<GzipStreamSource> gzip(new GzipStreamSource( |
| + std::move(source), GzipStreamSource::GZIP_STREAM_SOURCE_GZIP)); |
| + if (gzip->Init()) |
| + return std::move(gzip); |
| + return nullptr; |
| } |
| bool URLRequestFileJob::GetMimeType(std::string* mime_type) const { |