| 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"
|
| #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 {
|
|
|