Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // | 4 // |
| 5 // Filter performs filtering on data streams. Sample usage: | 5 // Filter performs filtering on data streams. Sample usage: |
| 6 // | 6 // |
| 7 // IStream* pre_filter_source; | 7 // IStream* pre_filter_source; |
| 8 // ... | 8 // ... |
| 9 // Filter* filter = Filter::Factory(filter_type, size); | 9 // Filter* filter = Filter::Factory(filter_type, size); |
| 10 // int pre_filter_data_len = filter->stream_buffer_size(); | 10 // int pre_filter_data_len = filter->stream_buffer_size(); |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 144 FILTER_NEED_MORE_DATA, | 144 FILTER_NEED_MORE_DATA, |
| 145 // Read filtered data successfully, and filter reaches the end of the data | 145 // Read filtered data successfully, and filter reaches the end of the data |
| 146 // stream. | 146 // stream. |
| 147 FILTER_DONE, | 147 FILTER_DONE, |
| 148 // There is an error during filtering. | 148 // There is an error during filtering. |
| 149 FILTER_ERROR | 149 FILTER_ERROR |
| 150 }; | 150 }; |
| 151 | 151 |
| 152 // Specifies type of filters that can be created. | 152 // Specifies type of filters that can be created. |
| 153 enum FilterType { | 153 enum FilterType { |
| 154 FILTER_TYPE_BROTLI, | |
| 154 FILTER_TYPE_DEFLATE, | 155 FILTER_TYPE_DEFLATE, |
| 155 FILTER_TYPE_GZIP, | 156 FILTER_TYPE_GZIP, |
| 156 FILTER_TYPE_GZIP_HELPING_SDCH, // Gzip possible, but pass through allowed. | 157 FILTER_TYPE_GZIP_HELPING_SDCH, // Gzip possible, but pass through allowed. |
| 157 FILTER_TYPE_SDCH, | 158 FILTER_TYPE_SDCH, |
| 158 FILTER_TYPE_SDCH_POSSIBLE, // Sdch possible, but pass through allowed. | 159 FILTER_TYPE_SDCH_POSSIBLE, // Sdch possible, but pass through allowed. |
| 159 FILTER_TYPE_UNSUPPORTED, | 160 FILTER_TYPE_UNSUPPORTED, |
| 160 }; | 161 }; |
| 161 | 162 |
| 162 virtual ~Filter(); | 163 virtual ~Filter(); |
| 163 | 164 |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 224 // encodings. These fixups require context, which includes whether this | 225 // encodings. These fixups require context, which includes whether this |
| 225 // response was made to an SDCH request (i.e., an available dictionary was | 226 // response was made to an SDCH request (i.e., an available dictionary was |
| 226 // advertised in the GET), as well as the mime type of the content. | 227 // advertised in the GET), as well as the mime type of the content. |
| 227 static void FixupEncodingTypes(const FilterContext& filter_context, | 228 static void FixupEncodingTypes(const FilterContext& filter_context, |
| 228 std::vector<FilterType>* encoding_types); | 229 std::vector<FilterType>* encoding_types); |
| 229 | 230 |
| 230 // Returns a string describing the FilterTypes implemented by this filter. | 231 // Returns a string describing the FilterTypes implemented by this filter. |
| 231 std::string OrderedFilterList() const; | 232 std::string OrderedFilterList() const; |
| 232 | 233 |
| 233 protected: | 234 protected: |
| 235 friend class BrotliFilter; | |
|
Ryan Sleevi
2015/12/17 01:04:40
^ this strikes me as an anti-pattern, as it repres
eustas
2015/12/17 16:44:54
For some reason InitBuffer is a private method. I'
| |
| 236 friend class BrotliUnitTest; | |
| 234 friend class GZipUnitTest; | 237 friend class GZipUnitTest; |
| 235 friend class SdchFilterChainingTest; | 238 friend class SdchFilterChainingTest; |
| 236 FRIEND_TEST_ALL_PREFIXES(FilterTest, ThreeFilterChain); | 239 FRIEND_TEST_ALL_PREFIXES(FilterTest, ThreeFilterChain); |
| 237 | 240 |
| 238 explicit Filter(FilterType type_id); | 241 explicit Filter(FilterType type_id); |
| 239 | 242 |
| 240 // Filters the data stored in stream_buffer_ and writes the output into the | 243 // Filters the data stored in stream_buffer_ and writes the output into the |
| 241 // dest_buffer passed in. | 244 // dest_buffer passed in. |
| 242 // | 245 // |
| 243 // Upon entry, *dest_len is the total size (in number of chars) of the | 246 // Upon entry, *dest_len is the total size (in number of chars) of the |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 306 | 309 |
| 307 // The filter type this filter was constructed from. | 310 // The filter type this filter was constructed from. |
| 308 FilterType type_id_; | 311 FilterType type_id_; |
| 309 | 312 |
| 310 DISALLOW_COPY_AND_ASSIGN(Filter); | 313 DISALLOW_COPY_AND_ASSIGN(Filter); |
| 311 }; | 314 }; |
| 312 | 315 |
| 313 } // namespace net | 316 } // namespace net |
| 314 | 317 |
| 315 #endif // NET_FILTER_FILTER_H__ | 318 #endif // NET_FILTER_FILTER_H__ |
| OLD | NEW |