| 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.h" | 5 #include "net/http/http_cache.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
| 10 | 10 |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 345 int buf_len) { | 345 int buf_len) { |
| 346 if (!buf_len) | 346 if (!buf_len) |
| 347 return; | 347 return; |
| 348 | 348 |
| 349 // Do lazy initialization of disk cache if needed. | 349 // Do lazy initialization of disk cache if needed. |
| 350 if (!disk_cache_.get()) { | 350 if (!disk_cache_.get()) { |
| 351 // We don't care about the result. | 351 // We don't care about the result. |
| 352 CreateBackend(NULL, net::CompletionCallback()); | 352 CreateBackend(NULL, net::CompletionCallback()); |
| 353 } | 353 } |
| 354 | 354 |
| 355 HttpCache::Transaction* trans = new HttpCache::Transaction(this, NULL); | 355 HttpCache::Transaction* trans = new HttpCache::Transaction(this, NULL, NULL); |
| 356 MetadataWriter* writer = new MetadataWriter(trans); | 356 MetadataWriter* writer = new MetadataWriter(trans); |
| 357 | 357 |
| 358 // The writer will self destruct when done. | 358 // The writer will self destruct when done. |
| 359 writer->Write(url, expected_response_time, buf, buf_len); | 359 writer->Write(url, expected_response_time, buf, buf_len); |
| 360 } | 360 } |
| 361 | 361 |
| 362 void HttpCache::CloseAllConnections() { | 362 void HttpCache::CloseAllConnections() { |
| 363 net::HttpNetworkLayer* network = | 363 net::HttpNetworkLayer* network = |
| 364 static_cast<net::HttpNetworkLayer*>(network_layer_.get()); | 364 static_cast<net::HttpNetworkLayer*>(network_layer_.get()); |
| 365 HttpNetworkSession* session = network->GetSession(); | 365 HttpNetworkSession* session = network->GetSession(); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 383 HttpRequestInfo request_info; | 383 HttpRequestInfo request_info; |
| 384 request_info.url = url; | 384 request_info.url = url; |
| 385 request_info.method = http_method; | 385 request_info.method = http_method; |
| 386 std::string key = GenerateCacheKey(&request_info); | 386 std::string key = GenerateCacheKey(&request_info); |
| 387 disk_cache_->OnExternalCacheHit(key); | 387 disk_cache_->OnExternalCacheHit(key); |
| 388 } | 388 } |
| 389 | 389 |
| 390 void HttpCache::InitializeInfiniteCache(const FilePath& path) { | 390 void HttpCache::InitializeInfiniteCache(const FilePath& path) { |
| 391 if (base::FieldTrialList::FindFullName("InfiniteCache") != "Yes") | 391 if (base::FieldTrialList::FindFullName("InfiniteCache") != "Yes") |
| 392 return; | 392 return; |
| 393 // TODO(rvargas): initialize the infinite cache | 393 // To be enabled after everything is fully wired. |
| 394 // infinite_cache_.Init(path); |
| 394 } | 395 } |
| 395 | 396 |
| 396 int HttpCache::CreateTransaction(scoped_ptr<HttpTransaction>* trans, | 397 int HttpCache::CreateTransaction(scoped_ptr<HttpTransaction>* trans, |
| 397 HttpTransactionDelegate* delegate) { | 398 HttpTransactionDelegate* delegate) { |
| 398 // Do lazy initialization of disk cache if needed. | 399 // Do lazy initialization of disk cache if needed. |
| 399 if (!disk_cache_.get()) { | 400 if (!disk_cache_.get()) { |
| 400 // We don't care about the result. | 401 // We don't care about the result. |
| 401 CreateBackend(NULL, net::CompletionCallback()); | 402 CreateBackend(NULL, net::CompletionCallback()); |
| 402 } | 403 } |
| 403 | 404 |
| 404 trans->reset(new HttpCache::Transaction(this, delegate)); | 405 InfiniteCacheTransaction* infinite_cache_transaction = |
| 406 infinite_cache_.CreateInfiniteCacheTransaction(); |
| 407 trans->reset(new HttpCache::Transaction(this, delegate, |
| 408 infinite_cache_transaction)); |
| 405 return OK; | 409 return OK; |
| 406 } | 410 } |
| 407 | 411 |
| 408 HttpCache* HttpCache::GetCache() { | 412 HttpCache* HttpCache::GetCache() { |
| 409 return this; | 413 return this; |
| 410 } | 414 } |
| 411 | 415 |
| 412 HttpNetworkSession* HttpCache::GetSession() { | 416 HttpNetworkSession* HttpCache::GetSession() { |
| 413 net::HttpNetworkLayer* network = | 417 net::HttpNetworkLayer* network = |
| 414 static_cast<net::HttpNetworkLayer*>(network_layer_.get()); | 418 static_cast<net::HttpNetworkLayer*>(network_layer_.get()); |
| (...skipping 681 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1096 building_backend_ = false; | 1100 building_backend_ = false; |
| 1097 DeletePendingOp(pending_op); | 1101 DeletePendingOp(pending_op); |
| 1098 } | 1102 } |
| 1099 | 1103 |
| 1100 // The cache may be gone when we return from the callback. | 1104 // The cache may be gone when we return from the callback. |
| 1101 if (!item->DoCallback(result, backend)) | 1105 if (!item->DoCallback(result, backend)) |
| 1102 item->NotifyTransaction(result, NULL); | 1106 item->NotifyTransaction(result, NULL); |
| 1103 } | 1107 } |
| 1104 | 1108 |
| 1105 } // namespace net | 1109 } // namespace net |
| OLD | NEW |