| 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 #include "net/http/http_cache_transaction.h" | 5 #include "net/http/http_cache_transaction.h" |
| 6 | 6 |
| 7 #include "build/build_config.h" | 7 #include "build/build_config.h" |
| 8 | 8 |
| 9 #if defined(OS_POSIX) | 9 #if defined(OS_POSIX) |
| 10 #include <unistd.h> | 10 #include <unistd.h> |
| (...skipping 866 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 877 // If we have an authentication response, we are exposed to weird things | 877 // If we have an authentication response, we are exposed to weird things |
| 878 // hapenning if the user cancels the authentication before we receive | 878 // hapenning if the user cancels the authentication before we receive |
| 879 // the new response. | 879 // the new response. |
| 880 UpdateTransactionPattern(PATTERN_NOT_COVERED); | 880 UpdateTransactionPattern(PATTERN_NOT_COVERED); |
| 881 response_ = HttpResponseInfo(); | 881 response_ = HttpResponseInfo(); |
| 882 network_trans_.reset(); | 882 network_trans_.reset(); |
| 883 new_response_ = NULL; | 883 new_response_ = NULL; |
| 884 next_state_ = STATE_SEND_REQUEST; | 884 next_state_ = STATE_SEND_REQUEST; |
| 885 return OK; | 885 return OK; |
| 886 } | 886 } |
| 887 |
| 887 if (handling_206_ && mode_ == READ_WRITE && !truncated_ && !is_sparse_) { | 888 if (handling_206_ && mode_ == READ_WRITE && !truncated_ && !is_sparse_) { |
| 888 // We have stored the full entry, but it changed and the server is | 889 // We have stored the full entry, but it changed and the server is |
| 889 // sending a range. We have to delete the old entry. | 890 // sending a range. We have to delete the old entry. |
| 890 UpdateTransactionPattern(PATTERN_NOT_COVERED); | 891 UpdateTransactionPattern(PATTERN_NOT_COVERED); |
| 891 DoneWritingToEntry(false); | 892 DoneWritingToEntry(false); |
| 892 } | 893 } |
| 893 if (new_response_->headers->response_code() == 416 && | 894 if (new_response_->headers->response_code() == 416 && |
| 894 (request_->method == "GET" || request_->method == "POST")) { | 895 (request_->method == "GET" || request_->method == "POST")) { |
| 895 DCHECK_EQ(NONE, mode_); | 896 DCHECK_EQ(NONE, mode_); |
| 896 response_ = *new_response_; | 897 response_ = *new_response_; |
| (...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1205 | 1206 |
| 1206 // We received 304 or 206 and we want to update the cached response headers. | 1207 // We received 304 or 206 and we want to update the cached response headers. |
| 1207 int HttpCache::Transaction::DoUpdateCachedResponse() { | 1208 int HttpCache::Transaction::DoUpdateCachedResponse() { |
| 1208 next_state_ = STATE_UPDATE_CACHED_RESPONSE_COMPLETE; | 1209 next_state_ = STATE_UPDATE_CACHED_RESPONSE_COMPLETE; |
| 1209 int rv = OK; | 1210 int rv = OK; |
| 1210 // Update cached response based on headers in new_response. | 1211 // Update cached response based on headers in new_response. |
| 1211 // TODO(wtc): should we update cached certificate (response_.ssl_info), too? | 1212 // TODO(wtc): should we update cached certificate (response_.ssl_info), too? |
| 1212 response_.headers->Update(*new_response_->headers); | 1213 response_.headers->Update(*new_response_->headers); |
| 1213 response_.response_time = new_response_->response_time; | 1214 response_.response_time = new_response_->response_time; |
| 1214 response_.request_time = new_response_->request_time; | 1215 response_.request_time = new_response_->request_time; |
| 1216 response_.network_accessed = new_response_->network_accessed; |
| 1215 | 1217 |
| 1216 if (response_.headers->HasHeaderValue("cache-control", "no-store")) { | 1218 if (response_.headers->HasHeaderValue("cache-control", "no-store")) { |
| 1217 if (!entry_->doomed) { | 1219 if (!entry_->doomed) { |
| 1218 int ret = cache_->DoomEntry(cache_key_, NULL); | 1220 int ret = cache_->DoomEntry(cache_key_, NULL); |
| 1219 DCHECK_EQ(OK, ret); | 1221 DCHECK_EQ(OK, ret); |
| 1220 } | 1222 } |
| 1221 } else { | 1223 } else { |
| 1222 // If we are already reading, we already updated the headers for this | 1224 // If we are already reading, we already updated the headers for this |
| 1223 // request; doing it again will change Content-Length. | 1225 // request; doing it again will change Content-Length. |
| 1224 if (!reading_) { | 1226 if (!reading_) { |
| (...skipping 1321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2546 } | 2548 } |
| 2547 | 2549 |
| 2548 int HttpCache::Transaction::ResetCacheIOStart(int return_value) { | 2550 int HttpCache::Transaction::ResetCacheIOStart(int return_value) { |
| 2549 DCHECK(cache_io_start_.is_null()); | 2551 DCHECK(cache_io_start_.is_null()); |
| 2550 if (return_value == ERR_IO_PENDING) | 2552 if (return_value == ERR_IO_PENDING) |
| 2551 cache_io_start_ = base::TimeTicks::Now(); | 2553 cache_io_start_ = base::TimeTicks::Now(); |
| 2552 return return_value; | 2554 return return_value; |
| 2553 } | 2555 } |
| 2554 | 2556 |
| 2555 } // namespace net | 2557 } // namespace net |
| OLD | NEW |