From efc57ff133fe8722379d1f93d2accc4c8dfd4c7a Mon Sep 17 00:00:00 2001 From: dgozman Date: Tue, 22 Mar 2016 10:57:09 -0700 Subject: Revert of Implement content_decoder_tool.cc to decode offline any resources. (patchset #4 id:60001 of https://codereview.chromium.org/1767653002/ ) Reason for revert: Broke iOS build: https://build.chromium.org/p/chromium.mac/builders/iOS_Device/builds/44002 Original issue's description: > Implement content_decoder_tool.cc to decode offline any resources. > > Sandwich is going to use the HTMLPreloadScanner to get all the > resources to prefetch instead of using the Clovis' dependency > graph. However resources in the chrome HTTP cache or in the WPR > archive are stored as transport layer content, implying that they > might be stored using a compression algorithm, according to the > Content-Encoding response header. > > This tools enable us to decode any resources using the same very > code path used in chrome, implying that we will be able to > uncompressed absolutely all resources that chrome can and is > advertising in its Accept-Encoding request header. > > BUG=582080 > > Committed: https://crrev.com/4dc1dc6668a87620574dd43392046c3691914da2 > Cr-Commit-Position: refs/heads/master@{#382599} TBR=pasko@chromium.org,gavinp@chromium.org,gabadie@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=582080 Review URL: https://codereview.chromium.org/1827483002 Cr-Commit-Position: refs/heads/master@{#382606} --- net/net.gyp | 12 --- .../content_decoder_tool/content_decoder_tool.cc | 91 ---------------------- 2 files changed, 103 deletions(-) delete mode 100644 net/tools/content_decoder_tool/content_decoder_tool.cc diff --git a/net/net.gyp b/net/net.gyp index 1ecfc35..661a019 100644 --- a/net/net.gyp +++ b/net/net.gyp @@ -791,18 +791,6 @@ ], }, { - 'target_name': 'content_decoder_tool', - 'type': 'executable', - 'dependencies': [ - '../base/base.gyp:base', - 'net', - ], - 'sources': [ - 'tools/content_decoder_tool/content_decoder_tool.cc', - 'filter/mock_filter_context.cc', - ], - }, - { 'target_name': 'dump_cache', 'type': 'executable', 'dependencies': [ diff --git a/net/tools/content_decoder_tool/content_decoder_tool.cc b/net/tools/content_decoder_tool/content_decoder_tool.cc deleted file mode 100644 index 89646eb..0000000 --- a/net/tools/content_decoder_tool/content_decoder_tool.cc +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include - -#include "base/command_line.h" -#include "net/base/io_buffer.h" -#include "net/filter/filter.h" -#include "net/filter/mock_filter_context.h" - -using net::Filter; - -namespace { - -// Print the command line help. -void PrintHelp(const char* command_line_name) { - std::cout << command_line_name << " content_encoding [content_encoding]..." - << std::endl - << std::endl; - std::cout << "Decodes the stdin into the stdout using an content_encoding " - << "list given in arguments. This list is expected to be the " - << "Content-Encoding HTTP response header's value split by ','." - << std::endl; -} - -} // namespace - -int main(int argc, char* argv[]) { - base::CommandLine::Init(argc, argv); - const base::CommandLine& command_line = - *base::CommandLine::ForCurrentProcess(); - - std::vector content_encodings; -#if defined(OS_WIN) - base::CommandLine::StringVector wide_args = command_line.GetArgs(); - for (const auto& arg : wide_args) - content_encodings.push_back(base::WideToUTF8(arg)); -#else - content_encodings = command_line.GetArgs(); -#endif - - if (content_encodings.size() == 0) { - PrintHelp(argv[0]); - return 1; - } - - std::vector filter_types; - for (const auto& content_encoding : content_encodings) { - Filter::FilterType filter_type = - Filter::ConvertEncodingToType(content_encoding); - if (filter_type == Filter::FILTER_TYPE_UNSUPPORTED) { - std::cerr << "Unsupported decoder '" << content_encoding << "'." - << std::endl; - return 1; - } - filter_types.push_back(filter_type); - } - - net::MockFilterContext filter_context; - scoped_ptr filter(Filter::Factory(filter_types, filter_context)); - if (!filter) { - std::cerr << "Couldn't create the decoder." << std::endl; - return 1; - } - - net::IOBuffer* pre_filter_buf = filter->stream_buffer(); - int pre_filter_buf_len = filter->stream_buffer_size(); - while (std::cin) { - std::cin.read(pre_filter_buf->data(), pre_filter_buf_len); - int pre_filter_data_len = std::cin.gcount(); - filter->FlushStreamBuffer(pre_filter_data_len); - - while (true) { - int kPostFilterBufLen = 4096; - char post_filter_buf[kPostFilterBufLen]; - int post_filter_data_len = kPostFilterBufLen; - Filter::FilterStatus filter_status = - filter->ReadData(post_filter_buf, &post_filter_data_len); - std::cout.write(post_filter_buf, post_filter_data_len); - if (filter_status == Filter::FILTER_ERROR) { - std::cerr << "Couldn't decode stdin." << std::endl; - return 1; - } else if (filter_status != Filter::FILTER_OK) { - break; - } - } - } - - return 0; -} -- cgit v1.1