| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 275 | 275 |
| 276 int rv = RestartNetworkRequestWithCertificate(client_cert); | 276 int rv = RestartNetworkRequestWithCertificate(client_cert); |
| 277 | 277 |
| 278 if (rv == ERR_IO_PENDING) | 278 if (rv == ERR_IO_PENDING) |
| 279 callback_ = callback; | 279 callback_ = callback; |
| 280 | 280 |
| 281 return rv; | 281 return rv; |
| 282 } | 282 } |
| 283 | 283 |
| 284 int HttpCache::Transaction::RestartWithAuth( | 284 int HttpCache::Transaction::RestartWithAuth( |
| 285 const string16& username, | 285 const AuthCredentials& credentials, |
| 286 const string16& password, | |
| 287 OldCompletionCallback* callback) { | 286 OldCompletionCallback* callback) { |
| 288 DCHECK(auth_response_.headers); | 287 DCHECK(auth_response_.headers); |
| 289 DCHECK(callback); | 288 DCHECK(callback); |
| 290 | 289 |
| 291 // Ensure that we only have one asynchronous call at a time. | 290 // Ensure that we only have one asynchronous call at a time. |
| 292 DCHECK(!callback_); | 291 DCHECK(!callback_); |
| 293 | 292 |
| 294 if (!cache_) | 293 if (!cache_) |
| 295 return ERR_UNEXPECTED; | 294 return ERR_UNEXPECTED; |
| 296 | 295 |
| 297 // Clear the intermediate response since we are going to start over. | 296 // Clear the intermediate response since we are going to start over. |
| 298 auth_response_ = HttpResponseInfo(); | 297 auth_response_ = HttpResponseInfo(); |
| 299 | 298 |
| 300 int rv = RestartNetworkRequestWithAuth(username, password); | 299 int rv = RestartNetworkRequestWithAuth(credentials); |
| 301 | 300 |
| 302 if (rv == ERR_IO_PENDING) | 301 if (rv == ERR_IO_PENDING) |
| 303 callback_ = callback; | 302 callback_ = callback; |
| 304 | 303 |
| 305 return rv; | 304 return rv; |
| 306 } | 305 } |
| 307 | 306 |
| 308 bool HttpCache::Transaction::IsReadyToRestartForAuth() { | 307 bool HttpCache::Transaction::IsReadyToRestartForAuth() { |
| 309 if (!network_trans_.get()) | 308 if (!network_trans_.get()) |
| 310 return false; | 309 return false; |
| (...skipping 1362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1673 DCHECK_EQ(STATE_NONE, next_state_); | 1672 DCHECK_EQ(STATE_NONE, next_state_); |
| 1674 | 1673 |
| 1675 next_state_ = STATE_SEND_REQUEST_COMPLETE; | 1674 next_state_ = STATE_SEND_REQUEST_COMPLETE; |
| 1676 int rv = network_trans_->RestartWithCertificate(client_cert, &io_callback_); | 1675 int rv = network_trans_->RestartWithCertificate(client_cert, &io_callback_); |
| 1677 if (rv != ERR_IO_PENDING) | 1676 if (rv != ERR_IO_PENDING) |
| 1678 return DoLoop(rv); | 1677 return DoLoop(rv); |
| 1679 return rv; | 1678 return rv; |
| 1680 } | 1679 } |
| 1681 | 1680 |
| 1682 int HttpCache::Transaction::RestartNetworkRequestWithAuth( | 1681 int HttpCache::Transaction::RestartNetworkRequestWithAuth( |
| 1683 const string16& username, | 1682 const AuthCredentials& credentials) { |
| 1684 const string16& password) { | |
| 1685 DCHECK(mode_ & WRITE || mode_ == NONE); | 1683 DCHECK(mode_ & WRITE || mode_ == NONE); |
| 1686 DCHECK(network_trans_.get()); | 1684 DCHECK(network_trans_.get()); |
| 1687 DCHECK_EQ(STATE_NONE, next_state_); | 1685 DCHECK_EQ(STATE_NONE, next_state_); |
| 1688 | 1686 |
| 1689 next_state_ = STATE_SEND_REQUEST_COMPLETE; | 1687 next_state_ = STATE_SEND_REQUEST_COMPLETE; |
| 1690 int rv = network_trans_->RestartWithAuth(username, password, &io_callback_); | 1688 int rv = network_trans_->RestartWithAuth(credentials, &io_callback_); |
| 1691 if (rv != ERR_IO_PENDING) | 1689 if (rv != ERR_IO_PENDING) |
| 1692 return DoLoop(rv); | 1690 return DoLoop(rv); |
| 1693 return rv; | 1691 return rv; |
| 1694 } | 1692 } |
| 1695 | 1693 |
| 1696 bool HttpCache::Transaction::RequiresValidation() { | 1694 bool HttpCache::Transaction::RequiresValidation() { |
| 1697 // TODO(darin): need to do more work here: | 1695 // TODO(darin): need to do more work here: |
| 1698 // - make sure we have a matching request method | 1696 // - make sure we have a matching request method |
| 1699 // - watch out for cached responses that depend on authentication | 1697 // - watch out for cached responses that depend on authentication |
| 1700 // In playback mode, nothing requires validation. | 1698 // In playback mode, nothing requires validation. |
| (...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2060 return false; | 2058 return false; |
| 2061 | 2059 |
| 2062 return true; | 2060 return true; |
| 2063 } | 2061 } |
| 2064 | 2062 |
| 2065 void HttpCache::Transaction::OnIOComplete(int result) { | 2063 void HttpCache::Transaction::OnIOComplete(int result) { |
| 2066 DoLoop(result); | 2064 DoLoop(result); |
| 2067 } | 2065 } |
| 2068 | 2066 |
| 2069 } // namespace net | 2067 } // namespace net |
| OLD | NEW |