| Index: net/filter/filter.cc
|
| diff --git a/net/filter/filter.cc b/net/filter/filter.cc
|
| index c9a56bd9573dd3668494e0d31f4e05c52ed52439..53d6583f9cddc9d52ea0831cde6a53dd2d9d8a0c 100644
|
| --- a/net/filter/filter.cc
|
| +++ b/net/filter/filter.cc
|
| @@ -64,6 +64,24 @@ void LogSdchProblem(const FilterContext& filter_context,
|
| base::Bind(&NetLogSdchResourceProblemCallback, problem));
|
| }
|
|
|
| +std::string FilterTypeAsString(Filter::FilterType type_id) {
|
| + switch (type_id) {
|
| + case Filter::FILTER_TYPE_DEFLATE:
|
| + return "FILTER_TYPE_DEFLATE";
|
| + case Filter::FILTER_TYPE_GZIP:
|
| + return "FILTER_TYPE_GZIP";
|
| + case Filter::FILTER_TYPE_GZIP_HELPING_SDCH:
|
| + return "FILTER_TYPE_GZIP_HELPING_SDCH";
|
| + case Filter::FILTER_TYPE_SDCH:
|
| + return "FILTER_TYPE_SDCH";
|
| + case Filter::FILTER_TYPE_SDCH_POSSIBLE :
|
| + return "FILTER_TYPE_SDCH_POSSIBLE ";
|
| + case Filter::FILTER_TYPE_UNSUPPORTED:
|
| + return "FILTER_TYPE_UNSUPPORTED";
|
| + }
|
| + return "";
|
| +}
|
| +
|
| } // namespace
|
|
|
| FilterContext::~FilterContext() {
|
| @@ -340,12 +358,22 @@ void Filter::FixupEncodingTypes(
|
| return;
|
| }
|
|
|
| -Filter::Filter()
|
| +std::string Filter::OrderedFilterList() const {
|
| + if (next_filter_) {
|
| + return FilterTypeAsString(type_id_) + "," +
|
| + next_filter_->OrderedFilterList();
|
| + } else {
|
| + return FilterTypeAsString(type_id_);
|
| + }
|
| +}
|
| +
|
| +Filter::Filter(FilterType type_id)
|
| : stream_buffer_(NULL),
|
| stream_buffer_size_(0),
|
| next_stream_data_(NULL),
|
| stream_data_len_(0),
|
| - last_status_(FILTER_NEED_MORE_DATA) {}
|
| + last_status_(FILTER_NEED_MORE_DATA),
|
| + type_id_(type_id) {}
|
|
|
| Filter::FilterStatus Filter::CopyOut(char* dest_buffer, int* dest_len) {
|
| int out_len;
|
| @@ -370,7 +398,7 @@ Filter::FilterStatus Filter::CopyOut(char* dest_buffer, int* dest_len) {
|
|
|
| // static
|
| Filter* Filter::InitGZipFilter(FilterType type_id, int buffer_size) {
|
| - scoped_ptr<GZipFilter> gz_filter(new GZipFilter());
|
| + scoped_ptr<GZipFilter> gz_filter(new GZipFilter(type_id));
|
| gz_filter->InitBuffer(buffer_size);
|
| return gz_filter->InitDecoding(type_id) ? gz_filter.release() : NULL;
|
| }
|
| @@ -379,7 +407,7 @@ Filter* Filter::InitGZipFilter(FilterType type_id, int buffer_size) {
|
| Filter* Filter::InitSdchFilter(FilterType type_id,
|
| const FilterContext& filter_context,
|
| int buffer_size) {
|
| - scoped_ptr<SdchFilter> sdch_filter(new SdchFilter(filter_context));
|
| + scoped_ptr<SdchFilter> sdch_filter(new SdchFilter(type_id, filter_context));
|
| sdch_filter->InitBuffer(buffer_size);
|
| return sdch_filter->InitDecoding(type_id) ? sdch_filter.release() : NULL;
|
| }
|
|
|