OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // This file declares HttpCache::Transaction, a private class of HttpCache so | 5 // This file declares HttpCache::Transaction, a private class of HttpCache so |
6 // it should only be included by http_cache.cc | 6 // it should only be included by http_cache.cc |
7 | 7 |
8 #ifndef NET_HTTP_HTTP_CACHE_TRANSACTION_H_ | 8 #ifndef NET_HTTP_HTTP_CACHE_TRANSACTION_H_ |
9 #define NET_HTTP_HTTP_CACHE_TRANSACTION_H_ | 9 #define NET_HTTP_HTTP_CACHE_TRANSACTION_H_ |
10 | 10 |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 int ResumeNetworkStart() override; | 168 int ResumeNetworkStart() override; |
169 void GetConnectionAttempts(ConnectionAttempts* out) const override; | 169 void GetConnectionAttempts(ConnectionAttempts* out) const override; |
170 | 170 |
171 // Invoked when parallel validation cannot proceed due to response failure | 171 // Invoked when parallel validation cannot proceed due to response failure |
172 // and this transaction needs to be restarted. | 172 // and this transaction needs to be restarted. |
173 void SetValidatingCannotProceed(); | 173 void SetValidatingCannotProceed(); |
174 | 174 |
175 // Returns the estimate of dynamically allocated memory in bytes. | 175 // Returns the estimate of dynamically allocated memory in bytes. |
176 size_t EstimateMemoryUsage() const; | 176 size_t EstimateMemoryUsage() const; |
177 | 177 |
| 178 // ### comment |
| 179 bool MaybeRejectBasedOnMemoryEntryData(uint8_t in_memory_info); |
| 180 |
178 private: | 181 private: |
179 static const size_t kNumValidationHeaders = 2; | 182 static const size_t kNumValidationHeaders = 2; |
180 // Helper struct to pair a header name with its value, for | 183 // Helper struct to pair a header name with its value, for |
181 // headers used to validate cache entries. | 184 // headers used to validate cache entries. |
182 struct ValidationHeaders { | 185 struct ValidationHeaders { |
183 ValidationHeaders() : initialized(false) {} | 186 ValidationHeaders() : initialized(false) {} |
184 | 187 |
185 std::string values[kNumValidationHeaders]; | 188 std::string values[kNumValidationHeaders]; |
186 bool initialized; | 189 bool initialized; |
187 }; | 190 }; |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 // Returns network error code. | 363 // Returns network error code. |
361 int RestartNetworkRequestWithAuth(const AuthCredentials& credentials); | 364 int RestartNetworkRequestWithAuth(const AuthCredentials& credentials); |
362 | 365 |
363 // Called to determine if we need to validate the cache entry before using it. | 366 // Called to determine if we need to validate the cache entry before using it. |
364 bool RequiresValidation(); | 367 bool RequiresValidation(); |
365 | 368 |
366 // Called to make the request conditional (to ask the server if the cached | 369 // Called to make the request conditional (to ask the server if the cached |
367 // copy is valid). Returns true if able to make the request conditional. | 370 // copy is valid). Returns true if able to make the request conditional. |
368 bool ConditionalizeRequest(); | 371 bool ConditionalizeRequest(); |
369 | 372 |
| 373 // Determines if saved response permits conditionalization, and extracts |
| 374 // etag/last-modified values. Only depends on response_.headers. |
| 375 bool ResponseConditionalizable(std::string* etag_value, |
| 376 std::string* last_modified_value); |
| 377 |
370 // Makes sure that a 206 response is expected. Returns true on success. | 378 // Makes sure that a 206 response is expected. Returns true on success. |
371 // On success, handling_206_ will be set to true if we are processing a | 379 // On success, handling_206_ will be set to true if we are processing a |
372 // partial entry. | 380 // partial entry. |
373 bool ValidatePartialResponse(); | 381 bool ValidatePartialResponse(); |
374 | 382 |
375 // Handles a response validation error by bypassing the cache. | 383 // Handles a response validation error by bypassing the cache. |
376 void IgnoreRangeRequest(); | 384 void IgnoreRangeRequest(); |
377 | 385 |
378 // Fixes the response headers to match expectations for a HEAD request. | 386 // Fixes the response headers to match expectations for a HEAD request. |
379 void FixHeadersForHead(); | 387 void FixHeadersForHead(); |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
549 RestartInfo restart_info_; | 557 RestartInfo restart_info_; |
550 | 558 |
551 base::WeakPtrFactory<Transaction> weak_factory_; | 559 base::WeakPtrFactory<Transaction> weak_factory_; |
552 | 560 |
553 DISALLOW_COPY_AND_ASSIGN(Transaction); | 561 DISALLOW_COPY_AND_ASSIGN(Transaction); |
554 }; | 562 }; |
555 | 563 |
556 } // namespace net | 564 } // namespace net |
557 | 565 |
558 #endif // NET_HTTP_HTTP_CACHE_TRANSACTION_H_ | 566 #endif // NET_HTTP_HTTP_CACHE_TRANSACTION_H_ |
OLD | NEW |